mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-08-27 13:06:04 +02:00
44 lines
1.1 KiB
PHP
44 lines
1.1 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* @package sapphire
|
||
|
* @subpackage tests
|
||
|
*/
|
||
|
|
||
|
class PasswordValidatorTest extends SapphireTest {
|
||
|
|
||
|
function testValidate() {
|
||
|
$v = new PasswordValidator();
|
||
|
$r = $v->validate('', new Member());
|
||
|
$this->assertTrue($r->valid(), 'Empty password is valid by default');
|
||
|
|
||
|
$r = $v->validate('mypassword', new Member());
|
||
|
$this->assertTrue($r->valid(), 'Non-Empty password is valid by default');
|
||
|
}
|
||
|
|
||
|
function testValidateMinLength() {
|
||
|
$v = new PasswordValidator();
|
||
|
|
||
|
$v->minLength(4);
|
||
|
$r = $v->validate('123', new Member());
|
||
|
$this->assertFalse($r->valid(), 'Password too short');
|
||
|
|
||
|
$v->minLength(4);
|
||
|
$r = $v->validate('1234', new Member());
|
||
|
$this->assertTrue($r->valid(), 'Password long enough');
|
||
|
}
|
||
|
|
||
|
function testValidateMinScore() {
|
||
|
$v = new PasswordValidator();
|
||
|
$v->characterStrength(3, array("lowercase", "uppercase", "digits", "punctuation"));
|
||
|
|
||
|
$r = $v->validate('aA', new Member());
|
||
|
$this->assertFalse($r->valid(), 'Passing too few tests');
|
||
|
|
||
|
$r = $v->validate('aA1', new Member());
|
||
|
$this->assertTrue($r->valid(), 'Passing enough tests');
|
||
|
}
|
||
|
|
||
|
function testHistoricalPasswordCount() {
|
||
|
// TODO
|
||
|
}
|
||
|
}
|