]> WPIA git - gigi.git/blob - tests/org/cacert/gigi/util/TestPasswordStrengthChecker.java
add: Allow multiple names, name-schemes, multi-name-assurance, etc.
[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.testUtils.ClientBusinessTest;
6 import org.junit.Test;
7
8 public class TestPasswordStrengthChecker extends ClientBusinessTest {
9
10     String e = "email";
11
12     public TestPasswordStrengthChecker() {}
13
14     private int check(String pw) {
15         return PasswordStrengthChecker.checkpw(pw, new String[] {
16                 "fname", "lname", "mname", "suffix"
17         }, e);
18     }
19
20     @Test
21     public void testPasswordLength() {
22         assertEquals(1, check("01234"));
23         assertEquals(2, check("0123456789012345"));
24         assertEquals(3, check("012345678901234567890"));
25         assertEquals(4, check("01234567890123456789012345"));
26         assertEquals(5, check("0123456789012345678901234567890"));
27     }
28
29     @Test
30     public void testPasswordNonASCII() {
31         assertEquals(2, check("0ä"));
32         assertEquals(3, check("0aä"));
33         assertEquals(3, check("0azä"));
34         assertEquals(3, check("0az.ä"));
35     }
36
37     @Test
38     public void testPasswordCharTypes() {
39         assertEquals(1, check("0"));
40         assertEquals(2, check("0a"));
41         assertEquals(2, check("0az"));
42         assertEquals(3, check("0azZ"));
43         assertEquals(4, check("0a zZ"));
44         assertEquals(5, check("0a. zZ"));
45
46         assertEquals(1, check("."));
47         assertEquals(1, check(" "));
48         assertEquals(1, check("b"));
49         assertEquals(1, check("Z"));
50
51         assertEquals(2, check("0."));
52         assertEquals(2, check("0 "));
53         assertEquals(2, check("0a"));
54         assertEquals(2, check("0Z"));
55
56         assertEquals(2, check(" ."));
57         assertEquals(2, check(" a"));
58         assertEquals(2, check(" Z"));
59
60     }
61
62     @Test
63     public void testPasswordContains() {
64         assertEquals( -1, check("fnamea"));
65         assertEquals( -5, check("na"));
66         assertEquals(0, check("1lname"));
67         assertEquals(0, check("1email"));
68         assertEquals( -1, check("mai"));
69         assertEquals( -1, check("suff"));
70         assertEquals(0, check("1suffix"));
71
72     }
73
74 }