1 package club.wpia.gigi.passwords;
3 import static org.junit.Assert.*;
7 import club.wpia.gigi.passwords.PasswordStrengthChecker;
8 import club.wpia.gigi.testUtils.ClientBusinessTest;
10 public class TestPasswordStrengthChecker extends ClientBusinessTest {
14 public TestPasswordStrengthChecker() {}
16 private int check(String pw) {
17 return new PasswordStrengthChecker().ratePassword(pw, new String[] {
18 "fname", "lname", "mname", "suffix"
23 public void testPasswordLength() {
24 assertEquals(1, check("01234"));
25 assertEquals(2, check("0123456789012345"));
26 assertEquals(3, check("012345678901234567890"));
27 assertEquals(4, check("01234567890123456789012345"));
28 assertEquals(5, check("0123456789012345678901234567890"));
32 public void testPasswordNonASCII() {
33 assertEquals(2, check("0ä"));
34 assertEquals(3, check("0aä"));
35 assertEquals(3, check("0azä"));
36 assertEquals(3, check("0az.ä"));
40 public void testPasswordCharTypes() {
41 assertEquals(1, check("0"));
42 assertEquals(2, check("0a"));
43 assertEquals(2, check("0az"));
44 assertEquals(3, check("0azZ"));
45 assertEquals(4, check("0a zZ"));
46 assertEquals(5, check("0a. zZ"));
48 assertEquals(1, check("."));
49 assertEquals(1, check(" "));
50 assertEquals(1, check("b"));
51 assertEquals(1, check("Z"));
53 assertEquals(2, check("0."));
54 assertEquals(2, check("0 "));
55 assertEquals(2, check("0a"));
56 assertEquals(2, check("0Z"));
58 assertEquals(2, check(" ."));
59 assertEquals(2, check(" a"));
60 assertEquals(2, check(" Z"));
65 public void testPasswordContains() {
66 assertEquals( -1, check("fnamea"));
67 assertEquals( -5, check("na"));
68 assertEquals(0, check("1lname"));
69 assertEquals(0, check("1email"));
70 assertEquals( -1, check("mai"));
71 assertEquals( -1, check("suff"));
72 assertEquals(0, check("1suffix"));