‪TYPO3CMS  ‪main
StringLengthValidatorTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use PHPUnit\Framework\Attributes\Test;
26 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
27 
28 final class ‪StringLengthValidatorTest extends FunctionalTestCase
29 {
30  protected function ‪setUp(): void
31  {
32  parent::setUp();
33  ‪$GLOBALS['LANG'] = $this->get(LanguageServiceFactory::class)->create('default');
34  $request = (new ‪ServerRequest())->withAttribute('applicationType', ‪SystemEnvironmentBuilder::REQUESTTYPE_BE);
35  ‪$GLOBALS['TYPO3_REQUEST'] = $request;
36  }
37 
38  #[Test]
40  {
41  self::assertFalse((new ‪StringLengthValidator())->validate(null)->hasErrors());
42  }
43 
44  #[Test]
46  {
47  self::assertFalse((new ‪StringLengthValidator())->validate('')->hasErrors());
48  }
49 
50  #[Test]
52  {
54  ‪$validator->setOptions(['minimum' => 0, 'maximum' => 50]);
55  self::assertFalse(‪$validator->validate('this is a very simple string')->hasErrors());
56  }
57 
58  #[Test]
60  {
62  ‪$validator->setOptions(['minimum' => 50, 'maximum' => 100]);
63  self::assertTrue(‪$validator->validate('this is a very short string')->hasErrors());
64  }
65 
66  #[Test]
68  {
70  ‪$validator->setOptions(['minimum' => 5, 'maximum' => 10]);
71  self::assertTrue(‪$validator->validate('this is a very short string')->hasErrors());
72  }
73 
74  #[Test]
76  {
78  ‪$validator->setOptions(['minimum' => 5]);
79  self::assertFalse(‪$validator->validate('this is a very short string')->hasErrors());
80  }
81 
82  #[Test]
84  {
86  ‪$validator->setOptions(['maximum' => 100]);
87  self::assertFalse(‪$validator->validate('this is a very short string')->hasErrors());
88  }
89 
90  #[Test]
92  {
94  ‪$validator->setOptions(['maximum' => 10]);
95  self::assertFalse(‪$validator->validate('1234567890')->hasErrors());
96  }
97 
98  #[Test]
100  {
102  ‪$validator->setOptions(['minimum' => 10]);
103  self::assertFalse(‪$validator->validate('1234567890')->hasErrors());
104  }
105 
106  #[Test]
108  {
110  ‪$validator->setOptions(['minimum' => 10, 'maximum' => 10]);
111  self::assertFalse(‪$validator->validate('1234567890')->hasErrors());
112  }
113 
114  #[Test]
116  {
118  ‪$validator->setOptions(['minimum' => 1, 'maximum' => 10]);
119  self::assertFalse(‪$validator->validate('1234567890')->hasErrors());
120  }
121 
122  #[Test]
124  {
126  ‪$validator->setOptions(['minimum' => 10, 'maximum' => 100]);
127  self::assertFalse(‪$validator->validate('1234567890')->hasErrors());
128  }
129 
130  #[Test]
132  {
133  $this->expectException(InvalidValidationOptionsException::class);
134  $this->expectExceptionCode(1238107096);
136  ‪$validator->setOptions(['minimum' => 101, 'maximum' => 100]);
137  ‪$validator->validate('1234567890');
138  }
139 
140  #[Test]
142  {
144  ‪$validator->setOptions(['minimum' => 50, 'maximum' => 100]);
145  self::assertCount(1, ‪$validator->validate('this is a very short string')->getErrors());
146  }
147 
148  #[Test]
150  {
152  ‪$validator->setOptions(['minimum' => 5, 'maximum' => 100]);
153  $object = new class () {
154  public function __toString(): string
155  {
156  return 'some string';
157  }
158  };
159  self::assertFalse(‪$validator->validate($object)->hasErrors());
160  }
161 
162  #[Test]
164  {
166  ‪$validator->setOptions(['minimum' => 5, 'maximum' => 100]);
167  $object = new class () {};
168  $result = ‪$validator->validate($object);
169 
170  self::assertTrue($result->hasErrors());
171  self::assertCount(1, $result->getErrors());
172 
173  $error = current($result->getErrors());
174  self::assertSame(1238110957, $error->getCode());
175  }
176 
177  #[Test]
179  {
181  ‪$validator->setOptions(['minimum' => 0, 'maximum' => 8]);
182  $result = ‪$validator->validate('überlang');
183  self::assertFalse($result->hasErrors());
184  }
185 }
‪TYPO3\CMS\Core\Localization\LanguageServiceFactory
Definition: LanguageServiceFactory.php:25
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\stringLengthValidatorCanHandleAnObjectWithAToStringMethod
‪stringLengthValidatorCanHandleAnObjectWithAToStringMethod()
Definition: StringLengthValidatorTest.php:149
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\stringLengthValidatorReturnsNoErrorIfMinLengthAndMaxLengthAreEqualAndTheGivenStringMatchesThisValue
‪stringLengthValidatorReturnsNoErrorIfMinLengthAndMaxLengthAreEqualAndTheGivenStringMatchesThisValue()
Definition: StringLengthValidatorTest.php:107
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator
Definition: AlphanumericValidatorTest.php:18
‪TYPO3\CMS\Core\Core\SystemEnvironmentBuilder
Definition: SystemEnvironmentBuilder.php:41
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\stringLengthValidatorReturnsNoErrorForAStringLengthEqualToMinLengthAndMaxLengthNotSpecified
‪stringLengthValidatorReturnsNoErrorForAStringLengthEqualToMinLengthAndMaxLengthNotSpecified()
Definition: StringLengthValidatorTest.php:99
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\stringLengthValidatorThrowsAnExceptionIfMinLengthIsGreaterThanMaxLength
‪stringLengthValidatorThrowsAnExceptionIfMinLengthIsGreaterThanMaxLength()
Definition: StringLengthValidatorTest.php:131
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\stringLengthValidatorInsertsAnErrorObjectIfValidationFails
‪stringLengthValidatorInsertsAnErrorObjectIfValidationFails()
Definition: StringLengthValidatorTest.php:141
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\validateReturnsNoErrorIfTheGivenValueIsNull
‪validateReturnsNoErrorIfTheGivenValueIsNull()
Definition: StringLengthValidatorTest.php:39
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\stringLengthValidatorReturnsNoErrorIfTheStringLengthIsEqualToMinLength
‪stringLengthValidatorReturnsNoErrorIfTheStringLengthIsEqualToMinLength()
Definition: StringLengthValidatorTest.php:123
‪TYPO3\CMS\Core\Core\SystemEnvironmentBuilder\REQUESTTYPE_BE
‪const REQUESTTYPE_BE
Definition: SystemEnvironmentBuilder.php:45
‪TYPO3\CMS\Extbase\Validation\Validator\StringLengthValidator
Definition: StringLengthValidator.php:26
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\validateRegardsMultibyteStringsCorrectly
‪validateRegardsMultibyteStringsCorrectly()
Definition: StringLengthValidatorTest.php:178
‪$validator
‪if(isset($args['d'])) $validator
Definition: validateRstFiles.php:262
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\validateReturnsErrorsIfTheGivenObjectCanNotBeConvertedToAString
‪validateReturnsErrorsIfTheGivenObjectCanNotBeConvertedToAString()
Definition: StringLengthValidatorTest.php:163
‪TYPO3\CMS\Core\Http\ServerRequest
Definition: ServerRequest.php:39
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\stringLengthValidatorReturnsNoErrorsForAStringLongerThanThanMinLengthAndMaxLengthNotSpecified
‪stringLengthValidatorReturnsNoErrorsForAStringLongerThanThanMinLengthAndMaxLengthNotSpecified()
Definition: StringLengthValidatorTest.php:75
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\validateReturnsNoErrorIfTheGivenValueIsAnEmptyString
‪validateReturnsNoErrorIfTheGivenValueIsAnEmptyString()
Definition: StringLengthValidatorTest.php:45
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\stringLengthValidatorReturnsNoErrorsIfTheStringLengthIsEqualToMaxLength
‪stringLengthValidatorReturnsNoErrorsIfTheStringLengthIsEqualToMaxLength()
Definition: StringLengthValidatorTest.php:115
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\setUp
‪setUp()
Definition: StringLengthValidatorTest.php:30
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\stringLengthValidatorReturnsNoErrorsForAStringLengthEqualToMaxLengthAndMinLengthNotSpecified
‪stringLengthValidatorReturnsNoErrorsForAStringLengthEqualToMaxLengthAndMinLengthNotSpecified()
Definition: StringLengthValidatorTest.php:91
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\stringLengthValidatorReturnsErrorsForAStringLongerThanThanMaxLength
‪stringLengthValidatorReturnsErrorsForAStringLongerThanThanMaxLength()
Definition: StringLengthValidatorTest.php:67
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\stringLengthValidatorReturnsNoErrorForAStringShorterThanMaxLengthAndLongerThanMinLength
‪stringLengthValidatorReturnsNoErrorForAStringShorterThanMaxLengthAndLongerThanMinLength()
Definition: StringLengthValidatorTest.php:51
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest
Definition: StringLengthValidatorTest.php:29
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\stringLengthValidatorReturnsNoErrorsForAStringShorterThanThanMaxLengthAndMinLengthNotSpecified
‪stringLengthValidatorReturnsNoErrorsForAStringShorterThanThanMaxLengthAndMinLengthNotSpecified()
Definition: StringLengthValidatorTest.php:83
‪TYPO3\CMS\Extbase\Validation\Exception\InvalidValidationOptionsException
Definition: InvalidValidationOptionsException.php:25
‪TYPO3\CMS\Extbase\Tests\Functional\Validation\Validator\StringLengthValidatorTest\stringLengthValidatorReturnsErrorForAStringShorterThanThanMinLength
‪stringLengthValidatorReturnsErrorForAStringShorterThanThanMinLength()
Definition: StringLengthValidatorTest.php:59