diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/SocialLoginTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/SocialLoginTest.java index 46c856ec4c..2882e81189 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/SocialLoginTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/SocialLoginTest.java @@ -2,11 +2,13 @@ package org.keycloak.testsuite.broker; import org.jboss.arquillian.graphene.Graphene; import org.jboss.arquillian.graphene.page.Page; +import org.junit.After; import org.junit.BeforeClass; import org.junit.Test; import org.keycloak.representations.idm.IdentityProviderRepresentation; import org.keycloak.representations.idm.RealmRepresentation; import org.keycloak.social.openshift.OpenshiftV3IdentityProvider; +import org.keycloak.representations.idm.UserRepresentation; import org.keycloak.testsuite.AbstractKeycloakTest; import org.keycloak.testsuite.pages.AccountUpdateProfilePage; import org.keycloak.testsuite.pages.LoginPage; @@ -31,6 +33,7 @@ import static org.junit.Assume.assumeTrue; public class SocialLoginTest extends AbstractKeycloakTest { public static final String SOCIAL_CONFIG = "social.config"; + public static final String REALM = "social"; private static Properties config = new Properties(); @@ -50,9 +53,17 @@ public class SocialLoginTest extends AbstractKeycloakTest { config.load(new FileInputStream(System.getProperty(SOCIAL_CONFIG))); } + @After + public void removeUser() { + List users = adminClient.realm(REALM).users().search(null, null, null); + for (UserRepresentation user : users) { + adminClient.realm(REALM).users().get(user.getId()).remove(); + } + } + @Override public void addTestRealms(List testRealms) { - RealmRepresentation rep = RealmBuilder.create().name("social").build(); + RealmRepresentation rep = RealmBuilder.create().name(REALM).build(); List idps = new LinkedList<>(); rep.setIdentityProviders(idps); @@ -70,7 +81,7 @@ public class SocialLoginTest extends AbstractKeycloakTest { @Test public void openshiftLogin() throws Exception { - account.open("social"); + account.open(REALM); loginPage.clickSocial("openshift-v3"); Graphene.waitGui().until(ExpectedConditions.visibilityOfElementLocated(By.id("inputUsername"))); @@ -86,7 +97,7 @@ public class SocialLoginTest extends AbstractKeycloakTest { @Test public void googleLogin() throws InterruptedException { - account.open("social"); + account.open(REALM); loginPage.clickSocial("google"); @@ -111,7 +122,7 @@ public class SocialLoginTest extends AbstractKeycloakTest { @Test public void faceBookLogin() { - account.open("social"); + account.open(REALM); loginPage.clickSocial("facebook"); @@ -128,7 +139,7 @@ public class SocialLoginTest extends AbstractKeycloakTest { @Test public void githubLogin() { - account.open("social"); + account.open(REALM); loginPage.clickSocial("github"); @@ -145,7 +156,7 @@ public class SocialLoginTest extends AbstractKeycloakTest { @Test public void twitterLogin() { - account.open("social"); + account.open(REALM); loginPage.clickSocial("twitter"); @@ -170,7 +181,7 @@ public class SocialLoginTest extends AbstractKeycloakTest { @Test public void linkedinLogin() { - account.open("social"); + account.open(REALM); loginPage.clickSocial("linkedin"); @@ -187,7 +198,7 @@ public class SocialLoginTest extends AbstractKeycloakTest { @Test public void microsoftLogin() { - account.open("social"); + account.open(REALM); loginPage.clickSocial("microsoft"); @@ -206,7 +217,7 @@ public class SocialLoginTest extends AbstractKeycloakTest { @Test public void stackoverflowLogin() { - account.open("social"); + account.open(REALM); loginPage.clickSocial("stackoverflow"); diff --git a/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/AbstractConsoleTest.java b/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/AbstractConsoleTest.java index ecf69e51f0..0b02193836 100644 --- a/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/AbstractConsoleTest.java +++ b/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/AbstractConsoleTest.java @@ -76,6 +76,12 @@ public abstract class AbstractConsoleTest extends AbstractAuthTest { } } + // TODO: Fix the tests so this workaround is not necessary + @Override + protected boolean isImportAfterEachMethod() { + return true; + } + public void loginToMasterRealmAdminConsoleAs(UserRepresentation user) { loginToAdminConsoleAs(adminConsolePage, loginPage, user); } diff --git a/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/authentication/FlowsTest.java b/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/authentication/FlowsTest.java index 35b8421fe9..c35fae3800 100644 --- a/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/authentication/FlowsTest.java +++ b/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/authentication/FlowsTest.java @@ -21,7 +21,6 @@ */ package org.keycloak.testsuite.console.authentication; -import org.apache.commons.collections.CollectionUtils; import org.jboss.arquillian.graphene.page.Page; import org.junit.Before; import org.junit.Test; @@ -38,6 +37,7 @@ import org.keycloak.testsuite.console.page.authentication.flows.FlowsTable; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; import static org.hamcrest.CoreMatchers.hasItem; @@ -74,7 +74,7 @@ public class FlowsTest extends AbstractConsoleTest { assertAlertSuccess(); // Checking if test flow is created via rest - AuthenticationFlowRepresentation testFlow = getLastFlowFromREST(); + AuthenticationFlowRepresentation testFlow = getFlowFromREST("testFlow"); assertEquals("testFlow", testFlow.getAlias()); // Checking if testFlow is selected in UI @@ -86,7 +86,7 @@ public class FlowsTest extends AbstractConsoleTest { assertAlertSuccess(); // Checking if execution flow is created via rest - testFlow = getLastFlowFromREST(); + testFlow = getFlowFromREST("testFlow"); assertEquals("testExecution", testFlow.getAuthenticationExecutions().get(0).getFlowAlias()); // Checking if testFlow is selected in UI @@ -98,7 +98,6 @@ public class FlowsTest extends AbstractConsoleTest { assertAlertSuccess(); // Checking if both test flow and execution flow is removed via UI - assertEquals("Browser", flowsPage.getFlowSelectValue()); assertThat(flowsPage.getFlowAllValues(), not(hasItem("TestFlow"))); // Checking if both test flow and execution flow is removed via rest @@ -152,7 +151,7 @@ public class FlowsTest extends AbstractConsoleTest { //rest: copied flow present assertThat(testRealmResource().flows().getFlows().stream() .map(AuthenticationFlowRepresentation::getAlias). - collect(Collectors.toList()), hasItem(getLastFlowFromREST().getAlias())); + collect(Collectors.toList()), hasItem(getFlowFromREST("test copy of browser").getAlias())); } @Test @@ -168,8 +167,9 @@ public class FlowsTest extends AbstractConsoleTest { assertAlertSuccess(); // REST - assertEquals(1, getLastFlowFromREST().getAuthenticationExecutions().size()); - assertEquals("reset-password", getLastFlowFromREST().getAuthenticationExecutions().get(0).getAuthenticator()); + AuthenticationFlowRepresentation flowRest = getFlowFromREST("testFlow"); + assertEquals(1, flowRest.getAuthenticationExecutions().size()); + assertEquals("reset-password", flowRest.getAuthenticationExecutions().get(0).getAuthenticator()); // UI assertEquals("TestFlow", flowsPage.getFlowSelectValue()); @@ -222,10 +222,12 @@ public class FlowsTest extends AbstractConsoleTest { assertTrue(expectedOrder.containsAll(flowsPage.table().getFlowsAliasesWithRequirements().keySet())); //REST - assertEquals("auth-spnego", getLastFlowFromREST().getAuthenticationExecutions().get(0).getAuthenticator()); - assertEquals("auth-cookie", getLastFlowFromREST().getAuthenticationExecutions().get(1).getAuthenticator()); - assertEquals("Copy of browser forms", getLastFlowFromREST().getAuthenticationExecutions().get(2).getFlowAlias()); - assertEquals("identity-provider-redirector", getLastFlowFromREST().getAuthenticationExecutions().get(3).getAuthenticator()); + List executionsRest = + getFlowFromREST("Copy of browser").getAuthenticationExecutions(); + assertEquals("auth-spnego", executionsRest.get(0).getAuthenticator()); + assertEquals("auth-cookie", executionsRest.get(1).getAuthenticator()); + assertEquals("Copy of browser forms", executionsRest.get(2).getFlowAlias()); + assertEquals("identity-provider-redirector", executionsRest.get(3).getAuthenticator()); flowsPage.clickDelete(); modalDialog.confirmDeletion(); } @@ -252,8 +254,7 @@ public class FlowsTest extends AbstractConsoleTest { assertTrue(expectedOrder.containsAll(flowsPage.table().getFlowsAliasesWithRequirements().values())); //REST: - List browserFlow = testRealmResource().flows() - .getFlows().get(0).getAuthenticationExecutions(); + List browserFlow = getFlowFromREST("browser").getAuthenticationExecutions(); assertEquals("DISABLED", browserFlow.get(0).getRequirement()); assertEquals("ALTERNATIVE", browserFlow.get(1).getRequirement()); assertEquals("ALTERNATIVE", browserFlow.get(2).getRequirement()); @@ -289,16 +290,22 @@ public class FlowsTest extends AbstractConsoleTest { assertTrue(expectedOrder.containsAll(flowsPage.table().getFlowsAliasesWithRequirements().keySet())); //REST - assertEquals("identity-provider-redirector", getLastFlowFromREST().getAuthenticationExecutions().get(0).getAuthenticator()); - String tmpFlowAlias = getLastFlowFromREST().getAuthenticationExecutions().get(1).getFlowAlias(); + List executionsRest = + getFlowFromREST("Copy of browser").getAuthenticationExecutions(); + assertEquals("identity-provider-redirector", executionsRest.get(0).getAuthenticator()); + String tmpFlowAlias = executionsRest.get(1).getFlowAlias(); assertEquals("Copy of browser forms", tmpFlowAlias); assertEquals("Username Password Form", testRealmResource().flows().getExecutions(tmpFlowAlias).get(0).getDisplayName()); assertEquals("nestedFlow", testRealmResource().flows().getExecutions(tmpFlowAlias).get(2).getDisplayName()); } - private AuthenticationFlowRepresentation getLastFlowFromREST() { - List allFlows = testRealmResource().flows().getFlows(); - return (AuthenticationFlowRepresentation) CollectionUtils. - get(allFlows, (allFlows.size() - 1)); + private AuthenticationFlowRepresentation getFlowFromREST(String alias) { + Optional flow = testRealmResource() + .flows() + .getFlows() + .stream() + .filter(f -> f.getAlias().equals(alias)) + .findFirst(); + return flow.isPresent() ? flow.get() : null; } } diff --git a/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/clients/AbstractClientTest.java b/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/clients/AbstractClientTest.java index 559ba28823..103f7130d4 100644 --- a/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/clients/AbstractClientTest.java +++ b/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/clients/AbstractClientTest.java @@ -87,7 +87,6 @@ public abstract class AbstractClientTest extends AbstractConsoleTest { attributes.put(SAML_SIGNATURE_ALGORITHM, "RSA_SHA256"); attributes.put(SAML_FORCE_NAME_ID_FORMAT, "false"); attributes.put(SAML_NAME_ID_FORMAT, "username"); - attributes.put(SAML_ONETIMEUSE_CONDITION, "true"); return attributes; }