‪TYPO3CMS  ‪main
CorePasswordValidatorTest.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\DataProvider;
21 use PHPUnit\Framework\Attributes\Test;
24 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
25 
26 final class ‪CorePasswordValidatorTest extends UnitTestCase
27 {
28  protected function ‪setUp(): void
29  {
30  parent::setUp();
31  ‪$GLOBALS['LANG'] = $this->getMockBuilder(LanguageService::class)
32  ->disableOriginalConstructor()
33  ->onlyMethods(['sL'])
34  ->getMock();
35  }
36 
37  public static function ‪validatorReturnsExpectedResultsDataProvider(): array
38  {
39  return [
40  'empty password' => [
41  [
42  'minimumLength' => 8,
43  ],
44  '',
45  false,
46  ],
47  'password too short' => [
48  [
49  'minimumLength' => 8,
50  ],
51  'pass',
52  false,
53  ],
54  'no upper case char' => [
55  [
56  'upperCaseCharacterRequired' => true,
57  ],
58  'pass',
59  false,
60  ],
61  'no lower case char' => [
62  [
63  'lowerCaseCharacterRequired' => true,
64  ],
65  'PASS',
66  false,
67  ],
68  'no digit' => [
69  [
70  'digitCharacterRequired' => true,
71  ],
72  'pass',
73  false,
74  ],
75  'no special char' => [
76  [
77  'specialCharacterRequired' => true,
78  ],
79  'pass',
80  false,
81  ],
82  'password with all requirements' => [
83  [
84  'minimumLength' => 8,
85  'upperCaseCharacterRequired' => true,
86  'lowerCaseCharacterRequired' => true,
87  'digitCharacterRequired' => true,
88  'specialCharacterRequired' => true,
89  ],
90  'Pa$$w0rd!',
91  true,
92  ],
93  ];
94  }
95 
96  #[DataProvider('validatorReturnsExpectedResultsDataProvider')]
97  #[Test]
98  public function ‪validatorReturnsExpectedResults($options, $password, $expected)
99  {
100  ‪$validator = new ‪CorePasswordValidator($options);
101  self::assertEquals($expected, ‪$validator->validate($password));
102  }
103 }
‪TYPO3\CMS\Core\Tests\Unit\PasswordPolicy\Validator\CorePasswordValidatorTest\validatorReturnsExpectedResultsDataProvider
‪static validatorReturnsExpectedResultsDataProvider()
Definition: CorePasswordValidatorTest.php:37
‪TYPO3\CMS\Core\Tests\Unit\PasswordPolicy\Validator
Definition: CorePasswordValidatorTest.php:18
‪TYPO3\CMS\Core\Tests\Unit\PasswordPolicy\Validator\CorePasswordValidatorTest\validatorReturnsExpectedResults
‪validatorReturnsExpectedResults($options, $password, $expected)
Definition: CorePasswordValidatorTest.php:98
‪TYPO3\CMS\Core\PasswordPolicy\Validator\CorePasswordValidator
Definition: CorePasswordValidator.php:34
‪$validator
‪if(isset($args['d'])) $validator
Definition: validateRstFiles.php:262
‪TYPO3\CMS\Core\Tests\Unit\PasswordPolicy\Validator\CorePasswordValidatorTest
Definition: CorePasswordValidatorTest.php:27
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:46
‪TYPO3\CMS\Core\Tests\Unit\PasswordPolicy\Validator\CorePasswordValidatorTest\setUp
‪setUp()
Definition: CorePasswordValidatorTest.php:28