‪TYPO3CMS  ‪main
DateRangeValidatorTest.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;
27 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
28 
29 final class ‪DateRangeValidatorTest extends FunctionalTestCase
30 {
31  protected function ‪setUp(): void
32  {
33  parent::setUp();
34  ‪$GLOBALS['LANG'] = GeneralUtility::makeInstance(LanguageServiceFactory::class)->create('default');
35  $request = (new ‪ServerRequest())->withAttribute('applicationType', ‪SystemEnvironmentBuilder::REQUESTTYPE_BE);
36  ‪$GLOBALS['TYPO3_REQUEST'] = $request;
37  }
38 
39  #[Test]
41  {
42  $this->expectException(InvalidValidationOptionsException::class);
43  $this->expectExceptionCode(1521293813);
44  $options = ['minimum' => '1972-01', 'maximum' => ''];
46  ‪$validator->setOptions($options);
47  ‪$validator->validate(true);
48  }
49 
50  #[Test]
52  {
53  $this->expectException(InvalidValidationOptionsException::class);
54  $this->expectExceptionCode(1521293814);
55  $options = ['minimum' => '', 'maximum' => '1972-01'];
57  ‪$validator->setOptions($options);
58  ‪$validator->validate(true);
59  }
60 
61  #[Test]
63  {
64  $options = ['minimum' => '2018-03-17', 'maximum' => '2018-03-17'];
66  ‪$validator->setOptions($options);
67  self::assertTrue(‪$validator->validate(true)->hasErrors());
68  }
69 
70  #[Test]
72  {
73  $input = \DateTime::createFromFormat('Y-m-d', '2018-03-17');
74  $options = ['minimum' => '2018-03-18', 'maximum' => ''];
76  ‪$validator->setOptions($options);
77  self::assertTrue(‪$validator->validate($input)->hasErrors());
78  }
79 
80  #[Test]
82  {
83  $input = \DateTime::createFromFormat('Y-m-d', '2018-03-18');
84  $options = ['minimum' => '2018-03-18', 'maximum' => ''];
86  ‪$validator->setOptions($options);
87  self::assertFalse(‪$validator->validate($input)->hasErrors());
88  }
89 
90  #[Test]
92  {
93  $input = \DateTime::createFromFormat('Y-m-d', '2018-03-19');
94  $options = ['minimum' => '2018-03-18', 'maximum' => ''];
96  ‪$validator->setOptions($options);
97  self::assertFalse(‪$validator->validate($input)->hasErrors());
98  }
99 
100  #[Test]
102  {
103  $input = \DateTime::createFromFormat('Y-m-d', '2018-03-17');
104  $options = ['maximum' => '2018-03-18'];
106  ‪$validator->setOptions($options);
107  self::assertFalse(‪$validator->validate($input)->hasErrors());
108  }
109 
110  #[Test]
112  {
113  $input = \DateTime::createFromFormat('Y-m-d', '2018-03-18');
114  $options = ['maximum' => '2018-03-18'];
116  ‪$validator->setOptions($options);
117  self::assertFalse(‪$validator->validate($input)->hasErrors());
118  }
119 
120  #[Test]
122  {
123  $input = \DateTime::createFromFormat('Y-m-d', '2018-03-19');
124  $options = ['maximum' => '2018-03-18'];
126  ‪$validator->setOptions($options);
127  self::assertTrue(‪$validator->validate($input)->hasErrors());
128  }
129 }
‪TYPO3\CMS\Core\Localization\LanguageServiceFactory
Definition: LanguageServiceFactory.php:25
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation
Definition: CountValidatorTest.php:18
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\DateRangeValidatorTest\DateRangeValidatorReturnsFalseIfInputIsEqualsMaximumOption
‪DateRangeValidatorReturnsFalseIfInputIsEqualsMaximumOption()
Definition: DateRangeValidatorTest.php:111
‪TYPO3\CMS\Form\Mvc\Validation\Exception\InvalidValidationOptionsException
Definition: InvalidValidationOptionsException.php:22
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\DateRangeValidatorTest\DateRangeValidatorReturnsFalseIfInputIsEqualsMinimumOption
‪DateRangeValidatorReturnsFalseIfInputIsEqualsMinimumOption()
Definition: DateRangeValidatorTest.php:81
‪TYPO3\CMS\Core\Core\SystemEnvironmentBuilder
Definition: SystemEnvironmentBuilder.php:41
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\DateRangeValidatorTest\validateOptionsThrowsExceptionIfMinimumOptionIsInvalid
‪validateOptionsThrowsExceptionIfMinimumOptionIsInvalid()
Definition: DateRangeValidatorTest.php:40
‪TYPO3\CMS\Core\Core\SystemEnvironmentBuilder\REQUESTTYPE_BE
‪const REQUESTTYPE_BE
Definition: SystemEnvironmentBuilder.php:45
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\DateRangeValidatorTest
Definition: DateRangeValidatorTest.php:30
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\DateRangeValidatorTest\DateRangeValidatorReturnsFalseIfInputIsGreaterThanMinimumOption
‪DateRangeValidatorReturnsFalseIfInputIsGreaterThanMinimumOption()
Definition: DateRangeValidatorTest.php:91
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\DateRangeValidatorTest\validateOptionsThrowsExceptionIfMaximumOptionIsInvalid
‪validateOptionsThrowsExceptionIfMaximumOptionIsInvalid()
Definition: DateRangeValidatorTest.php:51
‪$validator
‪if(isset($args['d'])) $validator
Definition: validateRstFiles.php:262
‪TYPO3\CMS\Core\Http\ServerRequest
Definition: ServerRequest.php:39
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\DateRangeValidatorTest\DateRangeValidatorReturnsTrueIfInputIsNoDateTime
‪DateRangeValidatorReturnsTrueIfInputIsNoDateTime()
Definition: DateRangeValidatorTest.php:62
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\DateRangeValidatorTest\setUp
‪setUp()
Definition: DateRangeValidatorTest.php:31
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Form\Mvc\Validation\DateRangeValidator
Definition: DateRangeValidator.php:29
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\DateRangeValidatorTest\DateRangeValidatorReturnsTrueIfInputIsGreaterThanMaximumOption
‪DateRangeValidatorReturnsTrueIfInputIsGreaterThanMaximumOption()
Definition: DateRangeValidatorTest.php:121
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:52
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\DateRangeValidatorTest\DateRangeValidatorReturnsFalseIfInputIsLowerThanMaximumOption
‪DateRangeValidatorReturnsFalseIfInputIsLowerThanMaximumOption()
Definition: DateRangeValidatorTest.php:101
‪TYPO3\CMS\Form\Tests\Functional\Mvc\Validation\DateRangeValidatorTest\DateRangeValidatorReturnsTrueIfInputIsLowerThanMinimumOption
‪DateRangeValidatorReturnsTrueIfInputIsLowerThanMinimumOption()
Definition: DateRangeValidatorTest.php:71