keycloak-aplcache

Merge pull request #2412 from vmuzikar/1.9.x [KEYCLOAK-2697]

3/24/2016 5:19:40 AM

Details

diff --git a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/authentication/PasswordPolicy.java b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/authentication/PasswordPolicy.java
index 81e0f2d..39ce3f0 100644
--- a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/authentication/PasswordPolicy.java
+++ b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/authentication/PasswordPolicy.java
@@ -1,6 +1,7 @@
 package org.keycloak.testsuite.console.page.authentication;
 
 import org.jboss.arquillian.graphene.findby.ByJQuery;
+import org.keycloak.testsuite.page.Form;
 import org.openqa.selenium.By;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.support.FindBy;
@@ -14,6 +15,7 @@ import static org.keycloak.testsuite.util.WaitUtils.waitUntilElement;
  * @author Petr Mensik
  * @author tkyjovsk
  * @author mhajas
+ * @author Vaclav Muzikar <vmuzikar@redhat.com>
  */
 public class PasswordPolicy extends Authentication {
 
@@ -28,10 +30,10 @@ public class PasswordPolicy extends Authentication {
     @FindBy(tagName = "select")
     private WebElement addPolicySelectElement;
 
-    @FindBy(css = "tr.ng-scope")
-    private List<WebElement> allRows;
+    @FindBy(tagName = "table")
+    private WebElement table;
 
-    public void addPolicy(PasswordPolicy.Type policy, String value) {
+    public void addPolicy(Type policy, String value) {
         waitUntilElement(addPolicySelectElement).is().present();
         addPolicySelect.selectByVisibleText(policy.getName());
         setPolicyValue(policy, value);
@@ -39,45 +41,36 @@ public class PasswordPolicy extends Authentication {
     }
 
 
-    public void addPolicy(PasswordPolicy.Type policy, int value) {
+    public void addPolicy(Type policy, int value) {
         addPolicy(policy, String.valueOf(value));
     }
 
-    public void addPolicy(PasswordPolicy.Type policy) {
+    public void addPolicy(Type policy) {
         addPolicySelect.selectByVisibleText(policy.getName());
         primaryButton.click();
     }
 
-    public void removePolicy(PasswordPolicy.Type policy) {
-        int policyInputLocation = findPolicy(policy);
-        allRows.get(policyInputLocation).findElements(By.tagName("button")).get(0).click();
+    public void removePolicy(Type policy) {
+        getPolicyRow(policy).findElement(By.cssSelector("td.kc-action-cell")).click();
         primaryButton.click();
     }
 
-    public void editPolicy(PasswordPolicy.Type policy, int value) {
+    public void editPolicy(Type policy, int value) {
         editPolicy(policy, String.valueOf(value));
     }
 
-    public void editPolicy(PasswordPolicy.Type policy, String value) {
+    public void editPolicy(Type policy, String value) {
         setPolicyValue(policy, value);
         primaryButton.click();
     }
 
-    private void setPolicyValue(PasswordPolicy.Type policy, String value) {
-        int policyInputLocation = findPolicy(policy);
-        WebElement input = allRows.get(policyInputLocation).findElement(By.tagName("input"));
-        input.clear();
-        input.sendKeys(value);
+    private void setPolicyValue(Type policy, String value) {
+        WebElement input = getPolicyRow(policy).findElement(By.tagName("input"));
+        Form.setInputValue(input, value);
     }
 
-    private int findPolicy(PasswordPolicy.Type policy) {
-        for (int i = 0; i < allRows.size(); i++) {
-            String policyName = allRows.get(i).findElement(ByJQuery.selector("td:eq(0)")).getText();
-            if (policyName.equals(policy.getName())) {
-                return i;
-            }
-        }
-        return 0;
+    private WebElement getPolicyRow(Type policy) {
+        return table.findElement(By.xpath("//tr[td[text()='" + policy.getName() + "']]"));
     }
 
     public enum Type {
diff --git a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/authentication/RequiredActions.java b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/authentication/RequiredActions.java
index b6f182a..7e4c29c 100644
--- a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/authentication/RequiredActions.java
+++ b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/authentication/RequiredActions.java
@@ -1,5 +1,6 @@
 package org.keycloak.testsuite.console.page.authentication;
 
+import org.keycloak.testsuite.util.WaitUtils;
 import org.openqa.selenium.By;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.support.FindBy;
@@ -28,6 +29,8 @@ public class RequiredActions extends Authentication {
     }
 
     private void setRequiredActionValue(String id, boolean value) {
+        WaitUtils.waitUntilElement(requiredActionTable).is().present();
+
         WebElement checkbox = requiredActionTable.findElement(By.id(id));
 
         if (checkbox.isSelected() != value) {
diff --git a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/federation/LdapUserProviderForm.java b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/federation/LdapUserProviderForm.java
index 2d927a9..88e207c 100644
--- a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/federation/LdapUserProviderForm.java
+++ b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/federation/LdapUserProviderForm.java
@@ -191,6 +191,10 @@ public class LdapUserProviderForm extends Form {
         vendorSelect.selectByVisibleText(vendor);
     }
 
+    public void selectVendor(int index) {
+        vendorSelect.selectByIndex(index);
+    }
+
     public List<String> getVendors() {
         waitUntilElement(By.id("vendor")).is().present();
 
diff --git a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/realm/RealmSettings.java b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/realm/RealmSettings.java
index 2080962..b6e51eb 100644
--- a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/realm/RealmSettings.java
+++ b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/realm/RealmSettings.java
@@ -1,6 +1,8 @@
 package org.keycloak.testsuite.console.page.realm;
 
 import org.keycloak.testsuite.console.page.AdminConsoleRealm;
+import org.keycloak.testsuite.util.WaitUtils;
+import org.openqa.selenium.By;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.support.FindBy;
 
@@ -11,11 +13,14 @@ import static org.keycloak.testsuite.util.WaitUtils.*;
  * @author tkyjovsk
  */
 public class RealmSettings extends AdminConsoleRealm {
+    private static final String navTabsClassName = "nav-tabs";
 
-    @FindBy(className = "nav-tabs")
+
+    @FindBy(className = navTabsClassName)
     private RealmTabs realmTabs;
 
     public RealmTabs tabs() {
+        waitUntilElement(By.className(navTabsClassName)).is().present();
         return realmTabs;
     }
 
diff --git a/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/authentication/OTPPolicyTest.java b/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/authentication/OTPPolicyTest.java
index 2bd3a6b..73173a7 100644
--- a/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/authentication/OTPPolicyTest.java
+++ b/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/authentication/OTPPolicyTest.java
@@ -32,6 +32,7 @@ import org.keycloak.testsuite.console.page.authentication.otppolicy.OTPPolicy;
 import org.keycloak.testsuite.console.page.authentication.otppolicy.OTPPolicyForm.Digits;
 import org.keycloak.testsuite.console.page.authentication.otppolicy.OTPPolicyForm.OTPHashAlg;
 import org.keycloak.testsuite.console.page.authentication.otppolicy.OTPPolicyForm.OTPType;
+import org.keycloak.testsuite.util.WaitUtils;
 
 /**
  *
@@ -45,6 +46,7 @@ public class OTPPolicyTest extends AbstractConsoleTest {
     @Before
     public void beforeOTPPolicyTest() {
         otpPolicyPage.navigateTo();
+        WaitUtils.pause(1000); // wait for the form to fully render
     }
     
     @Test
diff --git a/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/federation/LdapUserFederationTest.java b/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/federation/LdapUserFederationTest.java
index d0d2a27..fa57cdf 100644
--- a/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/federation/LdapUserFederationTest.java
+++ b/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/federation/LdapUserFederationTest.java
@@ -133,7 +133,7 @@ public class LdapUserFederationTest extends AbstractConsoleTest {
     @Test
     public void testConnection() throws Exception {
         createLdapUserProvider.navigateTo();
-        createLdapUserProvider.form().selectVendor("Other");
+        createLdapUserProvider.form().selectVendor(1);
         createLdapUserProvider.form().setConsoleDisplayNameInput("ldap");
         createLdapUserProvider.form().selectEditMode(WRITABLE);
         createLdapUserProvider.form().setLdapConnectionUrlInput("ldap://localhost:10389");