Blame view

framework/tests/security/PasswordValidatorTest.php 1.18 KB
0084d336   Administrator   Importers CRUD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
  <?php
  /**
   * @package framework
   * @subpackage tests
   */
  
  class PasswordValidatorTest extends SapphireTest {
  	
  	public 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');
  	}
  	
  	public 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');
  	}
  	
  	public 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');
  	}
  	
  	public function testHistoricalPasswordCount() {
  		$this->markTestIncomplete();
  	}
  }