You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class PasswordValidatorTest {
static PasswordValidator passwordValidator = new PasswordValidator();
@BeforeAll static void init() { passwordValidator = new PasswordValidator(); }
@Test void testMinimumPasswordLength() { assertFalse(passwordValidator.validate(""));
passwordValidator.setMinLength(6); passwordValidator.setRequireUppercase(false); passwordValidator.setRequireLowercase(false); passwordValidator.setRequireDigit(false); passwordValidator.setCheckPwned(false); passwordValidator.setRequireSpecialChar(false); assertFalse(passwordValidator.validate("abcde")); assertTrue(passwordValidator.validate("abcdef")); assertTrue(passwordValidator.validate("abcdefg")); }
@Test void testUppercasePasswordRequirement() { passwordValidator.setRequireUppercase(true); passwordValidator.setRequireLowercase(false); passwordValidator.setRequireDigit(false); passwordValidator.setCheckPwned(false); passwordValidator.setRequireSpecialChar(false); assertFalse(passwordValidator.validate("abcdef")); assertTrue(passwordValidator.validate("abCdef")); assertTrue(passwordValidator.validate("ABCDEF")); }
@Test void testLowercasePasswordRequirement() { passwordValidator.setRequireUppercase(true); passwordValidator.setRequireLowercase(true); passwordValidator.setRequireDigit(false); passwordValidator.setCheckPwned(false); passwordValidator.setRequireSpecialChar(false); assertFalse(passwordValidator.validate("abcdef")); assertTrue(passwordValidator.validate("abCdef")); assertFalse(passwordValidator.validate("ABCDEF")); }
@Test void testDigitsPasswordRequirement() { passwordValidator.setRequireUppercase(true); passwordValidator.setRequireLowercase(true); passwordValidator.setRequireDigit(true); passwordValidator.setCheckPwned(false); passwordValidator.setRequireSpecialChar(false); assertFalse(passwordValidator.validate("8")); assertFalse(passwordValidator.validate("12345678")); assertFalse(passwordValidator.validate("abcdef")); assertFalse(passwordValidator.validate("abcdef8")); assertFalse(passwordValidator.validate("abCdef")); assertFalse(passwordValidator.validate("ABCDEF")); assertFalse(passwordValidator.validate("ABCDEF8")); assertTrue(passwordValidator.validate("abCDE8F")); }
@Test void testSpecialCharsPasswordRequirement() { passwordValidator.setRequireUppercase(true); passwordValidator.setRequireLowercase(true); passwordValidator.setRequireDigit(true); passwordValidator.setCheckPwned(false); passwordValidator.setRequireSpecialChar(true); assertFalse(passwordValidator.validate("*")); assertFalse(passwordValidator.validate("abCDE8F")); assertTrue(passwordValidator.validate("abCDE8_F")); assertTrue(passwordValidator.validate("abCDE*/8_F")); }
/** * Requires a network connection and DNS to be set up. */ @Test void testPasswordPwnedCheck() { passwordValidator.setRequireUppercase(true); passwordValidator.setRequireLowercase(true); passwordValidator.setRequireDigit(true); passwordValidator.setCheckPwned(true); assertFalse(passwordValidator.validate("8")); assertFalse(passwordValidator.validate("asdf12")); assertTrue(passwordValidator.validate("=phan0johB4aisae6Mie0jeip9Saejahc0iuvuth7ahv9uoni6o*_.+")); }
@Test void testPasswordWordlistCheck() { passwordValidator.setRequireUppercase(true); passwordValidator.setRequireLowercase(true); passwordValidator.setRequireDigit(true); passwordValidator.setCheckPwned(true); passwordValidator.setCheckWordlist(true); assertFalse(passwordValidator.validate("8")); assertFalse(passwordValidator.validate("_Sonnenblume123")); assertTrue(passwordValidator.validate("=phan0johB4aisae6Mie0jeip9Saejahc0iuvuth7ahv9uoni6o*_.+")); }
@Test void getSHA1Hash() { assertEquals("356A192B7913B04C54574D18C28D46E6395428AB".toLowerCase(), PasswordValidator.getSHA1Hash("1")); assertEquals("A233F0E898ED0661D6D47ED0958F16B52E537231".toLowerCase(), PasswordValidator.getSHA1Hash("asdf12")); assertNull(PasswordValidator.getSHA1Hash("")); }
@Test void isPwned() { assertTrue(PasswordValidator.isPwned("asdf12")); assertFalse(PasswordValidator.isPwned("=phan0johB4aisae6Mie0jeip9Saejahc0iuvuth7ahv9uoni6o*_.+")); assertFalse(PasswordValidator.isPwned("")); }
@Test void isInWordlist() { assertTrue(PasswordValidator.isInWordlist("Sonnenblume")); assertTrue(PasswordValidator.isInWordlist("_Sonnenblume123")); assertFalse(PasswordValidator.isInWordlist("=phan0johB4aisae6Mie0jeip9Saejahc0iuvuth7ahv9uoni6o*_.+")); } }
|