List of usage examples for org.springframework.mock.web MockHttpServletRequest setContextPath
public void setContextPath(String contextPath)
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; }