Skip to content

Commit

Permalink
Test clean up
Browse files Browse the repository at this point in the history
Rename tests to avoid confusion with actual integration tests
integration test == test that runs against a running instance of the UAA

Add helper methods for creating and updating clients

active the testzone1 SAML provider at the end of the test
this tests active=false and active=true
  • Loading branch information
fhanik committed Apr 2, 2015
1 parent 878aff0 commit fa70dee
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 18 deletions.
Expand Up @@ -271,6 +271,15 @@ public void testSimpleSamlPhpLoginInTestZone1Works() throws Exception {
assertNotNull(elements);
assertEquals(0, elements.size());

provider.setActive(true);
provider = IntegrationTestUtils.createOrUpdateProvider(zoneAdminToken,baseUrl,provider);
assertNotNull(provider.getId());
webDriver.get(testZone1Url + "/login");
Assert.assertEquals("Cloud Foundry", webDriver.getTitle());
elements = webDriver.findElements(By.xpath("//a[text()='"+identityProviderDefinition.getLinkText()+"']"));
assertNotNull(elements);
assertEquals(1, elements.size());

}

@Test
Expand Down
Expand Up @@ -52,7 +52,7 @@
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
import static org.springframework.util.StringUtils.isEmpty;

public class AccountsControllerIntegrationTest extends TestClassNullifier {
public class AccountsControllerMockMvcTests extends TestClassNullifier {

XmlWebApplicationContext webApplicationContext;

Expand Down Expand Up @@ -300,7 +300,7 @@ public void testCreatingAnAccountInAnotherZoneWithClientRedirect() throws Except
identityZone.setSubdomain("mysubdomain");
identityZone.setName("myzonename");
identityZone.setId(new RandomValueStringGenerator().generate());


BaseClientDetails clientDetails = new BaseClientDetails();
clientDetails.setClientId("myzoneclient");
Expand Down
Expand Up @@ -68,7 +68,7 @@
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.support.XmlWebApplicationContext;

public class LoginMockMvcIntegrationTests extends TestClassNullifier {
public class LoginMockMvcTests extends TestClassNullifier {

private static MockEnvironment mockEnvironment = new MockEnvironment();

Expand Down
Expand Up @@ -14,23 +14,10 @@

package org.cloudfoundry.identity.uaa.mock.util;

import java.util.Arrays;
import java.util.Collections;
import java.util.UUID;

import static org.springframework.http.MediaType.APPLICATION_JSON;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import org.cloudfoundry.identity.uaa.rest.SearchResults;
import org.codehaus.jackson.type.TypeReference;
import org.junit.Assert;
import org.apache.commons.codec.binary.Base64;
import org.cloudfoundry.identity.uaa.authentication.Origin;
import org.cloudfoundry.identity.uaa.authentication.UaaPrincipal;
import org.cloudfoundry.identity.uaa.rest.SearchResults;
import org.cloudfoundry.identity.uaa.scim.ScimGroup;
import org.cloudfoundry.identity.uaa.scim.ScimGroupMember;
import org.cloudfoundry.identity.uaa.scim.ScimUser;
Expand All @@ -47,6 +34,8 @@
import org.cloudfoundry.identity.uaa.zone.IdentityZoneSwitchingFilter;
import org.cloudfoundry.identity.uaa.zone.MultitenancyFixture;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
import org.junit.Assert;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ConfigurableApplicationContext;
Expand All @@ -68,6 +57,17 @@
import org.springframework.util.StringUtils;
import org.springframework.web.util.UriComponentsBuilder;

import java.util.Arrays;
import java.util.Collections;
import java.util.UUID;

import static org.springframework.http.MediaType.APPLICATION_JSON;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

public class MockMvcUtils {
private final ObjectMapper objectMapper = new ObjectMapper();

Expand Down Expand Up @@ -143,6 +143,7 @@ public IdentityZoneCreationResult createOtherIdentityZoneAndReturnResult(String
// use that user to create an admin client in the new zone
String zoneAdminAuthcodeToken = getUserOAuthAccessTokenAuthCode(mockMvc, "identity", "identitysecret",
marissa.getId(), "marissa", "koala", zoneAdminScope);

mockMvc.perform(post("/oauth/clients")
.header("Authorization", "Bearer " + zoneAdminAuthcodeToken)
.header("X-Identity-Zone-Id", identityZone.getId())
Expand Down Expand Up @@ -250,20 +251,44 @@ public ScimGroup updateGroup(MockMvc mockMvc, String accessToken, ScimGroup grou
.andReturn().getResponse().getContentAsByteArray(),
ScimGroup.class);
}
public BaseClientDetails createClient(MockMvc mockMvc, String accessToken, BaseClientDetails clientDetails) throws Exception {
return createClient(mockMvc, accessToken, clientDetails, IdentityZone.getUaa());
}

public BaseClientDetails createClient(MockMvc mockMvc, String accessToken, BaseClientDetails clientDetails)
public BaseClientDetails createClient(MockMvc mockMvc, String accessToken, BaseClientDetails clientDetails, IdentityZone zone)
throws Exception {
MockHttpServletRequestBuilder createClientPost = post("/oauth/clients")
.header("Authorization", "Bearer " + accessToken)
.accept(APPLICATION_JSON)
.contentType(APPLICATION_JSON)
.content(new ObjectMapper().writeValueAsString(clientDetails));
if (! zone.equals(IdentityZone.getUaa())) {
createClientPost = createClientPost.header(IdentityZoneSwitchingFilter.HEADER, zone.getId());
}
return new ObjectMapper().readValue(
mockMvc.perform(createClientPost)
.andExpect(status().isCreated())
.andReturn().getResponse().getContentAsByteArray(), BaseClientDetails.class);
}

public BaseClientDetails updateClient(MockMvc mockMvc, String accessToken, BaseClientDetails clientDetails, IdentityZone zone)
throws Exception {
MockHttpServletRequestBuilder updateClientPut =
put("/oauth/clients/" + clientDetails.getClientId())
.header("Authorization", "Bearer " + accessToken)
.accept(APPLICATION_JSON)
.contentType(APPLICATION_JSON)
.content(new ObjectMapper().writeValueAsString(clientDetails));
if (! zone.equals(IdentityZone.getUaa())) {
updateClientPut = updateClientPut.header(IdentityZoneSwitchingFilter.HEADER, zone.getId());
}

return new ObjectMapper().readValue(
mockMvc.perform(updateClientPut)
.andExpect(status().isOk())
.andReturn().getResponse().getContentAsByteArray(), BaseClientDetails.class);
}

public String getZoneAdminToken(MockMvc mockMvc, String adminToken, String zoneId) throws Exception {
ScimUser user = new ScimUser();
user.setUserName(new RandomValueStringGenerator().generate());
Expand Down

0 comments on commit fa70dee

Please sign in to comment.