keycloak-memoizeit

Merge pull request #1995 from stianst/master Add test to

1/11/2016 6:01:44 AM

Details

diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/AbstractClientTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/AbstractClientTest.java
index 99edd91..52d0bf1 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/AbstractClientTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/AbstractClientTest.java
@@ -16,10 +16,7 @@ import org.keycloak.testsuite.rule.KeycloakRule;
 import org.keycloak.testsuite.rule.WebResource;
 import org.openqa.selenium.WebDriver;
 
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
+import java.util.*;
 
 import static org.junit.Assert.assertArrayEquals;
 
@@ -41,32 +38,37 @@ public abstract class AbstractClientTest {
         keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
             @Override
             public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
-                RealmModel testRealm = manager.createRealm(REALM_NAME);
-                testRealm.setEnabled(true);
-                testRealm.setAccessCodeLifespanUserAction(600);
-                KeycloakModelUtils.generateRealmKeys(testRealm);
-
                 appRealm.getClientByClientId("test-app").setDirectAccessGrantsEnabled(true);
             }
         });
 
         keycloak = Keycloak.getInstance("http://localhost:8081/auth", "master", "admin", "admin", Constants.ADMIN_CLI_CLIENT_ID);
+
+        RealmRepresentation rep = new RealmRepresentation();
+        rep.setRealm(REALM_NAME);
+        rep.setEnabled(true);
+
+        Map<String, String> config = new HashMap<>();
+        config.put("from", "auto@keycloak.org");
+        config.put("host", "localhost");
+        config.put("port", "3025");
+
+        rep.setSmtpServer(config);
+
+        keycloak.realms().create(rep);
+
         realm = keycloak.realm(REALM_NAME);
     }
 
     @After
     public void after() {
-        keycloak.close();
-
-        keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
-            @Override
-            public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
-                RealmModel realm = manager.getRealmByName(REALM_NAME);
-                if (realm != null) {
-                    manager.removeRealm(realm);
-                }
+        for (RealmRepresentation r : keycloak.realms().findAll()) {
+            if (r.getRealm().equals(REALM_NAME)) {
+                keycloak.realm(REALM_NAME).remove();
             }
-        });
+        }
+
+        keycloak.close();
     }
 
     public static <T> void assertNames(List<T> actual, String... expected) {
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/UserTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/UserTest.java
index 0acd7a0..cae756e 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/UserTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/UserTest.java
@@ -4,6 +4,7 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
+import org.keycloak.admin.client.Keycloak;
 import org.keycloak.admin.client.resource.IdentityProviderResource;
 import org.keycloak.admin.client.resource.UserResource;
 import org.keycloak.events.Details;
@@ -11,12 +12,10 @@ import org.keycloak.events.EventType;
 import org.keycloak.models.RealmModel;
 import org.keycloak.models.UserModel;
 import org.keycloak.models.utils.KeycloakModelUtils;
-import org.keycloak.representations.idm.ErrorRepresentation;
-import org.keycloak.representations.idm.FederatedIdentityRepresentation;
-import org.keycloak.representations.idm.IdentityProviderRepresentation;
-import org.keycloak.representations.idm.RealmRepresentation;
-import org.keycloak.representations.idm.UserRepresentation;
+import org.keycloak.representations.idm.*;
 import org.keycloak.services.managers.RealmManager;
+import org.keycloak.services.resources.RealmsResource;
+import org.keycloak.testsuite.Constants;
 import org.keycloak.testsuite.actions.RequiredActionEmailVerificationTest;
 import org.keycloak.testsuite.forms.ResetPasswordTest;
 import org.keycloak.testsuite.pages.*;
@@ -32,6 +31,7 @@ import javax.mail.internet.MimeMultipart;
 import javax.ws.rs.BadRequestException;
 import javax.ws.rs.ClientErrorException;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriBuilder;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -63,18 +63,8 @@ public class UserTest extends AbstractClientTest {
     @WebResource
     protected InfoPage infoPage;
 
-    @Before
-    public void before() {
-        super.before();
-
-        keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
-            @Override
-            public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
-                RealmModel testRealm = manager.getRealm(REALM_NAME);
-                greenMail.configureRealm(testRealm);
-            }
-        });
-    }
+    @WebResource
+    protected LoginPage loginPage;
 
     public String createUser() {
         return createUser("user1", "user1@localhost");
@@ -84,6 +74,7 @@ public class UserTest extends AbstractClientTest {
         UserRepresentation user = new UserRepresentation();
         user.setUsername(username);
         user.setEmail(email);
+        user.setEnabled(true);
 
         Response response = realm.users().create(user);
         String createdId = ApiUtil.getCreatedId(response);
@@ -600,6 +591,28 @@ public class UserTest extends AbstractClientTest {
         }
     }
 
+    @Test
+    public void resetUserPassword() {
+        String userId = createUser("user1", "user1@localhost");
+
+        CredentialRepresentation cred = new CredentialRepresentation();
+        cred.setType(CredentialRepresentation.PASSWORD);
+        cred.setValue("password");
+        cred.setTemporary(false);
+
+        realm.users().get(userId).resetPassword(cred);
+
+        String accountUrl = RealmsResource.accountUrl(UriBuilder.fromUri(Constants.AUTH_SERVER_ROOT)).build(REALM_NAME).toString();
+
+        driver.navigate().to(accountUrl);
+
+        assertEquals("Log in to admin-client-test", driver.getTitle());
+
+        loginPage.login("user1", "password");
+
+        assertEquals("Keycloak Account Management", driver.getTitle());
+    }
+
     private void switchEditUsernameAllowedOn() {
         RealmRepresentation rep = realm.toRepresentation();
         rep.setEditUsernameAllowed(true);
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/rule/AbstractKeycloakRule.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/rule/AbstractKeycloakRule.java
index f4ef632..1999dca 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/rule/AbstractKeycloakRule.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/rule/AbstractKeycloakRule.java
@@ -116,6 +116,7 @@ public abstract class AbstractKeycloakRule extends ExternalResource {
 
         try {
             RealmManager manager = new RealmManager(session);
+            manager.setContextPath("/auth");
 
             RealmModel adminstrationRealm = manager.getRealm(Config.getAdminRealm());
             RealmModel appRealm = manager.getRealm(realmId);
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/rule/KeycloakRule.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/rule/KeycloakRule.java
index 8fc4cd6..ab99b0c 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/rule/KeycloakRule.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/rule/KeycloakRule.java
@@ -69,6 +69,7 @@ public class KeycloakRule extends AbstractKeycloakRule {
 
         try {
             RealmManager manager = new RealmManager(session);
+            manager.setContextPath("/auth");
 
             RealmModel adminstrationRealm = manager.getRealm(Config.getAdminRealm());
             RealmModel appRealm = manager.getRealm("test");