keycloak-uncached
Changes
testsuite/integration-arquillian/servers/app-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/container/UndertowAppServerProvider.java 85(+85 -0)
testsuite/integration-arquillian/servers/app-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/UndertowAppServer.java 170(+170 -0)
testsuite/integration-arquillian/servers/app-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/UndertowAppServerArquillianExtension.java 42(+8 -34)
testsuite/integration-arquillian/servers/app-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/UndertowAppServerConfiguration.java 48(+48 -0)
testsuite/integration-arquillian/servers/app-server/undertow/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension 1(+1 -0)
testsuite/integration-arquillian/servers/app-server/undertow/src/main/resources/META-INF/services/org.keycloak.testsuite.arquillian.container.AppServerContainerSPI 1(+1 -0)
testsuite/integration-arquillian/servers/auth-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/KeycloakOnUndertow.java 5(+4 -1)
testsuite/integration-arquillian/servers/util/src/main/java/org/keycloak/testsuite/utils/undertow/SimpleWebXmlParser.java 2(+1 -1)
testsuite/integration-arquillian/servers/util/src/main/java/org/keycloak/testsuite/utils/undertow/UndertowDeployerHelper.java 9(+5 -4)
testsuite/integration-arquillian/servers/util/src/main/java/org/keycloak/testsuite/utils/undertow/UndertowWarClassLoader.java 2(+1 -1)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/adapter/page/MultiTenant.java 4(+2 -2)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AppServerTestEnricher.java 36(+31 -5)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AuthServerTestEnricher.java 3(+2 -1)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/ContainerInfo.java 9(+0 -9)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentTargetModifier.java 2(+1 -1)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java 20(+20 -0)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractBrokerLinkAndTokenExchangeTest.java 27(+21 -6)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractDemoFilterServletAdapterTest.java 6(+2 -4)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractDemoServletsAdapterTest.java 2(+1 -1)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractSessionServletAdapterTest.java 10(+10 -0)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/MultiTenancyTest.java 29(+17 -12)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowBrokerLinkAndTokenExchangeTest.java 20(+5 -15)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowClientInitiatedAccountLinkTest.java 14(+5 -9)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowDemoFilterServletAdapterTest.java 4(+2 -2)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowDemoServletsAdapterTest.java 12(+3 -9)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowOfflineServletsAdapterTest.java 4(+2 -2)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowOIDCPublicKeyRotationAdapterTest.java 4(+2 -2)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowRelaviteUriAdapterTest.java 2(+2 -0)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowSessionFilterServletAdapterTest.java 4(+2 -2)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowSessionServletAdapterTest.java 4(+2 -2)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UserStorageConsentTest.java 49(+28 -21)
travis-run-tests.sh 2(+1 -1)
Details
diff --git a/testsuite/integration-arquillian/pom.xml b/testsuite/integration-arquillian/pom.xml
index 1c7a710..f26cb46 100644
--- a/testsuite/integration-arquillian/pom.xml
+++ b/testsuite/integration-arquillian/pom.xml
@@ -39,6 +39,7 @@
<containers.home>${project.build.directory}/containers</containers.home>
<auth.server.java.home>${java.home}</auth.server.java.home>
<app.server.java.home>${java.home}</app.server.java.home>
+ <app.server>undertow</app.server>
<!--component versions-->
<!--to update arquillian-core to 1.3.0.Final or higher see https://issues.jboss.org/browse/ARQ-2181 -->
diff --git a/testsuite/integration-arquillian/servers/app-server/pom.xml b/testsuite/integration-arquillian/servers/app-server/pom.xml
index b97e0bf..508f40d 100644
--- a/testsuite/integration-arquillian/servers/app-server/pom.xml
+++ b/testsuite/integration-arquillian/servers/app-server/pom.xml
@@ -40,6 +40,7 @@
<module>jboss</module>
<module>karaf</module>
<module>tomcat</module>
+ <module>undertow</module>
</modules>
</project>
diff --git a/testsuite/integration-arquillian/servers/app-server/undertow/pom.xml b/testsuite/integration-arquillian/servers/app-server/undertow/pom.xml
new file mode 100644
index 0000000..0432e2b
--- /dev/null
+++ b/testsuite/integration-arquillian/servers/app-server/undertow/pom.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<!--
+~ Copyright 2018 Red Hat, Inc. and/or its affiliates
+~ and other contributors as indicated by the @author tags.
+~
+<?xml version="1.0"?>
+~ 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.
+-->
+
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <parent>
+ <groupId>org.keycloak.testsuite</groupId>
+ <artifactId>integration-arquillian-servers-app-server</artifactId>
+ <version>4.0.0.Final-SNAPSHOT</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>integration-arquillian-servers-app-server-undertow</artifactId>
+ <packaging>jar</packaging>
+ <name>App Server - Undertow</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-undertow-adapter</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak.testsuite</groupId>
+ <artifactId>integration-arquillian-servers-app-server-spi</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak.testsuite</groupId>
+ <artifactId>integration-arquillian-servers-util</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-undertow</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/testsuite/integration-arquillian/servers/app-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/container/UndertowAppServerProvider.java b/testsuite/integration-arquillian/servers/app-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/container/UndertowAppServerProvider.java
new file mode 100644
index 0000000..cd60f89
--- /dev/null
+++ b/testsuite/integration-arquillian/servers/app-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/container/UndertowAppServerProvider.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2018 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * 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.arquillian.undertow.container;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.jboss.shrinkwrap.descriptor.spi.node.Node;
+import org.keycloak.testsuite.arquillian.container.AppServerContainerSPI;
+import org.keycloak.testsuite.arquillian.undertow.UndertowAppServer;
+
+/**
+ * @author <a href="mailto:vramik@redhat.com">Vlasta Ramik</a>
+ */
+public class UndertowAppServerProvider implements AppServerContainerSPI {
+
+ private Node configuration;
+ private static final String containerName = "undertow";
+
+ @Override
+ public String getName() {
+ return containerName;
+ }
+
+ @Override
+ public List<Node> getContainers() {
+ List<Node> containers = new ArrayList<>();
+
+ containers.add(standaloneContainer());
+
+ //not supported yet
+// containers.add(haNodeContainer(1));
+// containers.add(haNodeContainer(2));
+
+ return containers;
+ }
+
+ private void createChild(String name, String text) {
+ configuration.createChild("property").attribute("name", name).text(text);
+ }
+
+ private Node standaloneContainer() {
+ Node container = new Node("container");
+ container.attribute("mode", "manual");
+ container.attribute("qualifier", AppServerContainerSPI.APP_SERVER + "-" + containerName);
+
+ configuration = container.createChild("configuration");
+ createChild("enabled", "true");
+ createChild("bindAddress", "0.0.0.0");
+ createChild("bindHttpPort", "8280");
+ createChild("adapterImplClass", UndertowAppServer.class.getName());
+
+ return container;
+ }
+
+ private Node haNodeContainer(int number) {
+ Node container = new Node("container");
+ container.attribute("mode", "manual");
+ container.attribute("qualifier", AppServerContainerSPI.APP_SERVER + "-" + containerName + "-ha-node-" + number);
+
+ configuration = container.createChild("configuration");
+ createChild("enabled", "true");
+ createChild("bindAddress", "localhost");
+ createChild("bindHttpPort", "8280");
+ createChild("bindHttpPortOffset", Integer.toString(number));
+ createChild("adapterImplClass", UndertowAppServer.class.getName());
+
+ return container;
+ }
+
+}
diff --git a/testsuite/integration-arquillian/servers/app-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/UndertowAppServer.java b/testsuite/integration-arquillian/servers/app-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/UndertowAppServer.java
new file mode 100644
index 0000000..a2297c3
--- /dev/null
+++ b/testsuite/integration-arquillian/servers/app-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/UndertowAppServer.java
@@ -0,0 +1,170 @@
+/*
+ * Copyright 2018 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * 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.arquillian.undertow;
+
+import io.undertow.Undertow;
+import io.undertow.server.handlers.PathHandler;
+import io.undertow.servlet.api.DeploymentInfo;
+import io.undertow.servlet.api.DeploymentManager;
+import io.undertow.servlet.api.ServletContainer;
+import io.undertow.servlet.api.ServletInfo;
+import java.lang.reflect.Field;
+import java.util.Collection;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import javax.servlet.ServletException;
+import org.arquillian.undertow.UndertowContainerConfiguration;
+import org.jboss.arquillian.container.spi.client.container.DeployableContainer;
+import org.jboss.arquillian.container.spi.client.container.DeploymentException;
+import org.jboss.arquillian.container.spi.client.container.LifecycleException;
+import org.jboss.arquillian.container.spi.client.protocol.ProtocolDescription;
+import org.jboss.arquillian.container.spi.client.protocol.metadata.HTTPContext;
+import org.jboss.arquillian.container.spi.client.protocol.metadata.ProtocolMetaData;
+import org.jboss.arquillian.container.spi.client.protocol.metadata.Servlet;
+import org.jboss.logging.Logger;
+import org.jboss.resteasy.plugins.server.undertow.UndertowJaxrsServer;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.jboss.shrinkwrap.descriptor.api.Descriptor;
+import org.jboss.shrinkwrap.undertow.api.UndertowWebArchive;
+import org.keycloak.common.util.reflections.Reflections;
+import org.keycloak.testsuite.utils.undertow.UndertowDeployerHelper;
+import org.keycloak.testsuite.utils.undertow.UndertowWarClassLoader;
+
+/**
+ * @author <a href="mailto:vramik@redhat.com">Vlasta Ramik</a>
+ */
+public class UndertowAppServer implements DeployableContainer<UndertowAppServerConfiguration> {
+
+ private static final Logger log = Logger.getLogger(UndertowAppServer.class);
+
+ private UndertowContainerConfiguration configuration;
+ private UndertowJaxrsServer undertow;
+ Map<String, String> deployedArchivesToContextPath = new ConcurrentHashMap<>();
+
+ @Override
+ public Class<UndertowAppServerConfiguration> getConfigurationClass() {
+ return UndertowAppServerConfiguration.class;
+ }
+
+ @Override
+ public void setup(UndertowAppServerConfiguration configuration) {
+ this.configuration = configuration;
+ }
+
+ @Override
+ public void start() throws LifecycleException {
+ long start = System.currentTimeMillis();
+
+ undertow = new UndertowJaxrsServer();
+ undertow.start(Undertow.builder()
+ .addHttpListener(configuration.getBindHttpPort(), configuration.getBindAddress()));
+ log.infof("App server started in %dms on http://%s:%d/", (System.currentTimeMillis() - start), configuration.getBindAddress(), configuration.getBindHttpPort());
+ }
+
+ @Override
+ public void stop() throws LifecycleException {
+ undertow.stop();
+ log.info("App Server stopped.");
+ }
+
+ @Override
+ public ProtocolDescription getDefaultProtocol() {
+ return new ProtocolDescription("Servlet 3.1");
+ }
+
+ @Override
+ public ProtocolMetaData deploy(Archive<?> archive) throws DeploymentException {
+ log.info("Deploying archive " + archive.getName());
+ DeploymentInfo di;
+ if (archive instanceof UndertowWebArchive) {
+ di = ((UndertowWebArchive) archive).getDeploymentInfo();
+ } else if (archive instanceof WebArchive) {
+ di = new UndertowDeployerHelper().getDeploymentInfo(configuration, (WebArchive)archive);
+ } else {
+ throw new IllegalArgumentException("UndertowContainer only supports UndertowWebArchive or WebArchive.");
+ }
+
+ ClassLoader parentCl = Thread.currentThread().getContextClassLoader();
+ UndertowWarClassLoader classLoader = new UndertowWarClassLoader(parentCl, archive);
+ Thread.currentThread().setContextClassLoader(classLoader);
+
+ try {
+ undertow.deploy(di);
+ } finally {
+ Thread.currentThread().setContextClassLoader(parentCl);
+ }
+
+ deployedArchivesToContextPath.put(archive.getName(), di.getContextPath());
+
+ return new ProtocolMetaData().addContext(
+ createHttpContextForDeploymentInfo(di));
+ }
+
+ @Override
+ public void undeploy(Archive<?> archive) throws DeploymentException {
+ log.info("Undeploying archive " + archive.getName());
+ Field containerField = Reflections.findDeclaredField(UndertowJaxrsServer.class, "container");
+ Reflections.setAccessible(containerField);
+ ServletContainer container = (ServletContainer) Reflections.getFieldValue(containerField, undertow);
+
+ DeploymentManager deploymentMgr = container.getDeployment(archive.getName());
+ if (deploymentMgr != null) {
+ DeploymentInfo deployment = deploymentMgr.getDeployment().getDeploymentInfo();
+
+ try {
+ deploymentMgr.stop();
+ } catch (ServletException se) {
+ throw new DeploymentException(se.getMessage(), se);
+ }
+
+ deploymentMgr.undeploy();
+
+ Field rootField = Reflections.findDeclaredField(UndertowJaxrsServer.class, "root");
+ Reflections.setAccessible(rootField);
+ PathHandler root = (PathHandler) Reflections.getFieldValue(rootField, undertow);
+
+ String path = deployedArchivesToContextPath.get(archive.getName());
+ root.removePrefixPath(path);
+
+ container.removeDeployment(deployment);
+ } else {
+ log.warnf("Deployment '%s' not found", archive.getName());
+ }
+ }
+
+ @Override
+ public void deploy(Descriptor descriptor) throws DeploymentException {
+ throw new UnsupportedOperationException("Not implemented");
+ }
+
+ @Override
+ public void undeploy(Descriptor descriptor) throws DeploymentException {
+ throw new UnsupportedOperationException("Not implemented");
+ }
+
+ private HTTPContext createHttpContextForDeploymentInfo(DeploymentInfo deploymentInfo) {
+ HTTPContext httpContext = new HTTPContext(configuration.getBindAddress(), configuration.getBindHttpPort());
+ final Map<String, ServletInfo> servlets = deploymentInfo.getServlets();
+ final Collection<ServletInfo> servletsInfo = servlets.values();
+ for (ServletInfo servletInfo : servletsInfo) {
+ httpContext.add(new Servlet(servletInfo.getName(), deploymentInfo.getContextPath()));
+ }
+ return httpContext;
+ }
+}
diff --git a/testsuite/integration-arquillian/servers/app-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/UndertowAppServerConfiguration.java b/testsuite/integration-arquillian/servers/app-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/UndertowAppServerConfiguration.java
new file mode 100644
index 0000000..9a6ccce
--- /dev/null
+++ b/testsuite/integration-arquillian/servers/app-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/UndertowAppServerConfiguration.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2018 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * 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.arquillian.undertow;
+
+import org.arquillian.undertow.UndertowContainerConfiguration;
+import org.jboss.arquillian.container.spi.ConfigurationException;
+import org.jboss.logging.Logger;
+
+public class UndertowAppServerConfiguration extends UndertowContainerConfiguration {
+
+ protected static final Logger log = Logger.getLogger(UndertowAppServerConfiguration.class);
+
+ private int bindHttpPortOffset = 0;
+
+ public int getBindHttpPortOffset() {
+ return bindHttpPortOffset;
+ }
+
+ public void setBindHttpPortOffset(int bindHttpPortOffset) {
+ this.bindHttpPortOffset = bindHttpPortOffset;
+ }
+
+ @Override
+ public void validate() throws ConfigurationException {
+ super.validate();
+
+ int basePort = getBindHttpPort();
+ int newPort = basePort + bindHttpPortOffset;
+ setBindHttpPort(newPort);
+ log.info("App server undertow will listen on port: " + newPort);
+ }
+
+}
diff --git a/testsuite/integration-arquillian/servers/app-server/undertow/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension b/testsuite/integration-arquillian/servers/app-server/undertow/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
new file mode 100644
index 0000000..9201599
--- /dev/null
+++ b/testsuite/integration-arquillian/servers/app-server/undertow/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
@@ -0,0 +1 @@
+org.keycloak.testsuite.arquillian.undertow.UndertowAppServerArquillianExtension
diff --git a/testsuite/integration-arquillian/servers/app-server/undertow/src/main/resources/META-INF/services/org.keycloak.testsuite.arquillian.container.AppServerContainerSPI b/testsuite/integration-arquillian/servers/app-server/undertow/src/main/resources/META-INF/services/org.keycloak.testsuite.arquillian.container.AppServerContainerSPI
new file mode 100644
index 0000000..a00362f
--- /dev/null
+++ b/testsuite/integration-arquillian/servers/app-server/undertow/src/main/resources/META-INF/services/org.keycloak.testsuite.arquillian.container.AppServerContainerSPI
@@ -0,0 +1 @@
+org.keycloak.testsuite.arquillian.undertow.container.UndertowAppServerProvider
diff --git a/testsuite/integration-arquillian/servers/auth-server/undertow/pom.xml b/testsuite/integration-arquillian/servers/auth-server/undertow/pom.xml
index 6793118..dc325c6 100644
--- a/testsuite/integration-arquillian/servers/auth-server/undertow/pom.xml
+++ b/testsuite/integration-arquillian/servers/auth-server/undertow/pom.xml
@@ -34,7 +34,11 @@
<groupId>org.keycloak</groupId>
<artifactId>keycloak-testsuite-utils</artifactId>
</dependency>
-
+ <dependency>
+ <groupId>org.keycloak.testsuite</groupId>
+ <artifactId>integration-arquillian-servers-util</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-container</artifactId>
@@ -42,7 +46,6 @@
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>undertow-embedded</artifactId>
- <version>${undertow-embedded.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
diff --git a/testsuite/integration-arquillian/servers/auth-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/KeycloakOnUndertow.java b/testsuite/integration-arquillian/servers/auth-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/KeycloakOnUndertow.java
index dac8ea7..1bbf6ba 100644
--- a/testsuite/integration-arquillian/servers/auth-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/KeycloakOnUndertow.java
+++ b/testsuite/integration-arquillian/servers/auth-server/undertow/src/main/java/org/keycloak/testsuite/arquillian/undertow/KeycloakOnUndertow.java
@@ -47,6 +47,8 @@ import org.keycloak.services.filters.KeycloakSessionServletFilter;
import org.keycloak.services.managers.ApplianceBootstrap;
import org.keycloak.services.resources.KeycloakApplication;
import org.keycloak.testsuite.KeycloakServer;
+import org.keycloak.testsuite.utils.undertow.UndertowDeployerHelper;
+import org.keycloak.testsuite.utils.undertow.UndertowWarClassLoader;
import org.keycloak.util.JsonSerialization;
import javax.servlet.DispatcherType;
@@ -164,6 +166,7 @@ public class KeycloakOnUndertow implements DeployableContainer<KeycloakOnUnderto
@Override
public void start() throws LifecycleException {
+ log.info("Starting auth server on undertow.");
if (isRemoteMode()) {
log.info("Skip bootstrap undertow. We are in remote mode");
return;
@@ -194,7 +197,7 @@ public class KeycloakOnUndertow implements DeployableContainer<KeycloakOnUnderto
setupDevConfig();
- log.info("Auth server started in " + (System.currentTimeMillis() - start) + " ms\n");
+ log.infof("Auth server started in %dms on http://%s:%d/auth", (System.currentTimeMillis() - start), configuration.getBindAddress(), configuration.getBindHttpPort());
}
diff --git a/testsuite/integration-arquillian/servers/pom.xml b/testsuite/integration-arquillian/servers/pom.xml
index d4812c4..250d4cb 100644
--- a/testsuite/integration-arquillian/servers/pom.xml
+++ b/testsuite/integration-arquillian/servers/pom.xml
@@ -64,8 +64,19 @@
<module>auth-server</module>
<module>app-server</module>
<module>cache-server</module>
+ <module>util</module>
</modules>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.arquillian.container</groupId>
+ <artifactId>undertow-embedded</artifactId>
+ <version>${undertow-embedded.version}</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
<profiles>
<profile>
<id>auth-server-cluster</id>
diff --git a/testsuite/integration-arquillian/servers/util/pom.xml b/testsuite/integration-arquillian/servers/util/pom.xml
new file mode 100644
index 0000000..91cda23
--- /dev/null
+++ b/testsuite/integration-arquillian/servers/util/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<!--
+~ Copyright 2018 Red Hat, Inc. and/or its affiliates
+~ and other contributors as indicated by the @author tags.
+~
+~ 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.
+-->
+
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <parent>
+ <groupId>org.keycloak.testsuite</groupId>
+ <artifactId>integration-arquillian-servers</artifactId>
+ <version>4.0.0.Final-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>integration-arquillian-servers-util</artifactId>
+ <packaging>jar</packaging>
+ <name>Test Servers Util</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.arquillian.container</groupId>
+ <artifactId>undertow-embedded</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/testsuite/integration-arquillian/tests/base/pom.xml b/testsuite/integration-arquillian/tests/base/pom.xml
index 74fd0a7..7a222f8 100644
--- a/testsuite/integration-arquillian/tests/base/pom.xml
+++ b/testsuite/integration-arquillian/tests/base/pom.xml
@@ -126,6 +126,12 @@
<artifactId>integration-arquillian-servers-app-server-spi</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.keycloak.testsuite</groupId>
+ <artifactId>integration-arquillian-servers-app-server-undertow</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
</dependencies>
<build>
@@ -165,7 +171,6 @@
<exclude>${exclude.client}</exclude>
<exclude>${exclude.cluster}</exclude>
<exclude>${exclude.crossdc}</exclude>
- <exclude>${exclude.undertow.adapter}</exclude>
<exclude>${exclude.x509}</exclude>
<exclude>${exclude.cors.tests}</exclude>
<exclude>${exclude.HoK}</exclude>
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/adapter/page/MultiTenant.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/adapter/page/MultiTenant.java
index 3cd8663..7d3d5d0 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/adapter/page/MultiTenant.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/adapter/page/MultiTenant.java
@@ -44,14 +44,14 @@ public class MultiTenant extends AbstractPageWithInjectedUrl {
@Override
public UriBuilder createUriBuilder() {
- return super.createUriBuilder().path("/").queryParam("realm", "{tenantRealm}");
+ return super.createUriBuilder().path("{tenantRealm}");
}
public URL getTenantRealmUrl(String realm) {
try {
return getUriBuilder().build(realm).toURL();
} catch (MalformedURLException ex) {
- throw new IllegalStateException("Page URL is malformed.");
+ throw new IllegalStateException("Page URL is malformed.", ex);
}
}
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AppServerTestEnricher.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AppServerTestEnricher.java
index 6bb1e84..f38cc8c 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AppServerTestEnricher.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AppServerTestEnricher.java
@@ -1,3 +1,20 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * 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.arquillian;
import org.jboss.arquillian.container.test.api.ContainerController;
@@ -32,6 +49,8 @@ public class AppServerTestEnricher {
protected final Logger log = Logger.getLogger(this.getClass());
public static final String APP_SERVER_PREFIX = "app-server-";
+ public static final String APP_SERVER_UNDERTOW = APP_SERVER_PREFIX + "undertow";
+
public static final String CURRENT_APP_SERVER = System.getProperty("app.server", "undertow");
@Inject private Instance<ContainerController> containerConrollerInstance;
@@ -58,15 +77,22 @@ public class AppServerTestEnricher {
public static String getAppServerContextRoot(int clusterPortOffset) {
String host = System.getProperty("app.server.host", "localhost");
- int httpPort = Integer.parseInt(System.getProperty("app.server.http.port")); // property must be set
- int httpsPort = Integer.parseInt(System.getProperty("app.server.https.port")); // property must be set
-
+
boolean sslRequired = Boolean.parseBoolean(System.getProperty("app.server.ssl.required"));
+
+ int port = sslRequired ? parsePort("app.server.https.port") : parsePort("app.server.http.port");
String scheme = sslRequired ? "https" : "http";
- int port = sslRequired ? httpsPort : httpPort;
return String.format("%s://%s:%s", scheme, host, port + clusterPortOffset);
}
+
+ private static int parsePort(String property) {
+ try {
+ return Integer.parseInt(System.getProperty(property));
+ } catch (NumberFormatException ex) {
+ throw new RuntimeException("Failed to get " + property, ex);
+ }
+ }
public void updateTestContextWithAppServerInfo(@Observes(precedence = 1) BeforeClass event) {
testContext = testContextInstance.get();
@@ -138,7 +164,7 @@ public class AppServerTestEnricher {
return managementClient;
}
-
+
public void startAppServer(@Observes(precedence = -1) BeforeClass event) throws MalformedURLException, InterruptedException, IOException {
if (testContext.isAdapterContainerEnabled() && !testContext.isRelativeAdapterTest()) {
ContainerController controller = containerConrollerInstance.get();
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AuthServerTestEnricher.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AuthServerTestEnricher.java
index afa2a87..bb8fe41 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AuthServerTestEnricher.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AuthServerTestEnricher.java
@@ -16,6 +16,7 @@
*/
package org.keycloak.testsuite.arquillian;
+import org.jboss.arquillian.container.spi.Container;
import org.jboss.arquillian.container.spi.ContainerRegistry;
import org.jboss.arquillian.container.spi.event.StartContainer;
import org.jboss.arquillian.container.spi.event.StartSuiteContainers;
@@ -138,7 +139,7 @@ public class AuthServerTestEnricher {
}
public void distinguishContainersInConsoleOutput(@Observes(precedence = 5) StartContainer event) {
- log.info("*****************************************************************"
+ log.info("************************" + event.getContainer().getName()
+ "*****************************************************************************");
}
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/ContainerInfo.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/ContainerInfo.java
index 9b08d80..db786b4 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/ContainerInfo.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/ContainerInfo.java
@@ -17,7 +17,6 @@ public class ContainerInfo implements Comparable<ContainerInfo> {
private URL contextRoot;
private Container arquillianContainer;
- private boolean adapterLibsInstalled;
public ContainerInfo(Container arquillianContainer) {
if (arquillianContainer == null) {
@@ -79,14 +78,6 @@ public class ContainerInfo implements Comparable<ContainerInfo> {
return getQualifier();
}
- public boolean isAdapterLibsInstalled() {
- return adapterLibsInstalled;
- }
-
- public void setAdapterLibsInstalled(boolean adapterLibsInstalled) {
- this.adapterLibsInstalled = adapterLibsInstalled;
- }
-
@Override
public int hashCode() {
int hash = 7;
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentTargetModifier.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentTargetModifier.java
index 448e1a8..de54ce7 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentTargetModifier.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentTargetModifier.java
@@ -77,7 +77,7 @@ public class DeploymentTargetModifier extends AnnotationDeploymentScenarioGenera
if (deployment.getTarget() == null || Objects.equals(deployment.getTarget().getName(), "_DEFAULT_")) {
log.debug("Setting target container for " + deployment.getName() + ": " + appServerQualifier);
deployment.setTarget(new TargetDescription(appServerQualifier));
- } else if (! containerMatches) {
+ } else if (! containerMatches && !deployment.getArchive().getName().equals("run-on-server-classes.war")) {// run-on-server deployment can have different target
throw new RuntimeException("Inconsistency found: target container for " + deployment.getName()
+ " is set to " + deployment.getTarget().getName()
+ " but the test class targets " + appServerQualifier);
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java
index 6570a2a..a0d2fce 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java
@@ -54,10 +54,30 @@ public class URLProvider extends URLResourceProvider {
private static final Set<String> fixedUrls = new HashSet<>();
+ /*
+ * TODO: review this for EAP6
+ */
@Override
public Object doLookup(ArquillianResource resource, Annotation... qualifiers) {
URL url = (URL) super.doLookup(resource, qualifiers);
+ if (url == null) {
+ String port = appServerSslRequired ?
+ System.getProperty("app.server.https.port", "8643") :
+ System.getProperty("app.server.http.port", "8280");
+ String protocol = appServerSslRequired ? "https" : "http";
+
+ try {
+ for (Annotation a : qualifiers) {
+ if (OperateOnDeployment.class.isAssignableFrom(a.annotationType())) {
+ return new URL(protocol + "://localhost:" + port + "/" + ((OperateOnDeployment) a).value());
+ }
+ }
+ } catch (MalformedURLException ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+
// fix injected URL
if (url != null) {
try {
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractBrokerLinkAndTokenExchangeTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractBrokerLinkAndTokenExchangeTest.java
index 909968f..febc9d7 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractBrokerLinkAndTokenExchangeTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractBrokerLinkAndTokenExchangeTest.java
@@ -18,6 +18,7 @@ package org.keycloak.testsuite.adapter.servlet;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.OperateOnDeployment;
+import org.jboss.arquillian.container.test.api.TargetsContainer;
import org.jboss.arquillian.graphene.page.Page;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.spec.WebArchive;
@@ -51,6 +52,8 @@ import org.keycloak.representations.idm.authorization.ClientPolicyRepresentation
import org.keycloak.representations.idm.authorization.DecisionStrategy;
import org.keycloak.services.resources.admin.permissions.AdminPermissionManagement;
import org.keycloak.services.resources.admin.permissions.AdminPermissions;
+import org.keycloak.testsuite.AbstractAuthTest;
+import org.keycloak.testsuite.adapter.AbstractAdapterTest;
import org.keycloak.testsuite.adapter.AbstractServletsAdapterTest;
import org.keycloak.testsuite.broker.BrokerTestTools;
import org.keycloak.testsuite.page.AbstractPageWithInjectedUrl;
@@ -58,6 +61,7 @@ import org.keycloak.testsuite.pages.AccountUpdateProfilePage;
import org.keycloak.testsuite.pages.ErrorPage;
import org.keycloak.testsuite.pages.LoginPage;
import org.keycloak.testsuite.pages.LoginUpdateProfilePage;
+import org.keycloak.testsuite.runonserver.RunOnServerDeployment;
import org.keycloak.testsuite.util.OAuthClient;
import org.keycloak.testsuite.util.WaitUtils;
import org.keycloak.util.BasicAuthHelper;
@@ -74,7 +78,9 @@ import java.io.File;
import java.net.URL;
import java.util.LinkedList;
import java.util.List;
+
import static org.keycloak.testsuite.admin.ApiUtil.createUserAndResetPasswordWithAdminClient;
+import static org.keycloak.testsuite.arquillian.DeploymentTargetModifier.AUTH_SERVER_CURRENT;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
@@ -88,6 +94,21 @@ public abstract class AbstractBrokerLinkAndTokenExchangeTest extends AbstractSer
public static final String UNAUTHORIZED_CHILD_CLIENT = "unauthorized-child-client";
public static final String PARENT_CLIENT = "parent-client";
+ @Deployment
+ @TargetsContainer(AUTH_SERVER_CURRENT)
+ public static WebArchive deploy() {
+ return RunOnServerDeployment.create(
+ AbstractBrokerLinkAndTokenExchangeTest.class,
+ AbstractServletsAdapterTest.class,
+ AbstractAdapterTest.class,
+ AbstractAuthTest.class);
+ }
+
+ @Deployment(name = ClientApp.DEPLOYMENT_NAME)
+ protected static WebArchive accountLink() {
+ return servletDeployment(ClientApp.DEPLOYMENT_NAME, LinkAndExchangeServlet.class, ServletTestUtils.class);
+ }
+
@Page
protected LoginUpdateProfilePage loginUpdateProfilePage;
@@ -174,12 +195,6 @@ public abstract class AbstractBrokerLinkAndTokenExchangeTest extends AbstractSer
}
-
- @Deployment(name = ClientApp.DEPLOYMENT_NAME)
- protected static WebArchive accountLink() {
- return servletDeployment(ClientApp.DEPLOYMENT_NAME, LinkAndExchangeServlet.class, ServletTestUtils.class);
- }
-
@Before
public void addIdpUser() {
RealmResource realm = adminClient.realms().realm(PARENT_IDP);
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractDemoFilterServletAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractDemoFilterServletAdapterTest.java
index 495434e..05426ee 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractDemoFilterServletAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractDemoFilterServletAdapterTest.java
@@ -27,16 +27,14 @@ public abstract class AbstractDemoFilterServletAdapterTest extends AbstractDemoS
@Test
@Override
- @Ignore
+ @Ignore(value = "Can't test because of the way filter works")
public void testNullBearerTokenCustomErrorPage() {
- //can't test because of the way filter works
}
@Test
@Override
- @Ignore
+ @Ignore(value = "Don't need to test this because HttpServletRequest.authenticate doesn't make sense with filter implementation")
public void testAuthenticated() {
- //Don't need to test this because HttpServletRequest.authenticate doesn't make sense with filter implementation
}
@Test
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 01e9c3b..7d458cf 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
@@ -1290,4 +1290,4 @@ public abstract class AbstractDemoServletsAdapterTest extends AbstractServletsAd
.clearDetails()
.assertEvent();
}
-}
\ No newline at end of file
+}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractSessionServletAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractSessionServletAdapterTest.java
index 31bdc7d..11443c4 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractSessionServletAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/AbstractSessionServletAdapterTest.java
@@ -22,6 +22,7 @@ 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.After;
+import org.junit.Assume;
import org.junit.Test;
import org.keycloak.OAuth2Constants;
import org.keycloak.admin.client.resource.ClientResource;
@@ -120,6 +121,7 @@ public abstract class AbstractSessionServletAdapterTest extends AbstractServlets
//KEYCLOAK-741
@Test
public void testSessionInvalidatedAfterFailedRefresh() {
+ assumeNotOnUndertow();
RealmRepresentation testRealmRep = testRealmResource().toRepresentation();
ClientResource sessionPortalRes = null;
for (ClientRepresentation clientRep : testRealmResource().clients().findAll()) {
@@ -177,6 +179,7 @@ public abstract class AbstractSessionServletAdapterTest extends AbstractServlets
//KEYCLOAK-1216
@Test
public void testAccountManagementSessionsLogout() {
+ assumeNotOnUndertow();
// login as bburke
loginAndCheckSession(driver, testRealmLoginPage);
testRealmSessions.navigateTo();
@@ -184,6 +187,13 @@ public abstract class AbstractSessionServletAdapterTest extends AbstractServlets
// Assert I need to login again (logout was propagated to the app)
loginAndCheckSession(driver, testRealmLoginPage);
}
+
+ private void assumeNotOnUndertow() {
+ Assume.assumeFalse("Not stable on app-server-undertow when whole adapter package is tested. "
+ + "It throws: KC-SERVICES0057: Logout for client 'session-portal' failed\n"
+ + "org.apache.http.NoHttpResponseException: localhost:8280 failed to respond",
+ System.getProperty("app.server", "undertow").equals("undertow"));
+ }
private void loginAndCheckSession(WebDriver driver, Login login) {
sessionPortalPage.navigateTo();
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/MultiTenancyTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/MultiTenancyTest.java
index 23bd4bd..8b431ee 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/MultiTenancyTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/MultiTenancyTest.java
@@ -16,9 +16,11 @@
*/
package org.keycloak.testsuite.adapter.undertow.servlet;
+import java.net.URL;
import java.util.List;
import javax.ws.rs.core.UriBuilder;
import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.graphene.page.Page;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.After;
import org.junit.Assert;
@@ -26,23 +28,28 @@ import org.junit.Test;
import org.keycloak.protocol.oidc.OIDCLoginProtocolService;
import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.testsuite.adapter.AbstractServletsAdapterTest;
+import org.keycloak.testsuite.adapter.page.MultiTenant;
import org.keycloak.testsuite.adapter.servlet.ErrorServlet;
import org.keycloak.testsuite.adapter.servlet.MultiTenantResolver;
import org.keycloak.testsuite.adapter.servlet.MultiTenantServlet;
-import static org.keycloak.testsuite.arquillian.AuthServerTestEnricher.AUTH_SERVER_CONTAINER_DEFAULT;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import static org.keycloak.testsuite.util.IOUtil.loadRealm;
import org.keycloak.testsuite.util.URLAssert;
import org.keycloak.testsuite.util.WaitUtils;
+import static org.keycloak.testsuite.arquillian.AppServerTestEnricher.APP_SERVER_DEFAULT;
+import static org.keycloak.testsuite.util.IOUtil.loadRealm;
+
/**
* note: migrated from old testsuite
*
* @author Juraci Paixão Kröhling <juraci at kroehling.de>
*/
-@AppServerContainer(AUTH_SERVER_CONTAINER_DEFAULT)
+@AppServerContainer(APP_SERVER_DEFAULT)
public class MultiTenancyTest extends AbstractServletsAdapterTest {
+ @Page
+ private MultiTenant tenantPage;
+
@Override
public void addAdapterTestRealms(List<RealmRepresentation> testRealms) {
testRealms.add(loadRealm("/adapter-test/tenant1-realm.json"));
@@ -54,9 +61,9 @@ public class MultiTenancyTest extends AbstractServletsAdapterTest {
return false;
}
- @Deployment(name = "multi-tenant")
+ @Deployment(name = MultiTenant.DEPLOYMENT_NAME)
protected static WebArchive multiTenant() {
- return servletDeploymentMultiTenant("multi-tenant", MultiTenantServlet.class, ErrorServlet.class, MultiTenantResolver.class);
+ return servletDeploymentMultiTenant(MultiTenant.DEPLOYMENT_NAME, MultiTenantServlet.class, ErrorServlet.class, MultiTenantResolver.class);
}
@After
@@ -97,12 +104,10 @@ public class MultiTenancyTest extends AbstractServletsAdapterTest {
public void testUnauthorizedAccessNotLoggedIn() {
String keycloakServerBaseUrl = authServerPage.toString();
- driver.navigate().to(authServerContextRootPage + "/multi-tenant/tenant1");
+ driver.navigate().to(tenantPage.getTenantRealmUrl("tenant1"));
WaitUtils.waitForPageToLoad();
URLAssert.assertCurrentUrlStartsWith(keycloakServerBaseUrl);
- String currentUrl = driver.getCurrentUrl();
- String toString = testRealmLoginPage.toString();
testRealmLoginPage.form().login("user-tenant2", "user-tenant2");
URLAssert.assertCurrentUrlStartsWith(keycloakServerBaseUrl);
}
@@ -116,20 +121,20 @@ public class MultiTenancyTest extends AbstractServletsAdapterTest {
public void testUnauthorizedAccessLoggedIn() {
doTenantRequests("tenant1", false);
- driver.navigate().to(authServerContextRootPage + "/multi-tenant/tenant2");
+ driver.navigate().to(tenantPage.getTenantRealmUrl("tenant2"));
URLAssert.assertCurrentUrlStartsWith(authServerPage.toString());
}
private void doTenantRequests(String tenant, boolean logout) {
String tenantLoginUrl = OIDCLoginProtocolService.authUrl(UriBuilder.fromUri(authServerPage.getAuthRoot())).build(tenant).toString();
- String tenantUrl = authServerContextRootPage + "/multi-tenant/" + tenant;
+ URL tenantUrl = tenantPage.getTenantRealmUrl(tenant);
driver.navigate().to(tenantUrl);
URLAssert.assertCurrentUrlStartsWith(tenantLoginUrl);
testRealmLoginPage.form().login("bburke@redhat.com", "password");
log.debug("Current url: " + driver.getCurrentUrl());
- URLAssert.assertCurrentUrlStartsWith(tenantUrl);
+ URLAssert.assertCurrentUrlStartsWith(tenantUrl.toString());
String pageSource = driver.getPageSource();
log.debug(pageSource);
@@ -137,7 +142,7 @@ public class MultiTenancyTest extends AbstractServletsAdapterTest {
Assert.assertTrue(pageSource.contains("Realm: " + tenant));
if (logout) {
- driver.navigate().to(authServerContextRootPage + "/multi-tenant/" + tenant + "/logout");
+ driver.navigate().to(tenantUrl + "/logout");
Assert.assertFalse(driver.getPageSource().contains("Username: bburke@redhat.com"));
Assert.assertTrue(driver.getCurrentUrl().startsWith(tenantLoginUrl));
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowBrokerLinkAndTokenExchangeTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowBrokerLinkAndTokenExchangeTest.java
index d21dddc..89dadd3 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowBrokerLinkAndTokenExchangeTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowBrokerLinkAndTokenExchangeTest.java
@@ -16,34 +16,24 @@
*/
package org.keycloak.testsuite.adapter.undertow.servlet;
+import org.junit.Ignore;
import org.junit.Test;
import org.keycloak.testsuite.adapter.servlet.AbstractBrokerLinkAndTokenExchangeTest;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import static org.keycloak.testsuite.arquillian.AuthServerTestEnricher.AUTH_SERVER_CONTAINER_DEFAULT;
+import static org.keycloak.testsuite.arquillian.AppServerTestEnricher.APP_SERVER_DEFAULT;
/**
*
* @author <a href="mailto:vramik@redhat.com">Vlastislav Ramik</a>
*/
-@AppServerContainer(AUTH_SERVER_CONTAINER_DEFAULT)
+@AppServerContainer(APP_SERVER_DEFAULT)
public class UndertowBrokerLinkAndTokenExchangeTest extends AbstractBrokerLinkAndTokenExchangeTest {
- //@Test
+ @Test
+ @Ignore(value = "testing purpose")
public void testUi() throws Exception {
Thread.sleep(1000000000);
}
-
- @Override
- @Test
- public void testAccountLink() throws Exception {
- super.testAccountLink();
- }
-
- @Override
- @Test
- public void testAccountLinkNoTokenStore() throws Exception {
- super.testAccountLinkNoTokenStore();
- }
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowClientInitiatedAccountLinkTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowClientInitiatedAccountLinkTest.java
index 38f54bb..b9cc978 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowClientInitiatedAccountLinkTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowClientInitiatedAccountLinkTest.java
@@ -16,28 +16,24 @@
*/
package org.keycloak.testsuite.adapter.undertow.servlet;
+import org.junit.Ignore;
import org.junit.Test;
import org.keycloak.testsuite.adapter.servlet.AbstractClientInitiatedAccountLinkTest;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import static org.keycloak.testsuite.arquillian.AuthServerTestEnricher.AUTH_SERVER_CONTAINER_DEFAULT;
+import static org.keycloak.testsuite.arquillian.AppServerTestEnricher.APP_SERVER_DEFAULT;
/**
*
* @author <a href="mailto:vramik@redhat.com">Vlastislav Ramik</a>
*/
-@AppServerContainer(AUTH_SERVER_CONTAINER_DEFAULT)
+@AppServerContainer(APP_SERVER_DEFAULT)
public class UndertowClientInitiatedAccountLinkTest extends AbstractClientInitiatedAccountLinkTest {
- //@Test
+ @Test
+ @Ignore
public void testUi() throws Exception {
Thread.sleep(1000000000);
}
-
- @Override
- @Test
- public void testAccountLink() throws Exception {
- super.testAccountLink();
- }
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowDemoFilterServletAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowDemoFilterServletAdapterTest.java
index e759bb1..a5c94bc 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowDemoFilterServletAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowDemoFilterServletAdapterTest.java
@@ -20,11 +20,11 @@ package org.keycloak.testsuite.adapter.undertow.servlet;
import org.keycloak.testsuite.adapter.servlet.AbstractDemoFilterServletAdapterTest;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import static org.keycloak.testsuite.arquillian.AuthServerTestEnricher.AUTH_SERVER_CONTAINER_DEFAULT;
+import static org.keycloak.testsuite.arquillian.AppServerTestEnricher.APP_SERVER_DEFAULT;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
-@AppServerContainer(AUTH_SERVER_CONTAINER_DEFAULT)
+@AppServerContainer(APP_SERVER_DEFAULT)
public class UndertowDemoFilterServletAdapterTest extends AbstractDemoFilterServletAdapterTest {
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowDemoServletsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowDemoServletsAdapterTest.java
index ab19c0d..511a442 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowDemoServletsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowDemoServletsAdapterTest.java
@@ -17,21 +17,15 @@
package org.keycloak.testsuite.adapter.undertow.servlet;
-import org.junit.Test;
import org.keycloak.testsuite.adapter.servlet.AbstractDemoServletsAdapterTest;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import static org.keycloak.testsuite.arquillian.AuthServerTestEnricher.AUTH_SERVER_CONTAINER_DEFAULT;
+import static org.keycloak.testsuite.arquillian.AppServerTestEnricher.APP_SERVER_DEFAULT;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
-@AppServerContainer(AUTH_SERVER_CONTAINER_DEFAULT)
+@AppServerContainer(APP_SERVER_DEFAULT)
public class UndertowDemoServletsAdapterTest extends AbstractDemoServletsAdapterTest {
-
- @Test
- @Override
- public void testLoginEncodedRedirectUri() {
- super.testLoginEncodedRedirectUri();
- }
+
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowOfflineServletsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowOfflineServletsAdapterTest.java
index c330ee9..4ed1a44 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowOfflineServletsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowOfflineServletsAdapterTest.java
@@ -20,11 +20,11 @@ package org.keycloak.testsuite.adapter.undertow.servlet;
import org.keycloak.testsuite.adapter.servlet.AbstractOfflineServletsAdapterTest;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import static org.keycloak.testsuite.arquillian.AuthServerTestEnricher.AUTH_SERVER_CONTAINER_DEFAULT;
+import static org.keycloak.testsuite.arquillian.AppServerTestEnricher.APP_SERVER_DEFAULT;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
-@AppServerContainer(AUTH_SERVER_CONTAINER_DEFAULT)
+@AppServerContainer(APP_SERVER_DEFAULT)
public class UndertowOfflineServletsAdapterTest extends AbstractOfflineServletsAdapterTest {
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowOIDCPublicKeyRotationAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowOIDCPublicKeyRotationAdapterTest.java
index 77d2def..f96aa69 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowOIDCPublicKeyRotationAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowOIDCPublicKeyRotationAdapterTest.java
@@ -20,11 +20,11 @@ package org.keycloak.testsuite.adapter.undertow.servlet;
import org.keycloak.testsuite.adapter.servlet.AbstractOIDCPublicKeyRotationAdapterTest;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import static org.keycloak.testsuite.arquillian.AuthServerTestEnricher.AUTH_SERVER_CONTAINER_DEFAULT;
+import static org.keycloak.testsuite.arquillian.AppServerTestEnricher.APP_SERVER_DEFAULT;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
-@AppServerContainer(AUTH_SERVER_CONTAINER_DEFAULT)
+@AppServerContainer(APP_SERVER_DEFAULT)
public class UndertowOIDCPublicKeyRotationAdapterTest extends AbstractOIDCPublicKeyRotationAdapterTest {
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowRelaviteUriAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowRelaviteUriAdapterTest.java
index e6308f0..20be835 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowRelaviteUriAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowRelaviteUriAdapterTest.java
@@ -22,6 +22,7 @@ import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.graphene.page.Page;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Assert;
+import org.junit.Ignore;
import org.junit.Test;
import org.keycloak.OAuth2Constants;
import org.keycloak.protocol.oidc.OIDCLoginProtocolService;
@@ -53,6 +54,7 @@ import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWithLo
* @author <a href="mailto:bburke@redhat.com">Bill Burke</a>
*/
@AppServerContainer(AUTH_SERVER_CONTAINER_DEFAULT)
+@Ignore(value = "Need to resolve default relative scenario when running on non-undertow")
public class UndertowRelaviteUriAdapterTest extends AbstractServletsAdapterTest {
@Page
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowSessionFilterServletAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowSessionFilterServletAdapterTest.java
index efd6783..ba00212 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowSessionFilterServletAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowSessionFilterServletAdapterTest.java
@@ -20,9 +20,9 @@ package org.keycloak.testsuite.adapter.undertow.servlet;
import org.keycloak.testsuite.adapter.servlet.AbstractSessionFilterServletAdapterTest;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import static org.keycloak.testsuite.arquillian.AuthServerTestEnricher.AUTH_SERVER_CONTAINER_DEFAULT;
+import static org.keycloak.testsuite.arquillian.AppServerTestEnricher.APP_SERVER_DEFAULT;
-@AppServerContainer(AUTH_SERVER_CONTAINER_DEFAULT)
+@AppServerContainer(APP_SERVER_DEFAULT)
public class UndertowSessionFilterServletAdapterTest extends AbstractSessionFilterServletAdapterTest {
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowSessionServletAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowSessionServletAdapterTest.java
index f10043e..0df585d 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowSessionServletAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UndertowSessionServletAdapterTest.java
@@ -20,11 +20,11 @@ package org.keycloak.testsuite.adapter.undertow.servlet;
import org.keycloak.testsuite.adapter.servlet.AbstractSessionServletAdapterTest;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import static org.keycloak.testsuite.arquillian.AuthServerTestEnricher.AUTH_SERVER_CONTAINER_DEFAULT;
+import static org.keycloak.testsuite.arquillian.AppServerTestEnricher.APP_SERVER_DEFAULT;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
-@AppServerContainer(AUTH_SERVER_CONTAINER_DEFAULT)
+@AppServerContainer(APP_SERVER_DEFAULT)
public class UndertowSessionServletAdapterTest extends AbstractSessionServletAdapterTest {
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UserStorageConsentTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UserStorageConsentTest.java
index 3cd3403..8dedd5c 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UserStorageConsentTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/undertow/servlet/UserStorageConsentTest.java
@@ -16,7 +16,15 @@
*/
package org.keycloak.testsuite.adapter.undertow.servlet;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.ws.rs.core.Response;
import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.TargetsContainer;
import org.jboss.arquillian.graphene.page.Page;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Assert;
@@ -36,24 +44,20 @@ import org.keycloak.representations.idm.ComponentRepresentation;
import org.keycloak.representations.idm.RoleRepresentation;
import org.keycloak.representations.idm.UserRepresentation;
import org.keycloak.storage.UserStorageProvider;
+import org.keycloak.testsuite.AbstractAuthTest;
+import org.keycloak.testsuite.adapter.AbstractAdapterTest;
import org.keycloak.testsuite.adapter.AbstractServletsAdapterTest;
import org.keycloak.testsuite.adapter.page.ProductPortal;
import org.keycloak.testsuite.adapter.servlet.ProductServlet;
import org.keycloak.testsuite.admin.ApiUtil;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
+import org.keycloak.testsuite.auth.page.login.PageWithLoginUrl;
import org.keycloak.testsuite.federation.UserMapStorageFactory;
import org.keycloak.testsuite.pages.ConsentPage;
+import org.keycloak.testsuite.runonserver.RunOnServerDeployment;
-import javax.ws.rs.core.Response;
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.keycloak.testsuite.arquillian.AuthServerTestEnricher.AUTH_SERVER_CONTAINER_DEFAULT;
+import static org.keycloak.testsuite.arquillian.AppServerTestEnricher.APP_SERVER_DEFAULT;
+import static org.keycloak.testsuite.arquillian.DeploymentTargetModifier.AUTH_SERVER_CURRENT;
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlEquals;
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWithLoginUrlOf;
@@ -61,7 +65,7 @@ import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWithLo
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
-@AppServerContainer(AUTH_SERVER_CONTAINER_DEFAULT)
+@AppServerContainer(APP_SERVER_DEFAULT)
public class UserStorageConsentTest extends AbstractServletsAdapterTest {
@Page
@@ -70,7 +74,15 @@ public class UserStorageConsentTest extends AbstractServletsAdapterTest {
@Page
protected ConsentPage consentPage;
-
+ @Deployment
+ @TargetsContainer(AUTH_SERVER_CURRENT)
+ public static WebArchive deploy() {
+ return RunOnServerDeployment.create(
+ AbstractServletsAdapterTest.class,
+ AbstractAdapterTest.class,
+ AbstractAuthTest.class,
+ PageWithLoginUrl.class);
+ }
@Deployment(name = ProductPortal.DEPLOYMENT_NAME)
protected static WebArchive productPortal() {
@@ -97,9 +109,6 @@ public class UserStorageConsentTest extends AbstractServletsAdapterTest {
return id;
}
-
-
-
public static void setupConsent(KeycloakSession session) {
RealmModel realm = session.realms().getRealmByName("demo");
ClientModel product = session.realms().getClientByClientId("product-portal", realm);
@@ -146,8 +155,6 @@ public class UserStorageConsentTest extends AbstractServletsAdapterTest {
roleList.add(roleRep);
adminClient.realm("demo").users().get(uid).roles().realmLevel().add(roleList);
-
-
productPortal.navigateTo();
assertCurrentUrlStartsWithLoginUrlOf(testRealmPage);
testRealmLoginPage.form().login("memuser", "password");
@@ -165,8 +172,8 @@ public class UserStorageConsentTest extends AbstractServletsAdapterTest {
assertCurrentUrlStartsWithLoginUrlOf(testRealmPage);
testRealmLoginPage.form().login("memuser", "password");
assertCurrentUrlEquals(productPortal.toString());
- Assert.assertTrue(driver.getPageSource().contains("iPhone")); }
-
-
-
+ Assert.assertTrue(driver.getPageSource().contains("iPhone"));
+
+ adminClient.realm("demo").users().delete(uid).close();
+ }
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/resources/arquillian.xml b/testsuite/integration-arquillian/tests/base/src/test/resources/arquillian.xml
index 4426da2..0cbd649 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/resources/arquillian.xml
+++ b/testsuite/integration-arquillian/tests/base/src/test/resources/arquillian.xml
@@ -85,7 +85,7 @@
<property name="deploymentExportPath">target/deployments</property>
</engine>
- <container qualifier="auth-server-undertow" mode="suite" >
+ <container qualifier="auth-server-undertow" mode="suite" default="true">
<configuration>
<property name="enabled">${auth.server.undertow} && ! ${auth.server.crossdc}</property>
<property name="bindAddress">0.0.0.0</property>
@@ -95,7 +95,7 @@
</configuration>
</container>
- <container qualifier="auth-server-${auth.server}" mode="suite" >
+ <container qualifier="auth-server-${auth.server}" mode="suite" default="true">
<configuration>
<property name="enabled">${auth.server.jboss} && ! ${auth.server.crossdc}</property>
<property name="adapterImplClass">${auth.server.adapter.impl.class}</property>
travis-run-tests.sh 2(+1 -1)
diff --git a/travis-run-tests.sh b/travis-run-tests.sh
index bf59b2a..6a083a0 100755
--- a/travis-run-tests.sh
+++ b/travis-run-tests.sh
@@ -60,7 +60,7 @@ if [ $1 == "unit" ]; then
fi
if [ $1 == "server-group1" ]; then
- run-server-tests org.keycloak.testsuite.ad*.**.*Test,!**/adapter/undertow/**/*Test
+ run-server-tests org.keycloak.testsuite.ad*.**.*Test
fi
if [ $1 == "server-group2" ]; then