package org.keycloak.testsuite.mod_auth_mellon; import org.jboss.arquillian.graphene.page.Page; import org.junit.Test; import org.keycloak.representations.idm.RealmRepresentation; import org.keycloak.testsuite.AbstractAuthTest; import org.keycloak.testsuite.util.URLAssert; import java.util.List; import static org.junit.Assert.assertTrue; import static org.keycloak.testsuite.util.IOUtil.loadRealm; import static org.keycloak.testsuite.util.WaitUtils.pause; /** * @author mhajas */ public class ModAuthMellonTest extends AbstractAuthTest { @Page private ModAuthMellonProtectedResource modAuthMellonProtectedResourcePage; @Page private ModAuthMellonUnprotectedResource modAuthMellonUnprotectedResourcePage; @Page private ModAuthMellonProtectedResource2 modAuthMellonProtectedResourcePage2; @Page private ModAuthMellonUnprotectedResource2 modAuthMellonUnprotectedResourcePage2; @Override public void addTestRealms(List<RealmRepresentation> testRealms) { testRealms.add(loadRealm("/mellon-realm.json")); } @Override public void setDefaultPageUriParameters() { super.setDefaultPageUriParameters(); testRealmPage.setAuthRealm("mellon-test"); testRealmSAMLRedirectLoginPage.setAuthRealm("mellon-test"); } @Test public void singleLoginAndLogoutTest() { modAuthMellonProtectedResourcePage.navigateTo(); URLAssert.assertCurrentUrlStartsWith(testRealmSAMLRedirectLoginPage); testRealmSAMLRedirectLoginPage.form().login(bburkeUser); assertTrue(driver.getPageSource().contains("Protected resource")); modAuthMellonProtectedResourcePage2.navigateTo(); assertTrue(driver.getPageSource().contains("Protected resource 2")); modAuthMellonProtectedResourcePage2.logout(); assertTrue(driver.getPageSource().contains("Unprotected resource 2")); modAuthMellonProtectedResourcePage2.navigateTo(); URLAssert.assertCurrentUrlStartsWith(testRealmSAMLRedirectLoginPage); pause(5000); //session length modAuthMellonProtectedResourcePage.navigateTo(); URLAssert.assertCurrentUrlStartsWith(testRealmSAMLRedirectLoginPage); } @Test public void unauthorizedSSO() { modAuthMellonProtectedResourcePage2.navigateTo(); URLAssert.assertCurrentUrlStartsWith(testRealmSAMLRedirectLoginPage); testRealmSAMLRedirectLoginPage.form().login("unauthorized", "password"); assertTrue(driver.getPageSource().contains("Forbidden")); modAuthMellonProtectedResourcePage.navigateTo(); assertTrue(driver.getPageSource().contains("Protected resource")); modAuthMellonProtectedResourcePage.logout(); } @Test public void sessionExpiration() { modAuthMellonProtectedResourcePage.navigateTo(); testRealmSAMLRedirectLoginPage.form().login(bburkeUser); assertTrue(driver.getPageSource().contains("Protected resource")); pause(5000); //session length modAuthMellonProtectedResourcePage.navigateTo(); URLAssert.assertCurrentUrlStartsWith(testRealmSAMLRedirectLoginPage); } }