[TASK] Remove old language labels in EXT:setup
[Packages/TYPO3.CMS.git] / typo3 / sysext / form / Tests / Unit / Validator / DateValidatorTest.php
1 <?php
2 namespace TYPO3\CMS\Form\Tests\Unit\Validator;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 /**
18 * Test case
19 */
20 class DateValidatorTest extends AbstractValidatorTest
21 {
22 /**
23 * @var string
24 */
25 protected $subjectClassName = \TYPO3\CMS\Form\Domain\Validator\DateValidator::class;
26
27 /**
28 * @return array
29 */
30 public function validDateProvider()
31 {
32 return [
33 '28-03-2012' => [['%e-%m-%Y', '28-03-2012']],
34 '8-03-2012' => [['%e-%m-%Y', '8-03-2012']],
35 '29-02-2012' => [['%d-%m-%Y', '29-02-2012']]
36 ];
37 }
38
39 /**
40 * @return array
41 */
42 public function invalidDateProvider()
43 {
44 return [
45 '32-03-2012' => [['%d-%m-%Y', '32-03-2012']],
46 '31-13-2012' => [['%d-%m-%Y', '31-13-2012']],
47 '29-02-2011' => [['%d-%m-%Y', '29-02-2011']]
48 ];
49 }
50
51 /**
52 * @test
53 * @dataProvider validDateProvider
54 * @param array $input
55 */
56 public function validateForValidInputHasEmptyErrorResult(array $input)
57 {
58 $options = ['element' => uniqid('test'), 'errorMessage' => uniqid('error')];
59 $options['format'] = $input[0];
60 $subject = $this->createSubject($options);
61
62 $this->assertEmpty(
63 $subject->validate($input[1])->getErrors()
64 );
65 }
66
67 /**
68 * @test
69 * @dataProvider invalidDateProvider
70 * @param array $input
71 */
72 public function validateForInvalidInputHasNotEmptyErrorResult(array $input)
73 {
74 $options = ['element' => uniqid('test'), 'errorMessage' => uniqid('error')];
75 $options['format'] = $input[0];
76 $subject = $this->createSubject($options);
77
78 $subject->expects($this->once())
79 ->method('humanReadableDateFormat')
80 ->willReturnArgument(0);
81
82 $this->assertNotEmpty(
83 $subject->validate($input[1])->getErrors()
84 );
85 }
86 }