‪TYPO3CMS  ‪main
PasswordPolicyValidatorTest.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 ‪PasswordPolicyValidatorTest extends FunctionalTestCase
29 {
33  protected bool ‪$initializeDatabase = false;
34 
35  protected function ‪setUp(): void
36  {
37  parent::setUp();
38  ‪$GLOBALS['LANG'] = $this->getMockBuilder(LanguageService::class)
39  ->disableOriginalConstructor()
40  ->onlyMethods(['sL'])
41  ->getMock();
42  }
43 
44  #[Test]
46  {
48  $passwordPolicy = 'default';
49 
50  $passwordPolicyValidator = GeneralUtility::makeInstance(
51  PasswordPolicyValidator::class,
53  $passwordPolicy
54  );
55 
56  self::assertTrue($passwordPolicyValidator->isEnabled());
57  }
58 
59  #[Test]
61  {
62  ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['passwordPolicies'] = [];
63  $passwordPolicy = 'default';
64 
65  $passwordPolicyValidator = GeneralUtility::makeInstance(
66  PasswordPolicyValidator::class,
68  $passwordPolicy
69  );
70 
71  self::assertFalse($passwordPolicyValidator->isEnabled());
72  }
73 
74  #[Test]
76  {
78  $passwordPolicy = 'unknown';
79 
80  $passwordPolicyValidator = GeneralUtility::makeInstance(
81  PasswordPolicyValidator::class,
83  $passwordPolicy
84  );
85 
86  self::assertFalse($passwordPolicyValidator->isEnabled());
87  }
88 
89  #[Test]
91  {
93  $passwordPolicy = 'default';
94 
95  $passwordPolicyValidator = GeneralUtility::makeInstance(
96  PasswordPolicyValidator::class,
98  $passwordPolicy
99  );
100 
101  self::assertCount(5, $passwordPolicyValidator->getRequirements());
102  }
103 
104  #[Test]
106  {
108  $passwordPolicy = 'default';
109 
110  $passwordPolicyValidator = GeneralUtility::makeInstance(
111  PasswordPolicyValidator::class,
113  $passwordPolicy
114  );
115 
116  self::assertFalse($passwordPolicyValidator->isValidPassword('123456'));
117  self::assertCount(4, $passwordPolicyValidator->getValidationErrors());
118  }
119 
120  #[Test]
122  {
124  $passwordPolicy = 'default';
125 
126  $passwordPolicyValidator = GeneralUtility::makeInstance(
127  PasswordPolicyValidator::class,
129  $passwordPolicy
130  );
131 
132  self::assertFalse($passwordPolicyValidator->isValidPassword(''));
133  self::assertCount(5, $passwordPolicyValidator->getValidationErrors());
134  }
135 
136  protected function ‪setDefaultPasswordPolicy(): void
137  {
138  ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['passwordPolicies'] = [
139  'default' => [
140  'validators' => [
141  CorePasswordValidator::class => [
142  'options' => [
143  'minimumLength' => 8,
144  'upperCaseCharacterRequired' => true,
145  'lowerCaseCharacterRequired' => true,
146  'digitCharacterRequired' => true,
147  'specialCharacterRequired' => true,
148  ],
149  'excludeActions' => [],
150  ],
151  ],
152  ],
153  ];
154  }
155 }
‪TYPO3\CMS\Core\Tests\Functional\PasswordPolicy\PasswordPolicyValidatorTest\setUp
‪setUp()
Definition: PasswordPolicyValidatorTest.php:35
‪TYPO3\CMS\Core\Tests\Functional\PasswordPolicy\PasswordPolicyValidatorTest\passwordPolicyValidatorReturnsExpectedAmountOfPasswordPolicyRequirements
‪passwordPolicyValidatorReturnsExpectedAmountOfPasswordPolicyRequirements()
Definition: PasswordPolicyValidatorTest.php:90
‪TYPO3\CMS\Core\Tests\Functional\PasswordPolicy
Definition: PasswordPolicyValidatorTest.php:18
‪TYPO3\CMS\Core\Tests\Functional\PasswordPolicy\PasswordPolicyValidatorTest\setDefaultPasswordPolicy
‪setDefaultPasswordPolicy()
Definition: PasswordPolicyValidatorTest.php:136
‪TYPO3\CMS\Core\PasswordPolicy\Validator\CorePasswordValidator
Definition: CorePasswordValidator.php:34
‪TYPO3\CMS\Core\Tests\Functional\PasswordPolicy\PasswordPolicyValidatorTest\passwordPolicyValidatorIsDisabledForUnknownPasswordPolicyIdentifier
‪passwordPolicyValidatorIsDisabledForUnknownPasswordPolicyIdentifier()
Definition: PasswordPolicyValidatorTest.php:75
‪TYPO3\CMS\Core\PasswordPolicy\NEW_USER_PASSWORD
‪@ NEW_USER_PASSWORD
Definition: PasswordPolicyAction.php:27
‪TYPO3\CMS\Core\PasswordPolicy\PasswordPolicyValidator
Definition: PasswordPolicyValidator.php:27
‪TYPO3\CMS\Core\Tests\Functional\PasswordPolicy\PasswordPolicyValidatorTest\passwordPolicyValidatorDoesNotAcceptPasswordNotCompliantToPolicy
‪passwordPolicyValidatorDoesNotAcceptPasswordNotCompliantToPolicy()
Definition: PasswordPolicyValidatorTest.php:105
‪TYPO3\CMS\Core\Tests\Functional\PasswordPolicy\PasswordPolicyValidatorTest\passwordPolicyValidatorHasExpectedAmountOfValidationErrorsForInvalidPassword
‪passwordPolicyValidatorHasExpectedAmountOfValidationErrorsForInvalidPassword()
Definition: PasswordPolicyValidatorTest.php:121
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Core\PasswordPolicy\PasswordPolicyAction
‪PasswordPolicyAction
Definition: PasswordPolicyAction.php:24
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:46
‪TYPO3\CMS\Core\Tests\Functional\PasswordPolicy\PasswordPolicyValidatorTest
Definition: PasswordPolicyValidatorTest.php:29
‪TYPO3\CMS\Core\Tests\Functional\PasswordPolicy\PasswordPolicyValidatorTest\passwordPolicyValidatorIsEnabledWhenPasswordPolicyIsConfigured
‪passwordPolicyValidatorIsEnabledWhenPasswordPolicyIsConfigured()
Definition: PasswordPolicyValidatorTest.php:45
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:52
‪TYPO3\CMS\Core\Tests\Functional\PasswordPolicy\PasswordPolicyValidatorTest\passwordPolicyValidatorIsDisabledWhenNoValidatorsInPasswordPolicy
‪passwordPolicyValidatorIsDisabledWhenNoValidatorsInPasswordPolicy()
Definition: PasswordPolicyValidatorTest.php:60
‪TYPO3\CMS\Core\Tests\Functional\PasswordPolicy\PasswordPolicyValidatorTest\$initializeDatabase
‪bool $initializeDatabase
Definition: PasswordPolicyValidatorTest.php:33