keycloak-aplcache
Changes
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/Bindings.java 39(+19 -20)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/Flows.java 104(+52 -52)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/OTPPolicy.java 12(+6 -6)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/PasswordPolicy.java 9(+5 -4)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/RequiredActions.java 56(+36 -20)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/events/AdminEvents.java 55(+30 -25)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/events/Config.java 52(+29 -23)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/events/LoginEvents.java 36(+21 -15)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/BruteForceDetection.java 123(+123 -0)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/EmailSettings.java 2(+1 -1)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/Headers.java 41(+41 -0)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/SecurityDefenses.java 156(+3 -153)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/authentication/PasswordPolicyTest.java 2(+1 -1)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/authentication/RequiredActionsTest.java 44(+6 -38)
Details
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/Bindings.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/Bindings.java
index 6e8d4a4..9ef1b83 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/Bindings.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/Bindings.java
@@ -7,7 +7,7 @@ import org.openqa.selenium.support.ui.Select;
/**
* Created by mhajas on 8/21/15.
*/
-public class Bindings extends Authentication{
+public class Bindings extends Authentication {
@Override
public String getUriFragment() {
@@ -17,48 +17,48 @@ public class Bindings extends Authentication{
@FindBy(id = "browser")
private Select BrowserFlowSelect;
+ @FindBy(id = "registration")
+ private Select RegistrationFlowSelect;
+
+ @FindBy(id = "grant")
+ private Select DirectGrantFlowSelect;
+
+ @FindBy(id = "resetCredentials")
+ private Select ResetCredentialsSelect;
+
+ @FindBy(id = "clientAuthentication")
+ private Select ClientAuthenticationSelect;
+
+ @FindBy(xpath = "//button[text()='Save']")
+ private WebElement saveButton;
+
+ @FindBy(xpath = "//button[text()='Cancel']")
+ private WebElement cancelButton;
+
public void changeBrowserFlowSelect(BrowserFlowSelectValues value) {
BrowserFlowSelect.selectByVisibleText(value.getName());
}
- @FindBy(id = "registration")
- private Select RegistrationFlowSelect;
-
public void changeRegistrationFlowSelect(RegistrationFlowSelectValues value) {
RegistrationFlowSelect.selectByVisibleText(value.getName());
}
- @FindBy(id = "grant")
- private Select DirectGrantFlowSelect;
-
public void changeDirectGrantFlowSelect(DirectGrantFlowSelectValues value) {
DirectGrantFlowSelect.selectByVisibleText(value.getName());
}
- @FindBy(id = "resetCredentials")
- private Select ResetCredentialsSelect;
-
public void changeResetCredentialsSelect(ResetCredentialsSelectValues value) {
ResetCredentialsSelect.selectByVisibleText(value.getName());
}
- @FindBy(id = "clientAuthentication")
- private Select ClientAuthenticationSelect;
-
public void changeClientAuthenticationSelect(ClientAuthenticationSelectValues value) {
ClientAuthenticationSelect.selectByVisibleText(value.getName());
}
- @FindBy(xpath = "//button[text()='Save']")
- private WebElement saveButton;
-
public void clickSave() {
saveButton.click();
}
- @FindBy(xpath = "//button[text()='Cancel']")
- private WebElement cancelButton;
-
public void clickCancel() {
cancelButton.click();
}
@@ -143,5 +143,4 @@ public class Bindings extends Authentication{
}
-
}
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/Flows.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/Flows.java
index 1994064..5aaa807 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/Flows.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/Flows.java
@@ -19,9 +19,14 @@ public class Flows extends Authentication {
@FindBy(tagName = "select")
private Select flowSelect;
- public void changeFlowSelect(FlowSelectValues value) {
- flowSelect.selectByVisibleText(value.getName());
- }
+ @FindBy(linkText = "New")
+ private WebElement newButton;
+
+ @FindBy(linkText = "Copy")
+ private WebElement copyButton;
+
+ @FindBy(tagName = "table")
+ private WebElement flowsTable;
public enum FlowSelectValues {
@@ -37,13 +42,12 @@ public class Flows extends Authentication {
public String getName() {
return name;
}
- }
- @FindBy(linkText = "New")
- private WebElement newButton;
+ }
- @FindBy(linkText = "Copy")
- private WebElement copyButton;
+ public void changeFlowSelect(FlowSelectValues value) {
+ flowSelect.selectByVisibleText(value.getName());
+ }
public void clickNew() {
newButton.click();
@@ -53,160 +57,156 @@ public class Flows extends Authentication {
copyButton.click();
}
+ private void clickRadioButton(String row, int column) {
+ flowsTable.findElement(By.xpath("//td[text()[contains(.,'" + row + "')]]/../td[" + String.valueOf(column) + "]//input[@type='radio']")).click();
+ }
+
// Direct grant
public void setPasswordRequired() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Password')]]/../td[2]//input[@type='radio']")).click();
+ clickRadioButton("Password", 2);
}
public void setPasswordDisabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Password')]]/../td[3]//input[@type='radio']")).click();
+ clickRadioButton("Password", 3);
}
public void setOTPRequired() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'O T P')]]/../td[2]//input[@type='radio']")).click();
+ clickRadioButton("O T P", 2);
}
public void setOTPOptional() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'O T P')]]/../td[3]//input[@type='radio']")).click();
+ clickRadioButton("O T P", 3);
}
public void setOTPDisabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'O T P')]]/../td[4]//input[@type='radio']")).click();
+ clickRadioButton("O T P", 4);
}
// Registration
public void setRegistrationFormRequired() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Registration form')]]/../td[3]//input[@type='radio']")).click();
+ clickRadioButton("Registration form", 3);
}
public void setRegistrationFormDisabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Registration form')]]/../td[4]//input[@type='radio']")).click();
+ clickRadioButton("Registration form", 4);
}
public void setRegistrationUserCreationRequired() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Registration User Creation')]]/../td[3]//input[@type='radio']")).click();
+ clickRadioButton("Registration User Creation", 3);
}
public void setRegistrationUserCreationDisabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Registration User Creation')]]/../td[4]//input[@type='radio']")).click();
+ clickRadioButton("Registration User Creation", 4);
}
public void setProfileValidationRequired() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Profile Validation')]]/../td[3]//input[@type='radio']")).click();
+ clickRadioButton("Profile Validation", 3);
}
public void setProfileValidationDisabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Profile Validation')]]/../td[4]//input[@type='radio']")).click();
+ clickRadioButton("Profile Validation", 4);
}
public void setPasswordValidationRequired() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Password Validation')]]/../td[3]//input[@type='radio']")).click();
+ clickRadioButton("Password Validation", 3);
}
public void setPasswordValidationDisabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Password Validation')]]/../td[4]//input[@type='radio']")).click();
+ clickRadioButton("Password Validation", 4);
}
public void setRecaptchaRequired() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Recaptcha')]]/../td[3]//input[@type='radio']")).click();
+ clickRadioButton("Recaptcha", 3);
}
public void setRecaptchaDisabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Recaptcha')]]/../td[4]//input[@type='radio']")).click();
+ clickRadioButton("Recaptcha", 4);
}
// Browser
public void setCookieAlternative() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Cookie')]]/../td[3]//input[@type='radio']")).click();
+ clickRadioButton("Cookie", 3);
}
public void setCookieDisabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Cookie')]]/../td[4]//input[@type='radio']")).click();
+ clickRadioButton("Cookie", 4);
}
public void setKerberosAlternative() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Kerberos')]]/../td[3]//input[@type='radio']")).click();
+ clickRadioButton("Kerberos", 3);
}
public void setKerberosRequired() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Kerberos')]]/../td[4]//input[@type='radio']")).click();
+ clickRadioButton("Kerberos", 4);
}
public void setKerberosDisabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Kerberos')]]/../td[5]//input[@type='radio']")).click();
+ clickRadioButton("Kerberos", 5);
}
public void setFormsAlternative() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Forms')]]/../td[3]//input[@type='radio']")).click();
+ clickRadioButton("Forms", 3);
}
public void setFormsRequired() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Forms')]]/../td[4]//input[@type='radio']")).click();
+ clickRadioButton("Forms", 4);
}
public void setFormsDisabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Forms')]]/../td[5]//input[@type='radio']")).click();
+ clickRadioButton("Forms", 5);
}
public void setOTPFormRequired() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,' O T P Form')]]/../td[3]//input[@type='radio']")).click();
+ clickRadioButton(" O T P Form", 3);
}
public void setOTPFormOptional() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,' O T P Form')]]/../td[4]//input[@type='radio']")).click();
+ clickRadioButton(" O T P Form", 4);
}
public void setOTPFormDisabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,' O T P Form')]]/../td[5]//input[@type='radio']")).click();
+ clickRadioButton(" O T P Form", 5);
}
// Reset credentials
public void setResetPasswordRequired() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Reset Password')]]/../td[2]//input[@type='radio']")).click();
+ clickRadioButton("Reset Password", 2);
}
public void setResetPasswordOptional() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Reset Password')]]/../td[3]//input[@type='radio']")).click();
+ clickRadioButton("Reset Password", 3);
}
public void setResetPasswordDisabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Reset Password')]]/../td[4]//input[@type='radio']")).click();
+ clickRadioButton("Reset Password", 4);
}
public void setResetOTPRequired() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Reset O T P')]]/../td[2]//input[@type='radio']")).click();
+ clickRadioButton("Reset O T P", 2);
}
public void setResetOTPOptional() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Reset O T P')]]/../td[3]//input[@type='radio']")).click();
+ clickRadioButton("Reset O T P", 3);
}
public void setResetOTPDisabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Reset O T P')]]/../td[4]//input[@type='radio']")).click();
+ clickRadioButton("Reset O T P", 4);
}
// Clients
- public void setClientIdAndSecretRequired() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Client Id and Secret')]]/../td[2]//input[@type='radio']")).click();
- }
-
public void setClientIdAndSecretAlternative() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Client Id and Secret')]]/../td[3]//input[@type='radio']")).click();
+ clickRadioButton("Client Id and Secret", 2);
}
public void setClientIdAndSecretDisabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,'Client Id and Secret')]]/../td[4]//input[@type='radio']")).click();
- }
-
- public void setSignedJwtRequired() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,' Signed Jwt')]]/../td[2]//input[@type='radio']")).click();
+ clickRadioButton("Client Id and Secret", 3);
}
public void setSignedJwtAlternative() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,' Signed Jwt')]]/../td[3]//input[@type='radio']")).click();
+ clickRadioButton(" Signed Jwt", 2);
}
public void setSignedJwtDisabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()[contains(.,' Signed Jwt')]]/../td[4]//input[@type='radio']")).click();
+ clickRadioButton(" Signed Jwt", 3);
}
}
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/OTPPolicy.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/OTPPolicy.java
index 34e8a09..2a2bfdb 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/OTPPolicy.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/OTPPolicy.java
@@ -19,20 +19,20 @@ public class OTPPolicy extends Authentication {
@FindBy(linkText = "Cancel")
private WebElement cancelButton;
+ @FindBy(id = "lookAhead")
+ private WebElement lookAheadInput;
+
+ @FindBy(id = "counter")
+ private WebElement initialCounterInput;
+
public void clickCancel() {
cancelButton.click();
}
- @FindBy(id = "lookAhead")
- private WebElement lookAheadInput;
-
public void setLookAheadInputValue(String value) {
Form.setInputValue(lookAheadInput, value);
}
- @FindBy(id = "counter")
- private WebElement initialCounterInput;
-
public void setInitialcounterInputValue(String value) {
Form.setInputValue(initialCounterInput, value);
}
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 b2b08b5..3df1e67 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
@@ -1,14 +1,15 @@
package org.keycloak.testsuite.console.page.authentication;
-import java.util.List;
-
import org.jboss.arquillian.graphene.findby.ByJQuery;
-import static org.keycloak.testsuite.util.WaitUtils.waitGuiForElement;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.ui.Select;
+import java.util.List;
+
+import static org.keycloak.testsuite.util.WaitUtils.waitGuiForElement;
+
/**
* @author Petr Mensik
* @author tkyjovsk
@@ -23,7 +24,7 @@ public class PasswordPolicy extends Authentication {
@FindBy(tagName = "select")
private Select addPolicySelect;
-
+
@FindBy(tagName = "select")
private WebElement addPolicySelectElement;
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/RequiredActions.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/RequiredActions.java
index 5da1cda..0ea6af2 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/RequiredActions.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/RequiredActions.java
@@ -1,6 +1,8 @@
package org.keycloak.testsuite.console.page.authentication;
import org.openqa.selenium.By;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
/**
* @author tkyjovsk
@@ -8,48 +10,62 @@ import org.openqa.selenium.By;
*/
public class RequiredActions extends Authentication {
+ public final static String ENABLED = "enabled";
+ public final static String DEFAULT_ACTION = "defaultAction";
+
+ @FindBy(tagName = "table")
+ private WebElement requiredActionTable;
+
@Override
public String getUriFragment() {
return super.getUriFragment() + "/required-actions";
}
- public void clickTermsAndConditionEnabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()='Terms and Conditions']/..//input[@type='checkbox' and @ng-model='requiredAction.enabled']")).click();
+ private void setRequiredActionValue(String row, String column, boolean value) {
+ WebElement checkbox = requiredActionTable.findElement(By.xpath("//td[text()='" + row + "']/..//input[@ng-model='requiredAction." + column + "']"));
+
+ if (checkbox.isSelected() != value) {
+ checkbox.click();
+ }
+ }
+
+ public void setTermsAndConditionEnabled(boolean value) {
+ setRequiredActionValue("Terms and Conditions", ENABLED, value);
}
- public void clickTermsAndConditionDefaultAction() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()='Terms and Conditions']/..//input[@type='checkbox' and @ng-model='requiredAction.defaultAction']")).click();
+ public void setTermsAndConditionDefaultAction(boolean value) {
+ setRequiredActionValue("Terms and Conditions", DEFAULT_ACTION, value);
}
- public void clickVerifyEmailEnabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()='Verify Email']/..//input[@type='checkbox' and @ng-model='requiredAction.enabled']")).click();
+ public void setVerifyEmailEnabled(boolean value) {
+ setRequiredActionValue("Verify Email", ENABLED, value);
}
- public void clickVerifyEmailDefaultAction() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()='Verify Email']/..//input[@type='checkbox' and @ng-model='requiredAction.defaultAction']")).click();
+ public void setVerifyEmailDefaultAction(boolean value) {
+ setRequiredActionValue("Verify Email", DEFAULT_ACTION, value);
}
- public void clickUpdatePasswordEnabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()='Update Password']/..//input[@type='checkbox' and @ng-model='requiredAction.enabled']")).click();
+ public void setUpdatePasswordEnabled(boolean value) {
+ setRequiredActionValue("Update Password", ENABLED, value);
}
- public void clickUpdatePasswordDefaultAction() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()='Update Password']/..//input[@type='checkbox' and @ng-model='requiredAction.defaultAction']")).click();
+ public void setUpdatePasswordDefaultAction(boolean value) {
+ setRequiredActionValue("Update Password", DEFAULT_ACTION, value);
}
- public void clickConfigureTotpEnabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()='Configure Totp']/..//input[@type='checkbox' and @ng-model='requiredAction.enabled']")).click();
+ public void setConfigureTotpEnabled(boolean value) {
+ setRequiredActionValue("Configure Totp", ENABLED, value);
}
- public void clickConfigureTotpDefaultAction() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()='Configure Totp']/..//input[@type='checkbox' and @ng-model='requiredAction.defaultAction']")).click();
+ public void setConfigureTotpDefaultAction(boolean value) {
+ setRequiredActionValue("Configure Totp", DEFAULT_ACTION, value);
}
- public void clickUpdateProfileEnabled() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()='Update Profile']/..//input[@type='checkbox' and @ng-model='requiredAction.enabled']")).click();
+ public void setUpdateProfileEnabled(boolean value) {
+ setRequiredActionValue("Update Profile", ENABLED, value);
}
- public void clickUpdateProfileDefaultAction() {
- driver.findElement(By.xpath("//td[@class='ng-binding' and text()='Update Profile']/..//input[@type='checkbox' and @ng-model='requiredAction.defaultAction']")).click();
+ public void setUpdateProfileDefaultAction(boolean value) {
+ setRequiredActionValue("Update Profile", DEFAULT_ACTION, value);
}
}
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/events/AdminEvents.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/events/AdminEvents.java
index 08e0e00..8cf2afc 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/events/AdminEvents.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/events/AdminEvents.java
@@ -7,7 +7,6 @@ import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
/**
- *
* @author tkyjovsk
* @author mhajas
*/
@@ -27,6 +26,12 @@ public class AdminEvents extends Events {
public class AdminEventsTable extends DataTable {
+ @FindBy(xpath = "//button[text()[contains(.,'Filter')]]")
+ private WebElement filterButton;
+
+ @FindBy(tagName = "form")
+ private AdminEventsTableFilterForm filterForm;
+
public void update() {
waitAjaxForBody();
clickHeaderButton("Update");
@@ -37,63 +42,63 @@ public class AdminEvents extends Events {
clickHeaderButton("Reset");
}
- @FindBy(xpath = "//button[text()[contains(.,'Filter')]]")
- private WebElement filterButton;
-
public void filter() {
waitAjaxForBody();
filterButton.click();
}
- @FindBy(tagName = "form")
- private AdminEventsTableFilterForm filterForm;
-
public AdminEventsTableFilterForm filterForm() {
return filterForm;
}
public class AdminEventsTableFilterForm extends Form {
+ @FindBy(id = "resource")
+ private WebElement resourcePathInput;
+
+ @FindBy(id = "realm")
+ private WebElement realmInput;
+
+ @FindBy(id = "client")
+ private WebElement clientInput;
+
+ @FindBy(id = "user")
+ private WebElement userInput;
+
+ @FindBy(id = "ipAddress")
+ private WebElement ipAddressInput;
+
+ @FindBy(xpath = "//div[@id='s2id_adminEnabledEventOperations']/ul")
+ private WebElement operationTypesInput;
+
+ @FindBy(xpath = "//div[@id='select2-drop']")
+ private WebElement operationTypesValues;
+
public void addOperationType(String type) {
- driver.findElement(By.xpath("//div[@id='s2id_adminEnabledEventOperations']/ul")).click();
- driver.findElement(By.xpath("//div[@id='select2-drop']//div[text()[contains(.,'" + type + "')]]/..")).click();
+ operationTypesInput.click();
+ operationTypesValues.findElement(By.xpath("//div[text() = '" + type + "']")).click();
}
public void removeOperationType(String type) {
- driver.findElement(By.xpath("//div[@id='s2id_adminEnabledEventOperations']//div[text()='" + type + "']/../a")).click();
+ operationTypesInput.findElement(By.xpath("//div[text()='" + type + "']/../a")).click();
}
- @FindBy(id = "resource")
- private WebElement resourcePathInput;
-
public void setResourcePathInput(String value) {
setInputValue(resourcePathInput, value);
}
- @FindBy(id = "realm")
- private WebElement realmInput;
-
public void setRealmInput(String value) {
setInputValue(realmInput, value);
}
- @FindBy(id = "client")
- private WebElement clientInput;
-
public void setClientInput(String value) {
setInputValue(clientInput, value);
}
- @FindBy(id = "user")
- private WebElement userInput;
-
public void setUserInput(String value) {
setInputValue(userInput, value);
}
- @FindBy(id = "ipAddress")
- private WebElement ipAddressInput;
-
public void setIpAddressInput(String value) {
setInputValue(ipAddressInput, value);
}
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/events/Config.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/events/Config.java
index 686e902..be84772 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/events/Config.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/events/Config.java
@@ -32,6 +32,33 @@ public class Config extends Events {
@FindBy(xpath = "//div[@id='s2id_autogen1']/..//select")
private Select eventListenersSelect;
+ @FindBy(xpath = ".//div[@class='onoffswitch' and ./input[@id='enabled']]")
+ private OnOffSwitch SaveEvents;
+
+ @FindBy(xpath = "//div[@id='s2id_enabledEventTypes']//input")
+ private WebElement savedTypesInput;
+
+ @FindBy(xpath = "//div[@id='select2-drop']/ul")
+ private WebElement savedTypesOptions;
+
+ @FindBy(id = "expiration")
+ private WebElement expirationInput;
+
+ @FindBy(name = "expirationUnit")
+ private Select expirationUnitSelect;
+
+ @FindBy(xpath = ".//div[@class='onoffswitch' and ./input[@id='adminEventsEnabled']]")
+ private OnOffSwitch saveAdminEvents;
+
+ @FindBy(xpath = ".//div[@class='onoffswitch' and ./input[@id='adminEventsDetailsEnabled']]")
+ private OnOffSwitch includeRepresentation;
+
+ @FindBy(xpath = "//button[@data-ng-click='clearEvents()']")
+ private WebElement clearLoginEventsButton;
+
+ @FindBy(xpath = "//button[@data-ng-click='clearAdminEvents()']")
+ private WebElement clearAdminEventsButton;
+
public void addEventListener(String listener) {
eventListenersInput.click();
eventListenersSelect.selectByVisibleText(listener);
@@ -41,19 +68,10 @@ public class Config extends Events {
eventListenersInput.findElement(By.xpath("//div[text()='" + listener + "']/../a")).click();
}
- @FindBy(xpath = ".//div[@class='onoffswitch' and ./input[@id='enabled']]")
- private OnOffSwitch SaveEvents;
-
public void setSaveEvents(boolean value) {
SaveEvents.setOn(value);
}
- @FindBy(xpath = "//div[@id='s2id_enabledEventTypes']//input")
- private WebElement savedTypesInput;
-
- @FindBy(xpath = "//div[@id='select2-drop']/ul")
- private WebElement savedTypesOptions;
-
public void addSaveType(String type) {
savedTypesInput.click();
savedTypesOptions.findElement(By.xpath("//div[text()='" + type + "']")).click();
@@ -64,36 +82,24 @@ public class Config extends Events {
}
public void clearLoginEvents() {
- driver.findElement(By.xpath("//button[@data-ng-click='clearEvents()']")).click();
+ clearLoginEventsButton.click();
}
- @FindBy(id = "expiration")
- private WebElement expirationInput;
-
- @FindBy(name = "expirationUnit")
- private Select expirationUnitSelect;
-
public void setExpiration(String value, String unit) {
expirationUnitSelect.selectByVisibleText(unit);
Form.setInputValue(expirationInput, value);
}
- @FindBy(xpath = ".//div[@class='onoffswitch' and ./input[@id='adminEventsEnabled']]")
- private OnOffSwitch saveAdminEvents;
-
public void setSaveAdminEvents(boolean value) {
saveAdminEvents.setOn(value);
}
- @FindBy(xpath = ".//div[@class='onoffswitch' and ./input[@id='adminEventsDetailsEnabled']]")
- private OnOffSwitch includeRepresentation;
-
public void setIncludeRepresentation(boolean value) {
includeRepresentation.setOn(value);
}
public void clearAdminEvents() {
- driver.findElement(By.xpath("//button[@data-ng-click='clearAdminEvents()']")).click();
+ clearAdminEventsButton.click();
}
}
}
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/events/LoginEvents.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/events/LoginEvents.java
index 6752951..136e455 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/events/LoginEvents.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/events/LoginEvents.java
@@ -26,6 +26,12 @@ public class LoginEvents extends Events {
public class LoginEventsTable extends DataTable {
+ @FindBy(xpath = "//button[text()[contains(.,'Filter')]]")
+ private WebElement filterButton;
+
+ @FindBy(tagName = "form")
+ private LoginEventsTableFilterForm filterForm;
+
public void update() {
waitAjaxForBody();
clickHeaderButton("Update");
@@ -36,42 +42,42 @@ public class LoginEvents extends Events {
clickHeaderButton("Reset");
}
- @FindBy(xpath = "//button[text()[contains(.,'Filter')]]")
- private WebElement filterButton;
-
public void filter() {
waitAjaxForBody();
filterButton.click();
}
- @FindBy(tagName = "form")
- private LoginEventsTableFilterForm filterForm;
-
public LoginEventsTableFilterForm filterForm() {
return filterForm;
}
public class LoginEventsTableFilterForm extends Form {
+ @FindBy(id = "client")
+ private WebElement clientInput;
+
+ @FindBy(id = "user")
+ private WebElement userInput;
+
+ @FindBy(xpath = "//div[@id='s2id_eventTypes']/ul")
+ private WebElement eventTypeInput;
+
+ @FindBy(xpath = "//div[@id='select2-drop']")
+ private WebElement eventTypeValues;
+
public void addEventType(String type) {
- driver.findElement(By.xpath("//div[@id='s2id_eventTypes']/ul")).click();
- driver.findElement(By.xpath("//div[@id='select2-drop']//div[text()='" + type + "']/..")).click();
+ eventTypeInput.click();
+ eventTypeValues.findElement(By.xpath("//div[text()='" + type + "']")).click();
}
public void removeOperationType(String type) {
- driver.findElement(By.xpath("//div[@id='s2id_eventTypes']//div[text()='" + type + "']/../a")).click();
+ eventTypeInput.findElement(By.xpath("//div[text()='" + type + "']/../a]")).click();
}
- @FindBy(id = "client")
- private WebElement clientInput;
-
public void setClientInput(String value) {
setInputValue(clientInput, value);
}
- @FindBy(id = "user")
- private WebElement userInput;
-
public void setUserInput(String value) {
setInputValue(userInput, value);
}
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/BruteForceDetection.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/BruteForceDetection.java
new file mode 100644
index 0000000..75e54b2
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/BruteForceDetection.java
@@ -0,0 +1,123 @@
+package org.keycloak.testsuite.console.page.realm;
+
+import org.jboss.arquillian.graphene.findby.FindByJQuery;
+import org.jboss.arquillian.graphene.page.Page;
+import org.keycloak.testsuite.console.page.fragment.OnOffSwitch;
+import org.keycloak.testsuite.page.Form;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.ui.Select;
+
+/**
+ * @author mhajas
+ */
+public class BruteForceDetection extends SecurityDefenses {
+
+ @Override
+ public String getUriFragment() {
+ return super.getUriFragment() + "/brute-force";
+ }
+
+ @Page
+ private BruteForceDetectionForm form;
+
+ public BruteForceDetectionForm form() {
+ return form;
+ }
+
+ public class BruteForceDetectionForm extends Form {
+
+ @FindByJQuery("div[class='onoffswitch']")
+ private OnOffSwitch protectionEnabled;
+
+ @FindBy(id = "failureFactor")
+ private WebElement maxLoginFailures;
+
+ @FindBy(id = "waitIncrement")
+ private WebElement waitIncrementInput;
+
+ @FindBy(name = "waitIncrementUnit")
+ private Select waitIncrementSelect;
+
+ @FindBy(id = "quickLoginCheckMilliSeconds")
+ private WebElement quickLoginCheckInput;
+
+ @FindBy(id = "minimumQuickLoginWait")
+ private WebElement minQuickLoginWaitInput;
+
+ @FindBy(name = "minimumQuickLoginWaitUnit")
+ private Select minQuickLoginWaitSelect;
+
+ @FindBy(id = "maxFailureWait")
+ private WebElement maxWaitInput;
+
+ @FindBy(name = "maxFailureWaitUnit")
+ private Select maxWaitSelect;
+
+ @FindBy(id = "maxDeltaTime")
+ private WebElement failureResetTimeInput;
+
+ @FindBy(name = "maxDeltaTimeUnit")
+ private Select failureResetTimeSelect;
+
+ public void setProtectionEnabled(boolean protectionEnabled) {
+ this.protectionEnabled.setOn(protectionEnabled);
+ }
+
+ public void setMaxLoginFailures(String value) {
+ setInputValue(maxLoginFailures, value);
+ }
+
+ public void setWaitIncrementInput(String value) {
+ setInputValue(waitIncrementInput, value);
+ }
+
+ public void setWaitIncrementSelect(TimeSelectValues value) {
+ waitIncrementSelect.selectByVisibleText(value.getName());
+ }
+
+ public void setQuickLoginCheckInput(String value) {
+ setInputValue(quickLoginCheckInput, value);
+ }
+
+ public void setMinQuickLoginWaitInput(String value) {
+ setInputValue(minQuickLoginWaitInput, value);
+ }
+
+ public void setMinQuickLoginWaitSelect(TimeSelectValues value) {
+ minQuickLoginWaitSelect.selectByVisibleText(value.getName());
+ }
+
+ public void setMaxWaitInput(String value) {
+ setInputValue(maxWaitInput, value);
+ }
+
+ public void setMaxWaitSelect(TimeSelectValues value) {
+ maxWaitSelect.selectByVisibleText(value.getName());
+ }
+
+ public void setFailureResetTimeInput(String value) {
+ setInputValue(failureResetTimeInput, value);
+ }
+
+ public void setFailureResetTimeSelect(TimeSelectValues value) {
+ failureResetTimeSelect.selectByVisibleText(value.getName());
+ }
+ }
+
+ public enum TimeSelectValues {
+
+ SECONDS("Seconds"), MINUTES("Minutes"), HOURS("Hours"), DAYS("Days");
+
+ private String name;
+
+ private TimeSelectValues(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/EmailSettings.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/EmailSettings.java
index f75117b..130174e 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/EmailSettings.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/EmailSettings.java
@@ -11,7 +11,7 @@ import org.openqa.selenium.support.FindBy;
* Created by mhajas on 8/25/15.
*/
public class EmailSettings extends RealmSettings {
-
+
@Override
public String getUriFragment() {
return super.getUriFragment() + "/smtp-settings";
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/Headers.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/Headers.java
new file mode 100644
index 0000000..d8c161b
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/Headers.java
@@ -0,0 +1,41 @@
+package org.keycloak.testsuite.console.page.realm;
+
+import org.jboss.arquillian.graphene.page.Page;
+import org.keycloak.testsuite.page.Form;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+
+/**
+ * @author mhajas
+ */
+public class Headers extends SecurityDefenses {
+
+ @Override
+ public String getUriFragment() {
+ return super.getUriFragment() + "/headers";
+ }
+
+ @Page
+ private HeadersForm form;
+
+ public HeadersForm form() {
+ return form;
+ }
+
+ public class HeadersForm extends Form {
+
+ @FindBy(id = "xFrameOptions")
+ private WebElement xFrameOptions;
+
+ @FindBy(id = "contentSecurityPolicy")
+ private WebElement contentSecurityPolicy;
+
+ public void setXFrameOptions(String value) {
+ setInputValue(xFrameOptions, value);
+ }
+
+ public void setContentSecurityPolicy(String value) {
+ setInputValue(contentSecurityPolicy, value);
+ }
+ }
+}
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/SecurityDefenses.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/SecurityDefenses.java
index 00bd0b8..24120af 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/SecurityDefenses.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/realm/SecurityDefenses.java
@@ -18,13 +18,7 @@
package org.keycloak.testsuite.console.page.realm;
import org.jboss.arquillian.graphene.findby.FindByJQuery;
-import org.jboss.arquillian.graphene.page.Page;
-import org.keycloak.testsuite.console.page.fragment.OnOffSwitch;
-import org.keycloak.testsuite.page.Form;
-import static org.keycloak.testsuite.page.Form.setInputValue;
import org.openqa.selenium.WebElement;
-import org.openqa.selenium.support.FindBy;
-import org.openqa.selenium.support.ui.Select;
/**
* @author Filip Kiss
@@ -37,160 +31,16 @@ public class SecurityDefenses extends RealmSettings {
return super.getUriFragment() + "/defense"; // NOTE: page doesn't exist, only subpages
}
- public class Headers extends SecurityDefenses {
-
- @Override
- public String getUriFragment() {
- return super.getUriFragment() + "/headers";
- }
-
- @Page
- private HeadersForm form;
-
- public HeadersForm form() {
- return form;
- }
-
- public class HeadersForm extends Form {
-
- @FindBy(id = "xFrameOptions")
- private WebElement xFrameOptions;
-
- public void setXFrameOptions(String value) {
- setInputValue(xFrameOptions, value);
- }
-
- @FindBy(id = "contentSecurityPolicy")
- private WebElement contentSecurityPolicy;
-
- public void setContentSecurityPolicy(String value) {
- setInputValue(contentSecurityPolicy, value);
- }
- }
- }
-
- public enum TimeSelectValues {
-
- SECONDS("Seconds"), MINUTES("Minutes"), HOURS("Hours"), DAYS("Days");
-
- private String name;
-
- private TimeSelectValues(String name) {
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
- }
-
- public class BruteForceDetection extends SecurityDefenses {
-
- @Override
- public String getUriFragment() {
- return super.getUriFragment() + "/brute-force";
- }
-
- @Page
- private BruteForceDetectionForm form;
-
- public BruteForceDetectionForm form() {
- return form;
- }
-
- public class BruteForceDetectionForm extends Form {
-
- @FindByJQuery("div[class='onoffswitch']")
- private OnOffSwitch protectionEnabled;
-
- public void setProtectionEnabled(boolean protectionEnabled) {
- this.protectionEnabled.setOn(protectionEnabled);
- }
-
- @FindBy(id = "failureFactor")
- private WebElement maxLoginFailures;
-
- public void setMaxLoginFailures(String value) {
- setInputValue(maxLoginFailures, value);
- }
-
- @FindBy(id = "waitIncrement")
- private WebElement waitIncrementInput;
-
- @FindBy(name = "waitIncrementUnit")
- private Select waitIncrementSelect;
-
- public void setWaitIncrementInput(String value) {
- setInputValue(waitIncrementInput, value);
- }
-
- public void setWaitIncrementSelect(TimeSelectValues value) {
- waitIncrementSelect.selectByVisibleText(value.getName());
- }
-
- @FindBy(id = "quickLoginCheckMilliSeconds")
- private WebElement quickLoginCheckInput;
-
- public void setQuickLoginCheckInput(String value) {
- setInputValue(quickLoginCheckInput, value);
- }
-
- @FindBy(id = "minimumQuickLoginWait")
- private WebElement minQuickLoginWaitInput;
-
- @FindBy(name = "minimumQuickLoginWaitUnit")
- private Select minQuickLoginWaitSelect;
-
- public void setMinQuickLoginWaitInput(String value) {
- setInputValue(minQuickLoginWaitInput, value);
- }
-
- public void setMinQuickLoginWaitSelect(TimeSelectValues value) {
- minQuickLoginWaitSelect.selectByVisibleText(value.getName());
- }
-
- @FindBy(id = "maxFailureWait")
- private WebElement maxWaitInput;
-
- @FindBy(name = "maxFailureWaitUnit")
- private Select maxWaitSelect;
-
- public void setMaxWaitInput(String value) {
- setInputValue(maxWaitInput, value);
- }
-
- public void setMaxWaitSelect(TimeSelectValues value) {
- maxWaitSelect.selectByVisibleText(value.getName());
- }
-
- @FindBy(id = "maxDeltaTime")
- private WebElement failureResetTimeInput;
-
- @FindBy(name = "maxDeltaTimeUnit")
- private Select failureResetTimeSelect;
-
- public void setFailureResetTimeInput(String value) {
- setInputValue(failureResetTimeInput, value);
- }
-
- public void setFailureResetTimeSelect(TimeSelectValues value) {
- failureResetTimeSelect.selectByVisibleText(value.getName());
- }
-
- }
-
- }
-
@FindByJQuery("a:contains('Brute Force Detection')")
private WebElement bruteForceDetectionTab;
+ @FindByJQuery("a:contains('Headers')")
+ private WebElement headersTab;
+
public void goToBruteForceDetection() {
bruteForceDetectionTab.click();
}
- @FindByJQuery("a:contains('Headers')")
- private WebElement headersTab;
-
public void goToHeaders() {
headersTab.click();
}
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 75cf70f..77e9a4e 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
@@ -22,9 +22,9 @@ import org.junit.Before;
import org.junit.Test;
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 org.keycloak.testsuite.console.page.users.UserCredentials;
/**
* @author Petr Mensik
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/authentication/RequiredActionsTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/authentication/RequiredActionsTest.java
index 9c818d1..c45b792 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/authentication/RequiredActionsTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/authentication/RequiredActionsTest.java
@@ -19,7 +19,6 @@ package org.keycloak.testsuite.console.authentication;
import org.jboss.arquillian.graphene.page.Page;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.keycloak.representations.idm.UserRepresentation;
import org.keycloak.testsuite.auth.page.login.Registration;
@@ -51,49 +50,17 @@ public class RequiredActionsTest extends AbstractConsoleTest {
super.setDefaultPageUriParameters();
testRealmRegistrationPage.setAuthRealm("test");
}
-
+
@Before
public void beforeRequiredActionsTest() {
requiredActionsPage.navigateTo();
}
@Test
- public void requiredActionsTest() {
- requiredActionsPage.clickTermsAndConditionEnabled();
- assertFlashMessageSuccess();
-
- requiredActionsPage.clickTermsAndConditionDefaultAction();
- assertFlashMessageSuccess();
-
- requiredActionsPage.clickVerifyEmailEnabled();
- assertFlashMessageSuccess();
-
- requiredActionsPage.clickVerifyEmailDefaultAction();
- assertFlashMessageSuccess();
-
- requiredActionsPage.clickUpdatePasswordEnabled();
- assertFlashMessageSuccess();
-
- requiredActionsPage.clickUpdatePasswordDefaultAction();
- assertFlashMessageSuccess();
-
- requiredActionsPage.clickConfigureTotpEnabled();
- assertFlashMessageSuccess();
-
- requiredActionsPage.clickConfigureTotpDefaultAction();
- assertFlashMessageSuccess();
-
- requiredActionsPage.clickUpdateProfileEnabled();
- assertFlashMessageSuccess();
-
- requiredActionsPage.clickUpdateProfileDefaultAction();
- assertFlashMessageSuccess();
- }
-
- @Test
public void termsAndConditionsDefaultActionTest() {
- requiredActionsPage.clickTermsAndConditionEnabled();
- requiredActionsPage.clickTermsAndConditionDefaultAction();
+ requiredActionsPage.setTermsAndConditionEnabled(true);
+ requiredActionsPage.setTermsAndConditionDefaultAction(true);
+ assertFlashMessageSuccess();
allowTestRealmUserRegistration();
@@ -106,7 +73,8 @@ public class RequiredActionsTest extends AbstractConsoleTest {
@Test
public void configureTotpDefaultActionTest() {
- requiredActionsPage.clickConfigureTotpDefaultAction();
+ requiredActionsPage.setConfigureTotpDefaultAction(true);
+ assertFlashMessageSuccess();
allowTestRealmUserRegistration();
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/realm/SecurityDefensesTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/realm/SecurityDefensesTest.java
index 84a9930..0263513 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/realm/SecurityDefensesTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/realm/SecurityDefensesTest.java
@@ -21,7 +21,7 @@ import org.jboss.arquillian.graphene.page.Page;
import org.junit.Before;
import org.junit.Test;
import org.keycloak.testsuite.auth.page.account.Account;
-import org.keycloak.testsuite.console.page.realm.SecurityDefenses;
+import org.keycloak.testsuite.console.page.realm.BruteForceDetection;
import org.keycloak.testsuite.console.page.users.UserAttributes;
import org.keycloak.testsuite.console.page.users.Users;
import org.openqa.selenium.By;
@@ -41,7 +41,7 @@ import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWith;
public class SecurityDefensesTest extends AbstractRealmTest {
@Page
- private SecurityDefenses.BruteForceDetection bruteForceDetectionPage;
+ private BruteForceDetection bruteForceDetectionPage;
@Page
private Account testRealmAccountPage;
@@ -69,7 +69,7 @@ public class SecurityDefensesTest extends AbstractRealmTest {
bruteForceDetectionPage.form().setProtectionEnabled(true);
bruteForceDetectionPage.form().setMaxLoginFailures("1");
- bruteForceDetectionPage.form().setWaitIncrementSelect(SecurityDefenses.TimeSelectValues.SECONDS);
+ bruteForceDetectionPage.form().setWaitIncrementSelect(BruteForceDetection.TimeSelectValues.SECONDS);
bruteForceDetectionPage.form().setWaitIncrementInput(String.valueOf(secondsToWait));
bruteForceDetectionPage.form().save();
assertFlashMessageSuccess();
@@ -110,7 +110,7 @@ public class SecurityDefensesTest extends AbstractRealmTest {
bruteForceDetectionPage.form().setProtectionEnabled(true);
bruteForceDetectionPage.form().setMaxLoginFailures("100");
bruteForceDetectionPage.form().setQuickLoginCheckInput("1500");
- bruteForceDetectionPage.form().setMinQuickLoginWaitSelect(SecurityDefenses.TimeSelectValues.SECONDS);
+ bruteForceDetectionPage.form().setMinQuickLoginWaitSelect(BruteForceDetection.TimeSelectValues.SECONDS);
bruteForceDetectionPage.form().setMinQuickLoginWaitInput(String.valueOf(secondsToWait));
bruteForceDetectionPage.form().save();
assertFlashMessageSuccess();
@@ -150,7 +150,7 @@ public class SecurityDefensesTest extends AbstractRealmTest {
bruteForceDetectionPage.form().setProtectionEnabled(true);
bruteForceDetectionPage.form().setMaxLoginFailures("1");
- bruteForceDetectionPage.form().setMaxWaitSelect(SecurityDefenses.TimeSelectValues.SECONDS);
+ bruteForceDetectionPage.form().setMaxWaitSelect(BruteForceDetection.TimeSelectValues.SECONDS);
bruteForceDetectionPage.form().setMaxWaitInput(String.valueOf(secondsToWait));
bruteForceDetectionPage.form().save();
@@ -190,7 +190,7 @@ public class SecurityDefensesTest extends AbstractRealmTest {
bruteForceDetectionPage.form().setProtectionEnabled(true);
bruteForceDetectionPage.form().setMaxLoginFailures("2");
- bruteForceDetectionPage.form().setFailureResetTimeSelect(SecurityDefenses.TimeSelectValues.SECONDS);
+ bruteForceDetectionPage.form().setFailureResetTimeSelect(BruteForceDetection.TimeSelectValues.SECONDS);
bruteForceDetectionPage.form().setFailureResetTimeInput(String.valueOf(secondsToWait));
bruteForceDetectionPage.form().save();
assertFlashMessageSuccess();
@@ -223,7 +223,7 @@ public class SecurityDefensesTest extends AbstractRealmTest {
public void userUnlockTest() {
bruteForceDetectionPage.form().setProtectionEnabled(true);
bruteForceDetectionPage.form().setMaxLoginFailures("1");
- bruteForceDetectionPage.form().setWaitIncrementSelect(SecurityDefenses.TimeSelectValues.MINUTES);
+ bruteForceDetectionPage.form().setWaitIncrementSelect(BruteForceDetection.TimeSelectValues.MINUTES);
bruteForceDetectionPage.form().setWaitIncrementInput("10");
bruteForceDetectionPage.form().save();
assertFlashMessageSuccess();
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/users/RequiredUserActionsTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/users/RequiredUserActionsTest.java
index 9151698..d532ae6 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/users/RequiredUserActionsTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/users/RequiredUserActionsTest.java
@@ -1,28 +1,24 @@
package org.keycloak.testsuite.console.users;
-import static org.jboss.arquillian.graphene.Graphene.waitGui;
import org.jboss.arquillian.graphene.page.Page;
import org.junit.Before;
import org.junit.Test;
-import static org.keycloak.representations.idm.CredentialRepresentation.PASSWORD;
-import static org.keycloak.testsuite.auth.page.AuthRealm.TEST;
import org.keycloak.testsuite.auth.page.account.Account;
import org.keycloak.testsuite.auth.page.login.UpdateAccount;
import org.keycloak.testsuite.auth.page.login.UpdatePassword;
import org.keycloak.testsuite.console.page.authentication.RequiredActions;
import org.keycloak.testsuite.console.page.users.UserAttributes;
-
-import static org.keycloak.testsuite.model.RequiredUserAction.TERMS_AND_CONDITIONS;
-import static org.keycloak.testsuite.model.RequiredUserAction.UPDATE_PASSWORD;
-import static org.keycloak.testsuite.model.RequiredUserAction.UPDATE_PROFILE;
-import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWith;
-
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
+import static org.jboss.arquillian.graphene.Graphene.waitGui;
+import static org.keycloak.representations.idm.CredentialRepresentation.PASSWORD;
+import static org.keycloak.testsuite.auth.page.AuthRealm.TEST;
+import static org.keycloak.testsuite.model.RequiredUserAction.*;
+import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWith;
+
/**
- *
* @author tkyjovsk
* @author mhajas
*/
@@ -124,7 +120,7 @@ public class RequiredUserActionsTest extends AbstractUserTest {
@Test
public void termsAndConditions() {
requiredActionsPage.navigateTo();
- requiredActionsPage.clickTermsAndConditionEnabled();
+ requiredActionsPage.setTermsAndConditionEnabled(true);
manage().users();
usersPage.table().viewAllUsers();
@@ -142,6 +138,4 @@ public class RequiredUserActionsTest extends AbstractUserTest {
}
-
-
}