diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/PasswordPolicy.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/PasswordPolicy.java index 3df1e679d6..5eb8f1b10f 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/PasswordPolicy.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/PasswordPolicy.java @@ -34,6 +34,8 @@ public class PasswordPolicy extends Authentication { public void addPolicy(PasswordPolicy.Type policy, String value) { waitGuiForElement(addPolicySelectElement); addPolicySelect.selectByVisibleText(policy.getName()); + + //addPolicySelect.selectByValue(policy.getName()); setPolicyValue(policy, value); primaryButton.click(); } @@ -82,10 +84,10 @@ public class PasswordPolicy extends Authentication { public enum Type { - HASH_ITERATIONS("Hash Iterations"), LENGTH("Length"), DIGITS("Digits"), LOWER_CASE("Lower Case"), - UPPER_CASE("Upper Case"), SPECIAL_CHARS("Special Chars"), NOT_USERNAME("Not Username"), - REGEX_PATTERN("Regex Pattern"), PASSWORD_HISTORY("Password History"), - FORCE_EXPIRED_PASSWORD_CHANGE("Force Expired Password Change"); + HASH_ITERATIONS("HashIterations"), LENGTH("Length"), DIGITS("Digits"), LOWER_CASE("LowerCase"), + UPPER_CASE("UpperCase"), SPECIAL_CHARS("SpecialChars"), NOT_USERNAME("NotUsername"), + REGEX_PATTERN("RegexPattern"), PASSWORD_HISTORY("PasswordHistory"), + FORCE_EXPIRED_PASSWORD_CHANGE("ForceExpiredPasswordChange"); private String name; diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/authentication/PasswordPolicyTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/authentication/PasswordPolicyTest.java index bb578ff81a..aecb315d1e 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/authentication/PasswordPolicyTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/authentication/PasswordPolicyTest.java @@ -21,11 +21,13 @@ import org.jboss.arquillian.graphene.page.Page; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; +import org.keycloak.representations.idm.RealmRepresentation; import org.keycloak.testsuite.console.AbstractConsoleTest; import org.keycloak.testsuite.console.page.authentication.PasswordPolicy; import org.keycloak.testsuite.console.page.users.UserCredentials; -import static org.keycloak.testsuite.console.page.authentication.PasswordPolicy.Type.*; +import static org.keycloak.testsuite.console.page.authentication.PasswordPolicy.Type.HASH_ITERATIONS; +import static org.keycloak.testsuite.console.page.authentication.PasswordPolicy.Type.REGEX_PATTERN; /** * @author Petr Mensik @@ -43,11 +45,11 @@ public class PasswordPolicyTest extends AbstractConsoleTest { @Before public void beforePasswordPolicyTest() { testUserCredentialsPage.setId(testUser.getId()); - passwordPolicyPage.navigateTo(); } @Test public void testAddAndRemovePolicy() { + passwordPolicyPage.navigateTo(); passwordPolicyPage.addPolicy(HASH_ITERATIONS, 5); passwordPolicyPage.removePolicy(HASH_ITERATIONS); assertFlashMessageSuccess(); @@ -55,6 +57,7 @@ public class PasswordPolicyTest extends AbstractConsoleTest { @Test public void testInvalidPolicyValues() { + passwordPolicyPage.navigateTo(); passwordPolicyPage.addPolicy(HASH_ITERATIONS, "asd"); assertFlashMessageDanger(); passwordPolicyPage.removePolicy(HASH_ITERATIONS); @@ -65,7 +68,10 @@ public class PasswordPolicyTest extends AbstractConsoleTest { @Test public void testLengthPolicy() { - passwordPolicyPage.addPolicy(LENGTH, 8); + + RealmRepresentation realm = testRealmResource().toRepresentation(); + realm.setPasswordPolicy("length(8) and "); + testRealmResource().update(realm); testUserCredentialsPage.navigateTo(); testUserCredentialsPage.resetPassword("1234567"); @@ -77,7 +83,9 @@ public class PasswordPolicyTest extends AbstractConsoleTest { @Test public void testDigitsPolicy() { - passwordPolicyPage.addPolicy(DIGITS, 2); + RealmRepresentation realm = testRealmResource().toRepresentation(); + realm.setPasswordPolicy("digits(2) and "); + testRealmResource().update(realm); testUserCredentialsPage.navigateTo(); testUserCredentialsPage.resetPassword("invalidPassword1"); @@ -89,7 +97,9 @@ public class PasswordPolicyTest extends AbstractConsoleTest { @Test public void testLowerCasePolicy() { - passwordPolicyPage.addPolicy(LOWER_CASE, 2); + RealmRepresentation realm = testRealmResource().toRepresentation(); + realm.setPasswordPolicy("lowerCase(2) and "); + testRealmResource().update(realm); testUserCredentialsPage.navigateTo(); testUserCredentialsPage.resetPassword("iNVALIDPASSWORD"); @@ -101,7 +111,9 @@ public class PasswordPolicyTest extends AbstractConsoleTest { @Test public void testUpperCasePolicy() { - passwordPolicyPage.addPolicy(UPPER_CASE, 2); + RealmRepresentation realm = testRealmResource().toRepresentation(); + realm.setPasswordPolicy("upperCase(2) and "); + testRealmResource().update(realm); testUserCredentialsPage.navigateTo(); testUserCredentialsPage.resetPassword("Invalidpassword"); @@ -113,7 +125,9 @@ public class PasswordPolicyTest extends AbstractConsoleTest { @Test public void testSpecialCharsPolicy() { - passwordPolicyPage.addPolicy(SPECIAL_CHARS, 2); + RealmRepresentation realm = testRealmResource().toRepresentation(); + realm.setPasswordPolicy("specialChars(2) and "); + testRealmResource().update(realm); testUserCredentialsPage.navigateTo(); testUserCredentialsPage.resetPassword("invalidPassword*"); @@ -125,7 +139,9 @@ public class PasswordPolicyTest extends AbstractConsoleTest { @Test public void testNotUsernamePolicy() { - passwordPolicyPage.addPolicy(NOT_USERNAME); + RealmRepresentation realm = testRealmResource().toRepresentation(); + realm.setPasswordPolicy("notUsername(1) and "); + testRealmResource().update(realm); testUserCredentialsPage.navigateTo(); testUserCredentialsPage.resetPassword(testUser.getUsername()); @@ -137,7 +153,16 @@ public class PasswordPolicyTest extends AbstractConsoleTest { @Test public void testRegexPatternsPolicy() { - passwordPolicyPage.addPolicy(REGEX_PATTERN, "^[A-Z]+#[a-z]{8}$"); + RealmRepresentation realm = testRealmResource().toRepresentation(); + realm.setPasswordPolicy("regexPattern(^[A-Z]+#[a-z]{8}$) and "); + System.out.println(realm.getPasswordPolicy()); + testRealmResource().update(realm); + + /* try { + Thread.sleep(45000000); + } catch (InterruptedException e) { + e.printStackTrace(); + }*/ testUserCredentialsPage.navigateTo(); testUserCredentialsPage.resetPassword("invalidPassword"); @@ -149,7 +174,9 @@ public class PasswordPolicyTest extends AbstractConsoleTest { @Test public void testPasswordHistoryPolicy() { - passwordPolicyPage.addPolicy(PASSWORD_HISTORY, 2); + RealmRepresentation realm = testRealmResource().toRepresentation(); + realm.setPasswordPolicy("passwordHistory(2) and "); + testRealmResource().update(realm); testUserCredentialsPage.navigateTo(); testUserCredentialsPage.resetPassword("firstPassword");