keycloak-uncached

Merge pull request #2860 from ssilvert/1.9.x-migrate-i18n KEYCLOAK-2913

5/25/2016 2:23:08 AM

Details

diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/AbstractAccountPage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/AbstractAccountPage.java
index 042eec3..976f211 100755
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/AbstractAccountPage.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/AbstractAccountPage.java
@@ -17,7 +17,9 @@
 
 package org.keycloak.testsuite.pages;
 
+import org.jboss.arquillian.drone.api.annotation.Drone;
 import org.openqa.selenium.By;
+import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.support.FindBy;
 
@@ -44,6 +46,8 @@ public abstract class AbstractAccountPage extends AbstractPage {
     }
 
     public void openLanguage(String language){
-        localeDropdown.findElement(By.linkText(language)).click();
+        WebElement langLink = localeDropdown.findElement(By.xpath("//a[text()='" +language +"']"));
+        String url = langLink.getAttribute("href");
+        driver.navigate().to(url);
     }
 }
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPage.java
index fcbdb2c..78913d6 100755
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPage.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPage.java
@@ -30,7 +30,7 @@ public class LoginPage extends AbstractPage {
 
     @ArquillianResource
     protected OAuthClient oauth;
-    
+
     @FindBy(id = "username")
     private WebElement usernameInput;
 
@@ -184,7 +184,9 @@ public class LoginPage extends AbstractPage {
     }
 
     public void openLanguage(String language){
-        localeDropdown.findElement(By.linkText(language)).click();
+        WebElement langLink = localeDropdown.findElement(By.xpath("//a[text()='" +language +"']"));
+        String url = langLink.getAttribute("href");
+        driver.navigate().to(url);
     }
 
 }
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/i18n/AbstractI18NTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/i18n/AbstractI18NTest.java
new file mode 100644
index 0000000..d29d3ac
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/i18n/AbstractI18NTest.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2016 Red Hat Inc. and/or its affiliates and other contributors
+ * as indicated by the @author tags. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package org.keycloak.testsuite.i18n;
+
+import org.junit.After;
+import org.keycloak.representations.idm.RealmRepresentation;
+import org.keycloak.testsuite.TestRealmKeycloakTest;
+import org.keycloak.testsuite.util.RealmBuilder;
+import org.keycloak.testsuite.util.UserBuilder;
+
+/**
+ * @author Stan Silvert ssilvert@redhat.com (C) 2016 Red Hat Inc.
+ */
+public abstract class AbstractI18NTest extends TestRealmKeycloakTest {
+
+    @Override
+    public void configureTestRealm(RealmRepresentation testRealm) {
+        UserBuilder user = UserBuilder.create()
+                .username("login-test")
+                .enabled(true)
+                .email("login@test.com")
+                .role("account", "manage-account")
+                .password("password");
+        RealmBuilder.edit(testRealm).user(user);
+    }
+
+    /**
+     * Remove cookies at the end so that the next test will start out
+     * using the default locale.
+     */
+    @After
+    public void deleteCookies() {
+        driver.manage().deleteAllCookies();
+    }
+}