KEYCLOAK-64 KEYCLOAK-246 Updated social to use update profile required action instead of registration form. Fixed Google provider

This commit is contained in:
Stian Thorgersen committed 2014-01-16 12:52:46 +00:00
1 parent 9143901ec6
commit dcfb83b0f2
37 files changed
+544 -302

No files matched your search

@@ -42,7 +42,7 @@ public class DummySocial implements SocialProvider {
throw new SocialProviderException("Invalid state");
}
String username = callback.getQueryParam("access_token");
String username = callback.getQueryParam("username");
SocialUser user = new SocialUser(username);
user.setEmail(username + "@dummy-social");
user.setUsername(username);
@@ -12,6 +12,7 @@ import java.io.PrintWriter;
import java.net.URI;
import java.nio.charset.Charset;
import java.util.List;
import java.util.UUID;
public class DummySocialServlet extends HttpServlet {
@@ -31,7 +32,6 @@ public class DummySocialServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String accessToken = req.getParameter("username");
String state = null;
String redirectUri = null;
@@ -50,7 +50,7 @@ public class DummySocialServlet extends HttpServlet {
}
}
String redirect = redirectUri + "?access_token=" + accessToken + "&token_type=bearer&state=" + state;
String redirect = redirectUri + "?username=" + req.getParameter("username") + "&state=" + state + "&code=" + UUID.randomUUID().toString();
resp.sendRedirect(redirect);
}
@@ -59,6 +59,18 @@ public class LoginUpdateProfilePage extends AbstractPage {
return loginErrorMessage != null ? loginErrorMessage.getText() : null;
}
public String getFirstName() {
return firstNameInput.getAttribute("value");
}
public String getLastName() {
return lastNameInput.getAttribute("value");
}
public String getEmail() {
return emailInput.getAttribute("value");
}
public boolean isCurrent() {
return driver.getTitle().equals("Update Account Information");
}
@@ -35,6 +35,7 @@ import org.keycloak.testsuite.OAuthClient.AccessTokenResponse;
import org.keycloak.testsuite.pages.AppPage;
import org.keycloak.testsuite.pages.AppPage.RequestType;
import org.keycloak.testsuite.pages.LoginPage;
import org.keycloak.testsuite.pages.LoginUpdateProfilePage;
import org.keycloak.testsuite.pages.RegisterPage;
import org.keycloak.testsuite.rule.KeycloakRule;
import org.keycloak.testsuite.rule.KeycloakRule.KeycloakSetup;
@@ -55,7 +56,7 @@ public class SocialLoginTest {
@Override
public void config(RealmManager manager, RealmModel defaultRealm, RealmModel appRealm) {
appRealm.setSocial(true);
appRealm.setAutomaticRegistrationAfterSocialLogin(true);
appRealm.setUpdateProfileOnInitialSocialLogin(false);
HashMap<String, String> socialConfig = new HashMap<String, String>();
socialConfig.put("dummy.key", "1234");
@@ -77,7 +78,7 @@ public class SocialLoginTest {
protected LoginPage loginPage;
@WebResource
protected RegisterPage registerPage;
protected LoginUpdateProfilePage profilePage;
@WebResource
protected OAuthClient oauth;
@@ -106,11 +107,11 @@ public class SocialLoginTest {
}
@Test
public void registerRequired() {
public void profileUpdateRequired() {
keycloakRule.configure(new KeycloakSetup() {
@Override
public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
appRealm.setAutomaticRegistrationAfterSocialLogin(false);
appRealm.setUpdateProfileOnInitialSocialLogin(true);
}
});
@@ -122,21 +123,20 @@ public class SocialLoginTest {
driver.findElement(By.id("username")).sendKeys("dummy-user-reg");
driver.findElement(By.id("submit")).click();
registerPage.isCurrent();
profilePage.isCurrent();
Assert.assertEquals("", registerPage.getFirstName());
Assert.assertEquals("", registerPage.getLastName());
Assert.assertEquals("dummy-user-reg@dummy-social", registerPage.getEmail());
Assert.assertEquals("dummy-user-reg", registerPage.getUsername());
Assert.assertEquals("", profilePage.getFirstName());
Assert.assertEquals("", profilePage.getLastName());
Assert.assertEquals("dummy-user-reg@dummy-social", profilePage.getEmail());
registerPage.register("Dummy", "User", "dummy-user-reg@dummy-social", "dummy-user-reg", "password", "password");
profilePage.update("Dummy", "User", "dummy-user-reg@dummy-social");
Assert.assertEquals(RequestType.AUTH_RESPONSE, appPage.getRequestType());
} finally {
keycloakRule.configure(new KeycloakSetup() {
@Override
public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
appRealm.setAutomaticRegistrationAfterSocialLogin(true);
appRealm.setUpdateProfileOnInitialSocialLogin(false);
}
});
}