keycloak-aplcache

Merge pull request #3977 from vmuzikar/KEYCLOAK-4613 KEYCLOAK-4613

3/28/2017 4:34:23 AM

Details

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 46c856e..2882e81 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<UserRepresentation> 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<RealmRepresentation> testRealms) {
-        RealmRepresentation rep = RealmBuilder.create().name("social").build();
+        RealmRepresentation rep = RealmBuilder.create().name(REALM).build();
         List<IdentityProviderRepresentation> 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 ecf69e5..0b02193 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 35b8421..c35fae3 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<AuthenticationExecutionExportRepresentation> 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<AuthenticationExecutionExportRepresentation> browserFlow = testRealmResource().flows()
-                                                                    .getFlows().get(0).getAuthenticationExecutions();
+        List<AuthenticationExecutionExportRepresentation> 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<AuthenticationExecutionExportRepresentation> 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<AuthenticationFlowRepresentation> allFlows = testRealmResource().flows().getFlows();
-        return (AuthenticationFlowRepresentation) CollectionUtils.
-                get(allFlows, (allFlows.size() - 1));
+    private AuthenticationFlowRepresentation getFlowFromREST(String alias) {
+        Optional<AuthenticationFlowRepresentation> 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 559ba28..103f713 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;
     }