Example usage for org.springframework.mock.web MockHttpServletRequest setContextPath

List of usage examples for org.springframework.mock.web MockHttpServletRequest setContextPath

Introduction

In this page you can find the example usage for org.springframework.mock.web MockHttpServletRequest setContextPath.

Prototype

public void setContextPath(String contextPath) 

Source Link

Usage

From source file:com.boundlessgeo.geoserver.AppIntegrationTest.java

@Test
public void testImportShapefileAsZip() throws Exception {
    Catalog catalog = getCatalog();// w  w  w .  j  a va 2 s  .  c om
    //Test default root of "data"
    RESTUtils.loadMapFromGlobal().remove("root");
    assertNull(catalog.getLayerByName("gs:point"));

    ImportController ctrl = new ImportController(getGeoServer(), applicationContext);

    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setContextPath("/geoserver");
    request.setRequestURI("/geoserver/hello");
    request.setMethod("post");

    createMultiPartFormContent(request, "form-data; name=\"upload\"; filename=\"point.zip\"", "application/zip",
            IOUtils.toByteArray(getClass().getResourceAsStream("point.shp.zip")));

    JSONObj result = ctrl.importFile("gs", request);
    Long id = Long.parseLong(result.str("id"));

    //Wait for the import to complete
    result = pollImport(ctrl, "gs", id, "pending", request);
    assertNotNull(result);
    result = ctrl.update("gs", id, getUpdateTasks(result), request);
    result = pollImport(ctrl, "gs", id, "complete", request);
    assertNotNull(result);

    assertEquals(1, result.array("tasks").size());
    JSONObj obj = result.array("tasks").object(0);

    assertEquals("gs", obj.object("layer").str("workspace"));
    assertEquals("point", obj.object("layer").str("name"));

    LayerInfo l = catalog.getLayerByName("gs:point");
    StoreInfo s = catalog.getStoreByName("gs", "point", StoreInfo.class);
    assertNotNull(l);
    assertNotNull(s);
    //Wait for the taskListener to move the imported file
    Thread.sleep(500);
    assertTrue(new File(catalog.getResourceLoader().getBaseDirectory(), "data/gs/point/point.shp").exists());
    assertTrue(new File(new URL(ResourcePool.getParams(s.getConnectionParameters(), catalog.getResourceLoader())
            .get("url").toString()).getFile()).exists());
    assertEquals(new File(catalog.getResourceLoader().getBaseDirectory(), "data/gs/point").getAbsoluteFile(),
            new File(new URL(ResourcePool.getParams(s.getConnectionParameters(), catalog.getResourceLoader())
                    .get("url").toString()).getFile()).getAbsoluteFile());

    // ensure style in workspace
    StyleInfo style = l.getDefaultStyle();
    assertNotNull(style.getWorkspace());

    //Try to reimport the same store - should succeed
    createMultiPartFormContent(request, "form-data; name=\"upload\"; filename=\"point.zip\"", "application/zip",
            IOUtils.toByteArray(getClass().getResourceAsStream("point.shp.zip")));
    obj = ctrl.importFile("gs", request);

    assertNotNull(obj.get("id"));

}

From source file:com.boundlessgeo.geoserver.AppIntegrationTest.java

@Test
public void testImportShapefilesWithSpaceInName() throws Exception {
    Catalog catalog = getCatalog();/*from  w  w w  .  j a v  a2 s  .c o  m*/
    //Test REST global root
    GeoServerInfo gsInfo = GeoServerExtensions.bean(GeoServer.class).getGlobal();
    SettingsInfo info = gsInfo.getSettings();
    info.getMetadata().put("root",
            catalog.getResourceLoader().findOrCreateDirectory("uploads").getAbsolutePath());
    getGeoServer().save(gsInfo);
    assertNull(catalog.getLayerByName("gs:point_space"));

    ImportController ctrl = new ImportController(getGeoServer(), applicationContext);
    StoreController storeCtrl = new StoreController(getGeoServer());

    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setContextPath("/geoserver");
    request.setRequestURI("/geoserver/hello");
    request.setMethod("post");

    //Import as separate files
    MimeMultipart body = initMultiPartFormContent(request);

    appendMultiPartFormContent(body, "form-data; name=\"upload\"; filename=\"point space.dbf\"",
            "application/octet-stream", IOUtils.toByteArray(getClass().getResourceAsStream("point space.dbf")));
    appendMultiPartFormContent(body, "form-data; name=\"upload\"; filename=\"point space.prj\"",
            "application/octet-stream", IOUtils.toByteArray(getClass().getResourceAsStream("point space.prj")));
    appendMultiPartFormContent(body, "form-data; name=\"upload\"; filename=\"point space.shp\"",
            "application/octet-stream", IOUtils.toByteArray(getClass().getResourceAsStream("point space.shp")));
    appendMultiPartFormContent(body, "form-data; name=\"upload\"; filename=\"point space.shx\"",
            "application/octet-stream", IOUtils.toByteArray(getClass().getResourceAsStream("point space.shx")));

    createMultiPartFormContent(body, request);

    JSONObj result = ctrl.importFile("gs", request);
    Long id = Long.parseLong(result.str("id"));

    //Wait for the import to complete
    result = pollImport(ctrl, "gs", id, "pending", request);
    assertNotNull(result);
    result = ctrl.update("gs", id, getUpdateTasks(result), request);
    result = pollImport(ctrl, "gs", id, "complete", request);
    assertNotNull(result);
    //Apparently the catalog is time-sensitive now...
    Thread.sleep(100);
    LayerInfo l = catalog.getLayerByName("gs:point_20space");
    StoreInfo s = catalog.getStoreByName("gs", "point_space", StoreInfo.class);
    assertNotNull(l);
    assertNotNull(s);
    //Wait for the taskListener to move the imported file
    Thread.sleep(500);
    assertTrue(
            new File(catalog.getResourceLoader().getBaseDirectory(), "uploads/gs/point_space/point space.shp")
                    .exists());
    assertTrue(new File(new URL(ResourcePool.getParams(s.getConnectionParameters(), catalog.getResourceLoader())
            .get("url").toString()).getFile()).exists());
    assertEquals(
            new File(catalog.getResourceLoader().getBaseDirectory(), "uploads/gs/point_space")
                    .getAbsoluteFile(),
            new File(new URL(ResourcePool.getParams(s.getConnectionParameters(), catalog.getResourceLoader())
                    .get("url").toString()).getFile()).getAbsoluteFile());

    StyleInfo style = l.getDefaultStyle();
    assertEquals("point_space", l.getDefaultStyle().getName());
    assertEquals("point_20space", l.getResource().getName());
}

From source file:com.boundlessgeo.geoserver.AppIntegrationTest.java

@Test
public void testImportShapefiles() throws Exception {
    Catalog catalog = getCatalog();//from   w  w w . j  ava  2 s.  c  o m
    catalog.addListener(new UploadDeleteCatalogListener(catalog));
    //Test REST global root
    GeoServerInfo gsInfo = GeoServerExtensions.bean(GeoServer.class).getGlobal();
    SettingsInfo info = gsInfo.getSettings();
    info.getMetadata().put("root",
            catalog.getResourceLoader().findOrCreateDirectory("uploads").getAbsolutePath());
    getGeoServer().save(gsInfo);
    assertNull(catalog.getLayerByName("gs:point"));

    ImportController ctrl = new ImportController(getGeoServer(), applicationContext);
    StoreController storeCtrl = new StoreController(getGeoServer());

    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setContextPath("/geoserver");
    request.setRequestURI("/geoserver/hello");
    request.setMethod("post");

    //Import as separate files
    MimeMultipart body = initMultiPartFormContent(request);

    appendMultiPartFormContent(body, "form-data; name=\"upload\"; filename=\"point.dbf\"",
            "application/octet-stream", IOUtils.toByteArray(getClass().getResourceAsStream("point.dbf")));
    appendMultiPartFormContent(body, "form-data; name=\"upload\"; filename=\"point.prj\"",
            "application/octet-stream", IOUtils.toByteArray(getClass().getResourceAsStream("point.prj")));
    appendMultiPartFormContent(body, "form-data; name=\"upload\"; filename=\"point.shp\"",
            "application/octet-stream", IOUtils.toByteArray(getClass().getResourceAsStream("point.shp")));
    appendMultiPartFormContent(body, "form-data; name=\"upload\"; filename=\"point.shx\"",
            "application/octet-stream", IOUtils.toByteArray(getClass().getResourceAsStream("point.shx")));

    createMultiPartFormContent(body, request);

    JSONObj result = ctrl.importFile("gs", request);
    Long id = Long.parseLong(result.str("id"));

    //Wait for the import to complete
    result = pollImport(ctrl, "gs", id, "pending", request);
    assertNotNull(result);
    result = ctrl.update("gs", id, getUpdateTasks(result), request);
    result = pollImport(ctrl, "gs", id, "complete", request);
    assertNotNull(result);

    assertEquals(1, result.array("tasks").size());
    JSONObj obj = result.array("tasks").object(0);

    assertEquals("gs", obj.object("layer").str("workspace"));
    assertEquals("point", obj.object("layer").str("name"));

    LayerInfo l = catalog.getLayerByName("gs:point");
    StoreInfo s = catalog.getStoreByName("gs", "point", StoreInfo.class);
    assertNotNull(l);
    assertNotNull(s);
    //Wait for the taskListener to move the imported file
    Thread.sleep(500);
    assertTrue(new File(catalog.getResourceLoader().getBaseDirectory(), "uploads/gs/point/point.shp").exists());
    assertTrue(new File(new URL(ResourcePool.getParams(s.getConnectionParameters(), catalog.getResourceLoader())
            .get("url").toString()).getFile()).exists());
    assertEquals(new File(catalog.getResourceLoader().getBaseDirectory(), "uploads/gs/point").getAbsoluteFile(),
            new File(new URL(ResourcePool.getParams(s.getConnectionParameters(), catalog.getResourceLoader())
                    .get("url").toString()).getFile()).getAbsoluteFile());

    // ensure style in workspace
    StyleInfo style = l.getDefaultStyle();
    assertNotNull(style.getWorkspace());

    //Delete the store and re-upload:
    MockHttpServletRequest deleteRequest = new MockHttpServletRequest();
    deleteRequest.setContextPath("/geoserver");
    deleteRequest.setRequestURI("/geoserver/hello");
    deleteRequest.setMethod("delete");
    storeCtrl.delete("gs", "point", true, deleteRequest);
    assertFalse(
            new File(catalog.getResourceLoader().getBaseDirectory(), "uploads/gs/point/point.shp").exists());
    result = ctrl.importFile("gs", request);
    id = Long.parseLong(result.str("id"));
    //Wait for the import to complete
    result = pollImport(ctrl, "gs", id, "pending", request);
    assertNotNull(result);
    result = ctrl.update("gs", id, getUpdateTasks(result), request);
    result = pollImport(ctrl, "gs", id, "complete", request);
    assertNotNull(result);
    assertEquals(1, result.array("tasks").size());
    assertEquals("COMPLETE", result.array("tasks").object(0).get("status"));
}

From source file:com.boundlessgeo.geoserver.AppIntegrationTest.java

@Test
public void testImportDb() throws Exception {
    Catalog catalog = getCatalog();/*from w w  w  . ja va  2 s.  co m*/
    assertNull(catalog.getLayerByName("gs:point"));

    ImportController ctrl = new ImportController(getGeoServer(), applicationContext);

    try (H2TestData data = new H2TestData()) {

        MockHttpServletRequest request = new MockHttpServletRequest();
        request.setContextPath("/geoserver");
        request.setRequestURI("/geoserver/hello");
        request.setMethod("post");

        JSONObj result = data.createConnectionParameters();
        result = ctrl.importDb("gs", result, request);

        Long id = Long.parseLong(result.str("id"));
        result = pollImport(ctrl, "gs", id, "pending", request);
        assertNotNull(result);
        assertTrue(result.integer("tasksTotal") > 0);
        List<String> names = Arrays.asList(new String[] { "ft1", "ft2", "ft3" });
        JSONArr tasks = new JSONArr();
        for (JSONObj o : result.array("tasks").objects()) {
            if (names.contains(o.get("name")) && o.get("status").equals("READY")) {
                tasks.add(new JSONObj().put("task", o.get("task").toString()));
                assertEquals("table", o.get("type"));
            }
        }
        JSONObj response = new JSONObj();
        response.put("tasks", tasks);

        result = ctrl.update("gs", id, response, request);
        result = pollImport(ctrl, "gs", id, "complete", request);
        assertNotNull(result);

        int complete = 0;
        int ready = 0;
        int no_crs = 0;
        int failed = 0;
        tasks = new JSONArr();

        for (JSONObj o : result.array("tasks").objects()) {
            if (o.get("status").equals("READY")) {
                ready++;
            }
            if (o.get("status").equals("NO_CRS")) {
                no_crs++;
                String srs = "EPSG:4326";
                tasks.add(new JSONObj().put("task", o.get("task").toString()).put("proj",
                        IO.proj(new JSONObj(), CRS.decode(srs), srs)));
            }
            if (o.get("status").equals("COMPLETE")) {
                complete++;
            }
            if (o.get("status").equals("ERROR") || o.get("status").equals("NO_BOUNDS")) {
                failed++;
            }
        }
        assertEquals(0, ready);
        assertEquals(1, complete);
        assertEquals(2, no_crs);
        assertEquals(0, failed);

        response = new JSONObj();
        response.put("tasks", tasks);

        result = ctrl.update("gs", id, response, request);
        //Wait for the import to complete
        result = pollImport(ctrl, "gs", id, "complete", request);
        assertNotNull(result);

        for (JSONObj o : result.array("tasks").objects()) {
            assertEquals("COMPLETE", o.get("status"));
        }

        //Try to reimport the same store - should fail and return existing store
        result = data.createConnectionParameters();
        result = ctrl.importDb("gs", result, request);

        assertNotNull(result.get("store"));
        assertNull(result.get("id"));
    }
}

From source file:org.cloudfoundry.identity.uaa.login.EmailChangeEmailServiceTest.java

public void testBeginEmailChangeInOtherZone(String zoneName) throws Exception {

    IdentityZone zone = MultitenancyFixture.identityZone("test-zone-id", "test");
    zone.setName(zoneName);//from   w ww.  j  a v a 2  s  .c o  m
    IdentityZoneHolder.set(zone);

    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setScheme("http");
    request.setServerName("test.localhost");
    request.setContextPath("/login");
    ServletRequestAttributes attrs = new ServletRequestAttributes(request);
    RequestContextHolder.setRequestAttributes(attrs);

    ScimUser user = new ScimUser("user-001", "user-name", "test-name", "test-name");
    user.setPrimaryEmail("user@example.com");
    Map<String, String> codeData = new HashMap<>();
    codeData.put("user_id", "user-001");
    codeData.put("client_id", "app");
    codeData.put("redirect_uri", "http://app.com");
    codeData.put("email", "new@example.com");

    String zoneId = IdentityZoneHolder.get().getId();

    when(scimUserProvisioning.retrieve("user-001", zoneId)).thenReturn(user);
    when(scimUserProvisioning.query(anyString(), eq(zoneId)))
            .thenReturn(Collections.singletonList(new ScimUser()));
    String data = JsonUtils.writeValueAsString(codeData);
    when(codeStore.generateCode(eq(data), any(Timestamp.class), eq(EMAIL.name()), anyString())).thenReturn(
            new ExpiringCode("the_secret_code", new Timestamp(System.currentTimeMillis()), data, EMAIL.name()));

    emailChangeEmailService.beginEmailChange("user-001", "user@example.com", "new@example.com", "app",
            "http://app.com");

    verify(codeStore).generateCode(eq(JsonUtils.writeValueAsString(codeData)), any(Timestamp.class),
            eq(EMAIL.name()), eq(zoneId));

    ArgumentCaptor<String> emailBodyArgument = ArgumentCaptor.forClass(String.class);
    Mockito.verify(messageService).sendMessage(eq("new@example.com"), eq(MessageType.CHANGE_EMAIL),
            eq(zoneName + " Email change verification"), emailBodyArgument.capture());

    String emailBody = emailBodyArgument.getValue();

    assertThat(emailBody,
            containsString(String.format("A request has been made to change the email for %s from %s to %s",
                    zoneName, "user@example.com", "new@example.com")));
    assertThat(emailBody, containsString(
            "<a href=\"http://test.localhost/login/verify_email?code=the_secret_code\">Verify your email</a>"));
    assertThat(emailBody, containsString("Thank you,<br />\n    " + zoneName));
}

From source file:org.geogig.geoserver.functional.GeoServerTestSupport.java

/**
 * Issue a POST request to the provided URL with the given file passed as form data.
 *
 * @param resourceUri the url to issue the request to
 * @param formFieldName the form field name for the file to be posted
 * @param file the file to post//from   www  .j  av a2  s. c  om
 *
 * @return the response to the request
 */
public MockHttpServletResponse postFile(String resourceUri, String formFieldName, File file) throws Exception {

    try (FileInputStream fis = new FileInputStream(file)) {
        MockMultipartFile mFile = new MockMultipartFile(formFieldName, fis);
        MockMultipartHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders
                .fileUpload(new URI(resourceUri)).file(mFile);

        MockHttpServletRequest request = requestBuilder.buildRequest(applicationContext.getServletContext());

        /**
         * Duplicated from GeoServerSystemTestSupport#createRequest to do the same work on the
         * MockMultipartHttpServletRequest
         */
        request.setScheme("http");
        request.setServerName("localhost");
        request.setServerPort(8080);
        request.setContextPath("/geoserver");
        request.setRequestURI(
                ResponseUtils.stripQueryString(ResponseUtils.appendPath("/geoserver/", resourceUri)));
        // request.setRequestURL(ResponseUtils.appendPath("http://localhost:8080/geoserver",
        // path ) );
        request.setQueryString(ResponseUtils.getQueryString(resourceUri));
        request.setRemoteAddr("127.0.0.1");
        request.setServletPath(ResponseUtils.makePathAbsolute(ResponseUtils.stripRemainingPath(resourceUri)));
        request.setPathInfo(ResponseUtils.makePathAbsolute(
                ResponseUtils.stripBeginningPath(ResponseUtils.stripQueryString(resourceUri))));
        request.addHeader("Host", "localhost:8080");

        // deal with authentication
        if (username != null) {
            String token = username + ":";
            if (password != null) {
                token += password;
            }
            request.addHeader("Authorization", "Basic " + new String(Base64.encodeBase64(token.getBytes())));
        }

        kvp(request, resourceUri);

        request.setUserPrincipal(null);
        /**
         * End duplication
         */

        return dispatch(request);
    }
}

From source file:org.geoserver.ows.StylePublisherTest.java

private MockHttpServletResponse request(String[] path, String modifiedSince) throws Exception {
    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setContextPath("/geoserver");
    request.setMethod("GET");
    StringBuilder b = new StringBuilder("/geoserver");
    for (int i = 0; i < path.length; i++) {
        b.append('/').append(path[i]);
    }//from  www  .  j  a va  2 s . c  o  m
    String uri = URLEncoder.encode(b.toString(), "UTF-8");
    request.setRequestURI(uri);
    if (modifiedSince != null) {
        request.addHeader("If-Modified-Since", modifiedSince);
    }
    MockHttpServletResponse response = new MockHttpServletResponse();
    publisher.handleRequest(request, response);
    return response;
}

From source file:org.jtalks.jcommune.service.nontransactional.MentionedUsersTest.java

private void setupRequestAttributes() {
    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setScheme("http");
    request.setServerName("localhost");
    request.setServerPort(8080);/*from   w w w . j  a  v a2  s .com*/
    request.setContextPath("/forum");
    RequestContextHolder.setRequestAttributes(new ServletWebRequest(request));
}

From source file:org.jtalks.jcommune.service.transactional.TransactionalUserServiceTest.java

private void boundMockHttpRequestToThread(String contextPath) {
    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setScheme("http");
    request.setServerName("testing.com");
    request.setServerPort(1234);/* w  w  w  .  j  a v a2s . c om*/
    request.setContextPath(contextPath);
    RequestContextHolder.setRequestAttributes(new ServletWebRequest(request));
}

From source file:org.opennms.core.test.rest.AbstractSpringJerseyRestTestCase.java

protected static MockHttpServletRequest createRequest(final ServletContext context, final String requestType,
        final String urlPath, Map<String, String> parameterMap, final String username,
        final Collection<String> roles) {
    final MockHttpServletRequest request = new MockHttpServletRequestThatWorks(context, requestType,
            contextPath + urlPath);/*from www .j a  v a 2  s . c  o m*/
    request.setContextPath(contextPath);
    request.setUserPrincipal(MockUserPrincipal.getInstance());
    MockUserPrincipal.setName(username);
    if (username != null) {
        for (final String role : roles) {
            request.addUserRole(role);
        }
    }
    if (parameterMap != null) {
        for (Entry<String, String> eachEntry : parameterMap.entrySet()) {
            request.addParameter(eachEntry.getKey(), eachEntry.getValue());
        }
    }
    return request;
}