keycloak-uncached
Changes
testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/resources/javascript/keycloak.js 1416(+0 -1416)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/auth/page/login/OAuthGrant.java 5(+2 -3)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/AbstractKeycloakTest.java 10(+0 -10)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/AbstractPhotozExampleAdapterTest.java 12(+12 -0)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/cors/AbstractCorsExampleAdapterTest.java 12(+12 -0)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/javascript/AbstractJavascriptTest.java 18(+15 -3)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/javascript/JavascriptAdapterTest.java 12(+6 -6)
Details
diff --git a/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/pom.xml b/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/pom.xml
index 62ffa3b..a7eb2ac 100644
--- a/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/pom.xml
+++ b/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/pom.xml
@@ -107,7 +107,7 @@
<outputDirectory>${js-adapter.file.path}</outputDirectory>
</artifactItem>
</artifactItems>
- <includes>**/keycloak.js</includes>
+ <includes>keycloak.js</includes>
</configuration>
</execution>
</executions>
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/auth/page/login/OAuthGrant.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/auth/page/login/OAuthGrant.java
index b19daeb..b1f63d1 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/auth/page/login/OAuthGrant.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/auth/page/login/OAuthGrant.java
@@ -16,12 +16,11 @@
*/
package org.keycloak.testsuite.auth.page.login;
-import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
-import static org.keycloak.testsuite.util.WaitUtils.waitUntilElement;
+import static org.keycloak.testsuite.util.WaitUtils.waitForPageToLoad;
/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
@@ -45,7 +44,7 @@ public class OAuthGrant extends LoginActions {
public boolean isCurrent(WebDriver driver1) {
if (driver1 == null) driver1 = driver;
- waitUntilElement(By.tagName("body")).is().present();
+ waitForPageToLoad();
return driver1.getPageSource().contains("Do you grant these access privileges");
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/AbstractKeycloakTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/AbstractKeycloakTest.java
index 482ab32..b0203a3 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/AbstractKeycloakTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/AbstractKeycloakTest.java
@@ -53,7 +53,6 @@ import org.keycloak.testsuite.auth.page.login.UpdatePassword;
import org.keycloak.testsuite.client.KeycloakTestingClient;
import org.keycloak.testsuite.util.AdminClientUtil;
import org.keycloak.testsuite.util.DroneUtils;
-import org.keycloak.testsuite.util.JavascriptBrowser;
import org.keycloak.testsuite.util.OAuthClient;
import org.keycloak.testsuite.util.TestCleanup;
import org.keycloak.testsuite.util.TestEventsLogger;
@@ -116,15 +115,6 @@ public abstract class AbstractKeycloakTest {
@Drone
protected WebDriver driver;
- // Javascript browser needed KEYCLOAK-4703
- @Drone
- @JavascriptBrowser
- protected WebDriver jsDriver;
-
- @Page
- @JavascriptBrowser
- protected OIDCLogin jsDriverTestRealmLoginPage;
-
@Page
protected AuthServerContextRoot authServerContextRootPage;
@Page
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/AbstractPhotozExampleAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/AbstractPhotozExampleAdapterTest.java
index 3a2e759..9530de8 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/AbstractPhotozExampleAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/AbstractPhotozExampleAdapterTest.java
@@ -21,6 +21,7 @@ import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.LaxRedirectStrategy;
import org.jboss.arquillian.container.test.api.Deployer;
+import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.graphene.page.Page;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.junit.After;
@@ -44,10 +45,12 @@ import org.keycloak.representations.idm.authorization.ResourceServerRepresentati
import org.keycloak.testsuite.ProfileAssume;
import org.keycloak.testsuite.adapter.AbstractExampleAdapterTest;
import org.keycloak.testsuite.adapter.page.PhotozClientAuthzTestApp;
+import org.keycloak.testsuite.auth.page.login.OIDCLogin;
import org.keycloak.testsuite.util.DroneUtils;
import org.keycloak.testsuite.util.JavascriptBrowser;
import org.keycloak.util.JsonSerialization;
import org.openqa.selenium.NoSuchElementException;
+import org.openqa.selenium.WebDriver;
import java.io.File;
import java.io.FileInputStream;
@@ -83,6 +86,15 @@ public abstract class AbstractPhotozExampleAdapterTest extends AbstractExampleAd
@ArquillianResource
private Deployer deployer;
+ // Javascript browser needed KEYCLOAK-4703
+ @Drone
+ @JavascriptBrowser
+ protected WebDriver jsDriver;
+
+ @Page
+ @JavascriptBrowser
+ protected OIDCLogin jsDriverTestRealmLoginPage;
+
@Page
@JavascriptBrowser
private PhotozClientAuthzTestApp clientPage;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/cors/AbstractCorsExampleAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/cors/AbstractCorsExampleAdapterTest.java
index 255accf..6392594 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/cors/AbstractCorsExampleAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/cors/AbstractCorsExampleAdapterTest.java
@@ -19,6 +19,7 @@ package org.keycloak.testsuite.adapter.example.cors;
import org.jboss.arquillian.container.test.api.Deployer;
import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.graphene.page.Page;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.spec.WebArchive;
@@ -32,9 +33,11 @@ import org.keycloak.testsuite.adapter.AbstractExampleAdapterTest;
import org.keycloak.testsuite.adapter.page.AngularCorsProductTestApp;
import org.keycloak.testsuite.adapter.page.CorsDatabaseServiceTestApp;
import org.keycloak.testsuite.auth.page.account.Account;
+import org.keycloak.testsuite.auth.page.login.OIDCLogin;
import org.keycloak.testsuite.util.JavascriptBrowser;
import org.keycloak.testsuite.util.WaitUtils;
import org.openqa.selenium.By;
+import org.openqa.selenium.WebDriver;
import java.io.File;
import java.io.IOException;
@@ -60,6 +63,15 @@ public abstract class AbstractCorsExampleAdapterTest extends AbstractExampleAdap
@ArquillianResource
private Deployer deployer;
+ // Javascript browser needed KEYCLOAK-4703
+ @Drone
+ @JavascriptBrowser
+ protected WebDriver jsDriver;
+
+ @Page
+ @JavascriptBrowser
+ protected OIDCLogin jsDriverTestRealmLoginPage;
+
@Page
@JavascriptBrowser
private AngularCorsProductTestApp jsDriverAngularCorsProductPage;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/javascript/AbstractJavascriptTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/javascript/AbstractJavascriptTest.java
index 2ec7bea..789bebf 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/javascript/AbstractJavascriptTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/javascript/AbstractJavascriptTest.java
@@ -1,5 +1,7 @@
package org.keycloak.testsuite.adapter.javascript;
+import org.jboss.arquillian.drone.api.annotation.Drone;
+import org.jboss.arquillian.graphene.page.Page;
import org.junit.Before;
import org.keycloak.admin.client.resource.ClientResource;
import org.keycloak.representations.idm.ClientRepresentation;
@@ -9,14 +11,17 @@ import org.keycloak.representations.idm.UserRepresentation;
import org.keycloak.testsuite.AbstractAuthTest;
import org.keycloak.testsuite.Assert;
import org.keycloak.testsuite.admin.ApiUtil;
+import org.keycloak.testsuite.auth.page.login.OIDCLogin;
import org.keycloak.testsuite.util.ClientBuilder;
import org.keycloak.testsuite.util.JavascriptBrowser;
import org.keycloak.testsuite.util.RealmBuilder;
import org.keycloak.testsuite.util.RolesBuilder;
import org.keycloak.testsuite.util.UserBuilder;
import org.openqa.selenium.By;
+import org.openqa.selenium.Cookie;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebDriver.Options;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
@@ -25,10 +30,8 @@ import java.util.List;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.collection.IsMapContaining.hasEntry;
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWith;
-import static org.keycloak.testsuite.util.WaitUtils.waitUntilElement;
import static org.keycloak.testsuite.util.WaitUtils.waitForPageToLoad;
-import org.openqa.selenium.Cookie;
-import org.openqa.selenium.WebDriver.Options;
+import static org.keycloak.testsuite.util.WaitUtils.waitUntilElement;
/**
* @author mhajas
@@ -51,6 +54,15 @@ public abstract class AbstractJavascriptTest extends AbstractAuthTest {
protected JavascriptExecutor jsExecutor;
+ // Javascript browser needed KEYCLOAK-4703
+ @Drone
+ @JavascriptBrowser
+ protected WebDriver jsDriver;
+
+ @Page
+ @JavascriptBrowser
+ protected OIDCLogin jsDriverTestRealmLoginPage;
+
@FindBy(id = "output")
@JavascriptBrowser
protected WebElement outputArea;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/javascript/JavascriptAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/javascript/JavascriptAdapterTest.java
index e434394..0c23bc2 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/javascript/JavascriptAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/javascript/JavascriptAdapterTest.java
@@ -16,6 +16,7 @@ import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.representations.idm.UserRepresentation;
import org.keycloak.testsuite.Assert;
import org.keycloak.testsuite.AssertEvents;
+import org.keycloak.testsuite.ProfileAssume;
import org.keycloak.testsuite.admin.ApiUtil;
import org.keycloak.testsuite.auth.page.account.Applications;
import org.keycloak.testsuite.auth.page.login.OAuthGrant;
@@ -23,7 +24,6 @@ import org.keycloak.testsuite.util.JavascriptBrowser;
import org.keycloak.testsuite.util.OAuthClient;
import org.keycloak.testsuite.util.RealmBuilder;
import org.keycloak.testsuite.util.UserBuilder;
-import org.openqa.selenium.By;
import org.openqa.selenium.TimeoutException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverException;
@@ -31,10 +31,10 @@ import org.openqa.selenium.WebElement;
import java.util.List;
import java.util.Map;
-
-import static java.lang.Math.toIntExact;
import java.util.stream.Collectors;
import java.util.stream.Stream;
+
+import static java.lang.Math.toIntExact;
import static org.hamcrest.CoreMatchers.both;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.Matchers.greaterThan;
@@ -44,9 +44,9 @@ import static org.hamcrest.collection.IsMapContaining.hasEntry;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
-import org.keycloak.testsuite.ProfileAssume;
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlDoesntStartWith;
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWith;
+import static org.keycloak.testsuite.util.WaitUtils.waitForPageToLoad;
import static org.keycloak.testsuite.util.WaitUtils.waitUntilElement;
/**
@@ -98,7 +98,7 @@ public class JavascriptAdapterTest extends AbstractJavascriptTest {
}
private void assertOnTestAppUrl(WebDriver jsDriver, Object output, WebElement events) {
- waitUntilElement(By.tagName("body")).is().present();
+ waitForPageToLoad();
assertCurrentUrlStartsWith(testAppUrl, jsDriver);
}
@@ -420,7 +420,7 @@ public class JavascriptAdapterTest extends AbstractJavascriptTest {
.add("realm", SPACE_REALM_NAME)
.add("clientId", CLIENT_ID);
- testAppUrl = authServerContextRootPage + JAVASCRIPT_SPACE_URL + "/index.html";
+ testAppUrl = authServerContextRootPage + JAVASCRIPT_ENCODED_SPACE_URL + "/index.html";
jsDriver.navigate().to(testAppUrl);
jsDriverTestRealmLoginPage.setAuthRealm(SPACE_REALM_NAME);
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/javascript/JavascriptTestExecutor.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/javascript/JavascriptTestExecutor.java
index d856f36..9e6d953 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/javascript/JavascriptTestExecutor.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/javascript/JavascriptTestExecutor.java
@@ -97,18 +97,18 @@ public class JavascriptTestExecutor {
public JavascriptTestExecutor configure(JSObjectBuilder argumentsBuilder) {
if (argumentsBuilder == null) {
- jsExecutor.executeScript("keycloak = Keycloak()");
+ jsExecutor.executeScript("window.keycloak = Keycloak();");
} else {
String configArguments = argumentsBuilder.build();
- jsExecutor.executeScript("keycloak = Keycloak(" + configArguments + ")");
+ jsExecutor.executeScript("window.keycloak = Keycloak(" + configArguments + ");");
}
- jsExecutor.executeScript("keycloak.onAuthSuccess = function () {event('Auth Success')}"); // event function is declared in index.html
- jsExecutor.executeScript("keycloak.onAuthError = function () {event('Auth Error')}");
- jsExecutor.executeScript("keycloak.onAuthRefreshSuccess = function () {event('Auth Refresh Success')}");
- jsExecutor.executeScript("keycloak.onAuthRefreshError = function () {event('Auth Refresh Error')}");
- jsExecutor.executeScript("keycloak.onAuthLogout = function () {event('Auth Logout')}");
- jsExecutor.executeScript("keycloak.onTokenExpired = function () {event('Access token expired.')}");
+ jsExecutor.executeScript("window.keycloak.onAuthSuccess = function () {event('Auth Success')};"); // event function is declared in index.html
+ jsExecutor.executeScript("window.keycloak.onAuthError = function () {event('Auth Error')}");
+ jsExecutor.executeScript("window.keycloak.onAuthRefreshSuccess = function () {event('Auth Refresh Success')}");
+ jsExecutor.executeScript("window.keycloak.onAuthRefreshError = function () {event('Auth Refresh Error')}");
+ jsExecutor.executeScript("window.keycloak.onAuthLogout = function () {event('Auth Logout')}");
+ jsExecutor.executeScript("window.keycloak.onTokenExpired = function () {event('Access token expired.')}");
configured = true;
@@ -128,7 +128,7 @@ public class JavascriptTestExecutor {
Object output = jsExecutor.executeAsyncScript(
"var callback = arguments[arguments.length - 1];" +
- " keycloak.init(" + arguments + ").success(function (authenticated) {" +
+ " window.keycloak.init(" + arguments + ").success(function (authenticated) {" +
" callback(\"Init Success (\" + (authenticated ? \"Authenticated\" : \"Not Authenticated\") + \")\");" +
" }).error(function () {" +
" callback(\"Init Error\");" +
@@ -157,11 +157,11 @@ public class JavascriptTestExecutor {
public JavascriptTestExecutor refreshToken(int value, JavascriptStateValidator validator) {
Object output = jsExecutor.executeAsyncScript(
"var callback = arguments[arguments.length - 1];" +
- " keycloak.updateToken(" + Integer.toString(value) + ").success(function (refreshed) {" +
+ " window.keycloak.updateToken(" + Integer.toString(value) + ").success(function (refreshed) {" +
" if (refreshed) {" +
- " callback(keycloak.tokenParsed);" +
+ " callback(window.keycloak.tokenParsed);" +
" } else {" +
- " callback('Token not refreshed, valid for ' + Math.round(keycloak.tokenParsed.exp + keycloak.timeSkew - new Date().getTime() / 1000) + ' seconds');" +
+ " callback('Token not refreshed, valid for ' + Math.round(window.keycloak.tokenParsed.exp + window.keycloak.timeSkew - new Date().getTime() / 1000) + ' seconds');" +
" }" +
" }).error(function () {" +
" callback('Failed to refresh token');" +
@@ -182,7 +182,7 @@ public class JavascriptTestExecutor {
Object output = jsExecutor.executeAsyncScript(
"var callback = arguments[arguments.length - 1];" +
- " keycloak.loadUserProfile().success(function (profile) {" +
+ " window.keycloak.loadUserProfile().success(function (profile) {" +
" callback(profile);" +
" }).error(function () {" +
" callback('Failed to load profile');" +
@@ -202,19 +202,19 @@ public class JavascriptTestExecutor {
public JavascriptTestExecutor refresh() {
jsDriver.navigate().refresh();
- configured = false; // Refreshing webpage => Loosing keycloak variable
+ configured = false; // Refreshing webpage => Loosing window.keycloak variable
return this;
}
public JavascriptTestExecutor addTimeSkew(int addition) {
- jsExecutor.executeScript("keycloak.timeSkew += " + Integer.toString(addition));
+ jsExecutor.executeScript("window.keycloak.timeSkew += " + Integer.toString(addition));
return this;
}
public JavascriptTestExecutor checkTimeSkew(JavascriptStateValidator validator) {
- Object timeSkew = jsExecutor.executeScript("return keycloak.timeSkew");
+ Object timeSkew = jsExecutor.executeScript("return window.keycloak.timeSkew");
validator.validate(jsDriver, timeSkew, events);
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractDemoServletsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractDemoServletsAdapterTest.java
index d3ceeb8..01e9c3b 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractDemoServletsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractDemoServletsAdapterTest.java
@@ -20,6 +20,7 @@ import org.apache.commons.io.FileUtils;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.conn.params.ConnManagerParams;
import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.graphene.page.Page;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Assert;
@@ -62,14 +63,17 @@ import org.keycloak.testsuite.adapter.page.TokenMinTTLPage;
import org.keycloak.testsuite.admin.ApiUtil;
import org.keycloak.testsuite.auth.page.account.Applications;
import org.keycloak.testsuite.auth.page.login.OAuthGrant;
+import org.keycloak.testsuite.auth.page.login.OIDCLogin;
import org.keycloak.testsuite.console.page.events.Config;
import org.keycloak.testsuite.console.page.events.LoginEvents;
+import org.keycloak.testsuite.util.JavascriptBrowser;
import org.keycloak.testsuite.util.Matchers;
import org.keycloak.testsuite.util.URLUtils;
import org.keycloak.testsuite.util.WaitUtils;
import org.keycloak.util.BasicAuthHelper;
import org.openqa.selenium.By;
import org.openqa.selenium.Cookie;
+import org.openqa.selenium.WebDriver;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
@@ -117,6 +121,15 @@ import static org.keycloak.testsuite.util.WaitUtils.waitForPageToLoad;
*/
public abstract class AbstractDemoServletsAdapterTest extends AbstractServletsAdapterTest {
+ // Javascript browser needed KEYCLOAK-4703
+ @Drone
+ @JavascriptBrowser
+ protected WebDriver jsDriver;
+
+ @Page
+ @JavascriptBrowser
+ protected OIDCLogin jsDriverTestRealmLoginPage;
+
@Page
private CustomerPortal customerPortal;
@Page