1 package org.cacert.gigi.util;
3 import static org.junit.Assert.*;
5 import org.cacert.gigi.dbObjects.Name;
8 public class TestPasswordStrengthChecker {
10 Name n = new Name("fname", "lname", "mname", "suffix");
14 public TestPasswordStrengthChecker() {}
16 private int check(String pw) {
17 return PasswordStrengthChecker.checkpw(pw, n, e);
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"));
30 public void testPasswordNonASCII() {
31 assertEquals(2, check("0ä"));
32 assertEquals(3, check("0aä"));
33 assertEquals(3, check("0azä"));
34 assertEquals(3, check("0az.ä"));
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"));
46 assertEquals(1, check("."));
47 assertEquals(1, check(" "));
48 assertEquals(1, check("b"));
49 assertEquals(1, check("Z"));
51 assertEquals(2, check("0."));
52 assertEquals(2, check("0 "));
53 assertEquals(2, check("0a"));
54 assertEquals(2, check("0Z"));
56 assertEquals(2, check(" ."));
57 assertEquals(2, check(" a"));
58 assertEquals(2, check(" Z"));
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"));