keycloak-uncached

Details

diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/social/BitbucketLoginPage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/social/BitbucketLoginPage.java
index 4f1392d..a7ac7a3 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/social/BitbucketLoginPage.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/social/BitbucketLoginPage.java
@@ -18,25 +18,40 @@
 package org.keycloak.testsuite.pages.social;
 
 import org.openqa.selenium.Keys;
+import org.openqa.selenium.NoSuchElementException;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.support.FindBy;
 
+import static org.keycloak.testsuite.util.UIUtils.clickLink;
+import static org.keycloak.testsuite.util.WaitUtils.pause;
+
 /**
  * @author Vaclav Muzikar <vmuzikar@redhat.com>
  */
 public class BitbucketLoginPage extends AbstractSocialLoginPage {
-    @FindBy(name = "username")
+    @FindBy(id = "username")
     private WebElement usernameInput;
 
-    @FindBy(name = "password")
+    @FindBy(id = "password")
     private WebElement passwordInput;
 
-    @FindBy(name = "commit")
-    private WebElement loginButton;
+    @FindBy(xpath = "//div[contains(@class,'additional-auths')]/p/a")
+    private WebElement loginWithAtlassianButton;
 
     @Override
     public void login(String user, String password) {
+        try {
+            clickLink(loginWithAtlassianButton);    // BitBucket no longer has it's own login page yet sometimes it's
+                                                    // displayed even though we need to use the Atlassian login page
+        }
+        catch (NoSuchElementException e) {
+            log.info("Already on Atlassian login page");
+        }
+
         usernameInput.sendKeys(user);
+        usernameInput.sendKeys(Keys.RETURN);
+        pause(1000);
+
         passwordInput.sendKeys(password);
         passwordInput.sendKeys(Keys.RETURN);
     }
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/social/PayPalLoginPage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/social/PayPalLoginPage.java
index 4f98213..c935b15 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/social/PayPalLoginPage.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/social/PayPalLoginPage.java
@@ -21,6 +21,8 @@ import org.openqa.selenium.NoSuchElementException;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.support.FindBy;
 
+import static org.keycloak.testsuite.util.UIUtils.clickLink;
+
 /**
  * @author Petter Lysne (petterlysne at hotmail dot com)
  */
@@ -34,6 +36,9 @@ public class PayPalLoginPage extends AbstractSocialLoginPage {
     @FindBy(name = "btnLogin")
     private WebElement loginButton;
 
+    @FindBy(name = "btnNext")
+    private WebElement nextButton;
+
     @FindBy(name = "continueLogin")
     private WebElement continueLoginButton;
 
@@ -42,11 +47,20 @@ public class PayPalLoginPage extends AbstractSocialLoginPage {
         try {
             usernameInput.clear(); // to remove pre-filled email
             usernameInput.sendKeys(user);
+
+            try {
+                clickLink(nextButton);  // sometimes the login process is just a one step,
+                                        // sometimes it's two steps so we need to click the 'Next' button
+            }
+            catch (NoSuchElementException e) {
+                // one step login process, no need to click the 'Next' button
+            }
+
             passwordInput.sendKeys(password);
-            loginButton.click();
+            clickLink(loginButton);
         }
         catch (NoSuchElementException e) {
-            continueLoginButton.click(); // already logged in, just need to confirm it
+            clickLink(continueLoginButton); // already logged in, just need to confirm it
         }
     }
 }