diff --git a/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/java/org/keycloak/testsuite/rest/TestingResourceProvider.java b/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/java/org/keycloak/testsuite/rest/TestingResourceProvider.java index be8c03e68c..336c7dc911 100644 --- a/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/java/org/keycloak/testsuite/rest/TestingResourceProvider.java +++ b/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/java/org/keycloak/testsuite/rest/TestingResourceProvider.java @@ -68,7 +68,6 @@ import org.keycloak.services.ErrorResponse; import org.keycloak.services.managers.AuthenticationManager; import org.keycloak.services.resource.RealmResourceProvider; import org.keycloak.services.scheduled.ClearExpiredUserSessions; -import org.keycloak.services.util.CacheControlUtil; import org.keycloak.services.util.CookieHelper; import org.keycloak.sessions.RootAuthenticationSessionModel; import org.keycloak.storage.UserStorageProvider; @@ -1177,4 +1176,10 @@ public class TestingResourceProvider implements RealmResourceProvider { return Response.noContent().cacheControl(cacheControl).build(); } + @GET + @Path("/blank") + @Produces(MediaType.TEXT_HTML_UTF_8) + public Response getBlankPage() { + return Response.ok("").build(); + } } diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/drone/KeycloakDronePostSetup.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/drone/KeycloakDronePostSetup.java index ef4c008818..fce299df56 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/drone/KeycloakDronePostSetup.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/drone/KeycloakDronePostSetup.java @@ -32,7 +32,10 @@ import org.jboss.arquillian.graphene.proxy.InvocationContext; import org.jboss.arquillian.test.spi.annotation.ClassScoped; import org.jboss.logging.Logger; import org.keycloak.testsuite.util.WaitUtils; +import org.openqa.selenium.Capabilities; import org.openqa.selenium.WebDriver; +import org.openqa.selenium.firefox.FirefoxDriver; +import org.openqa.selenium.firefox.FirefoxOptions; import org.openqa.selenium.htmlunit.HtmlUnitDriver; import org.openqa.selenium.remote.RemoteWebDriver; @@ -84,8 +87,20 @@ public class KeycloakDronePostSetup { driver.manage().timeouts().implicitlyWait(implicitWaitMillis, TimeUnit.MILLISECONDS); driver.manage().timeouts().pageLoadTimeout(pageLoadTimeoutMillis, TimeUnit.MILLISECONDS); driver.manage().window().maximize(); + + configureFirefoxDriver(driver); } + private void configureFirefoxDriver(WebDriver driver) { + if (driver instanceof FirefoxDriver) { + FirefoxDriver firefoxDriver = (FirefoxDriver) driver; + Capabilities capabilities = firefoxDriver.getCapabilities(); + FirefoxOptions options = new FirefoxOptions(capabilities); + // disables extension automatic updates as we don't need it when running the test suite + options.addPreference("extensions.update.enabled", "false"); + firefoxDriver.getCapabilities().merge(options); + } + } public static class HtmlUnitInterceptor implements Interceptor { @@ -133,6 +148,6 @@ public class KeycloakDronePostSetup { public int getPrecedence() { return -1; } - } + } } 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 6d74ea677a..5ace2964c7 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 @@ -283,9 +283,7 @@ public abstract class AbstractKeycloakTest { } protected void deleteAllCookiesForRealm(String realmName) { - // we can't use /auth/realms/{realmName} because some browsers (e.g. Chrome) apparently don't send cookies - // to JSON pages and therefore can't delete realms cookies there; a non existing page will do just fine - navigateToUri(oauth.SERVER_ROOT + "/auth/realms/" + realmName + "/super-random-page"); + navigateToUri(oauth.SERVER_ROOT + "/auth/realms/" + realmName + "/testing/blank"); log.info("deleting cookies in '" + realmName + "' realm"); driver.manage().deleteAllCookies(); }