package org.keycloak.testsuite.adapter.servlet;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.graphene.page.Page;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import org.keycloak.testsuite.adapter.page.CustomerPortalSubsystem;
import org.keycloak.testsuite.adapter.page.ProductPortalSubsystem;
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlEquals;
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWithLoginUrlOf;
/**
* OIDC adapter test specific for JBoss-based containers.
* @author tkyjovsk
*/
public abstract class AbstractJBossOIDCServletsAdapterTest extends AbstractDemoServletsAdapterTest {
@Page
private CustomerPortalSubsystem customerPortalSubsystem;
@Page
private ProductPortalSubsystem productPortalSubsystem;
@Deployment(name = CustomerPortalSubsystem.DEPLOYMENT_NAME)
protected static WebArchive customerPortalSubsystem() {
return servletDeployment(CustomerPortalSubsystem.DEPLOYMENT_NAME, CustomerServlet.class, ErrorServlet.class, ServletTestUtils.class);
}
@Deployment(name = ProductPortalSubsystem.DEPLOYMENT_NAME)
protected static WebArchive productPortalSubsystem() {
return servletDeployment(ProductPortalSubsystem.DEPLOYMENT_NAME, ProductServlet.class);
}
@Test
public void testSecureDeployments() {
customerPortalSubsystem.navigateTo();
assertCurrentUrlStartsWithLoginUrlOf(testRealmPage);
testRealmLoginPage.form().login("bburke@redhat.com", "password");
assertTrue(driver.getPageSource().contains("Bill Burke") && driver.getPageSource().contains("Stian Thorgersen"));
productPortalSubsystem.navigateTo();
assertCurrentUrlEquals(productPortalSubsystem);
String pageSource = driver.getPageSource();
assertTrue(pageSource.contains("iPhone") && pageSource.contains("iPad"));
}
}