. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace tests\unit\Espo\Tools\UserSecurity\Password; use Espo\Tools\UserSecurity\Password\Checker; use Espo\Tools\UserSecurity\Password\ConfigProvider; use PHPUnit\Framework\TestCase; class CheckerTest extends TestCase { public function testCheck(): void { $configProvider = $this->createMock(ConfigProvider::class); $configProvider ->expects($this->any()) ->method('getStrengthLength') ->willReturn(6); $configProvider ->expects($this->any()) ->method('getStrengthLetterCount') ->willReturn(2); $configProvider ->expects($this->any()) ->method('getStrengthNumberCount') ->willReturn(1); $configProvider ->expects($this->any()) ->method('getStrengthBothCases') ->willReturn(true); $configProvider ->expects($this->any()) ->method('getStrengthSpecialCharacterCount') ->willReturn(1); $checker = new Checker($configProvider); $this->assertTrue($checker->checkStrength("Aa1:aaaaaaaaa")); $this->assertFalse($checker->checkStrength("Aa1aaaaaaaaa")); $this->assertFalse($checker->checkStrength("aa1:aaaaaaaaa")); $this->assertFalse($checker->checkStrength("aaa:aaaaaaaaa")); $this->assertFalse($checker->checkStrength("11:11111111")); $this->assertFalse($checker->checkStrength("Aa:1")); } }