]> WPIA git - gigi.git/blob - tests/org/cacert/gigi/util/TestPasswordStrengthChecker.java
UPD: For privacy do not disclose target userid ( or name/dob by userid)
[gigi.git] / tests / org / cacert / gigi / util / TestPasswordStrengthChecker.java
1 package org.cacert.gigi.util;
2
3 import org.cacert.gigi.User;
4 import org.junit.Test;
5 import static org.junit.Assert.*;
6
7 public class TestPasswordStrengthChecker {
8
9     User u;
10
11     public TestPasswordStrengthChecker() {
12         u = new User();
13         u.setFname("fname");
14         u.setLname("lname");
15         u.setMname("mname");
16         u.setEmail("email");
17         u.setSuffix("suffix");
18     }
19
20     @Test
21     public void testPasswordLength() {
22         assertEquals(1, PasswordStrengthChecker.checkpw("01234", u));
23         assertEquals(2, PasswordStrengthChecker.checkpw("0123456789012345", u));
24         assertEquals(3, PasswordStrengthChecker.checkpw("012345678901234567890", u));
25         assertEquals(4, PasswordStrengthChecker.checkpw("01234567890123456789012345", u));
26         assertEquals(5, PasswordStrengthChecker.checkpw("0123456789012345678901234567890", u));
27     }
28
29     @Test
30     public void testPasswordNonASCII() {
31         assertEquals(2, PasswordStrengthChecker.checkpw("0ä", u));
32         assertEquals(3, PasswordStrengthChecker.checkpw("0aä", u));
33         assertEquals(3, PasswordStrengthChecker.checkpw("0azä", u));
34         assertEquals(3, PasswordStrengthChecker.checkpw("0az.ä", u));
35     }
36
37     @Test
38     public void testPasswordCharTypes() {
39         assertEquals(1, PasswordStrengthChecker.checkpw("0", u));
40         assertEquals(2, PasswordStrengthChecker.checkpw("0a", u));
41         assertEquals(2, PasswordStrengthChecker.checkpw("0az", u));
42         assertEquals(3, PasswordStrengthChecker.checkpw("0azZ", u));
43         assertEquals(4, PasswordStrengthChecker.checkpw("0a zZ", u));
44         assertEquals(5, PasswordStrengthChecker.checkpw("0a. zZ", u));
45
46         assertEquals(1, PasswordStrengthChecker.checkpw(".", u));
47         assertEquals(1, PasswordStrengthChecker.checkpw(" ", u));
48         assertEquals(1, PasswordStrengthChecker.checkpw("b", u));
49         assertEquals(1, PasswordStrengthChecker.checkpw("Z", u));
50
51         assertEquals(2, PasswordStrengthChecker.checkpw("0.", u));
52         assertEquals(2, PasswordStrengthChecker.checkpw("0 ", u));
53         assertEquals(2, PasswordStrengthChecker.checkpw("0a", u));
54         assertEquals(2, PasswordStrengthChecker.checkpw("0Z", u));
55
56         assertEquals(2, PasswordStrengthChecker.checkpw(" .", u));
57         assertEquals(2, PasswordStrengthChecker.checkpw(" a", u));
58         assertEquals(2, PasswordStrengthChecker.checkpw(" Z", u));
59
60     }
61
62     @Test
63     public void testPasswordContains() {
64         assertEquals( -1, PasswordStrengthChecker.checkpw("fnamea", u));
65         assertEquals( -5, PasswordStrengthChecker.checkpw("na", u));
66         assertEquals(0, PasswordStrengthChecker.checkpw("1lname", u));
67         assertEquals(0, PasswordStrengthChecker.checkpw("1email", u));
68         assertEquals( -1, PasswordStrengthChecker.checkpw("mai", u));
69         assertEquals( -1, PasswordStrengthChecker.checkpw("suff", u));
70         assertEquals(0, PasswordStrengthChecker.checkpw("1suffix", u));
71
72     }
73
74 }