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