List of usage examples for org.springframework.mock.web MockHttpServletResponse getForwardedUrl
@Nullable
public String getForwardedUrl()
From source file:org.springframework.test.web.servlet.htmlunit.MockMvcWebConnection.java
public WebResponse getResponse(WebRequest webRequest) throws IOException { long startTime = System.currentTimeMillis(); HtmlUnitRequestBuilder requestBuilder = new HtmlUnitRequestBuilder(this.sessions, this.webClient, webRequest);/*from www. j a v a 2 s .c o m*/ requestBuilder.setContextPath(this.contextPath); MockHttpServletResponse httpServletResponse = getResponse(requestBuilder); String forwardedUrl = httpServletResponse.getForwardedUrl(); while (forwardedUrl != null) { requestBuilder.setForwardPostProcessor(new ForwardRequestPostProcessor(forwardedUrl)); httpServletResponse = getResponse(requestBuilder); forwardedUrl = httpServletResponse.getForwardedUrl(); } storeCookies(webRequest, httpServletResponse.getCookies()); return new MockWebResponseBuilder(startTime, webRequest, httpServletResponse).build(); }
From source file:org.craftercms.security.authorization.impl.AccessDeniedHandlerImplTest.java
@Test public void testForwardToErrorPage() throws Exception { handler.setErrorPageUrl(ERROR_PAGE_URL); MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); RequestContext context = new RequestContext(request, response); handler.handle(context, new AccessDeniedException("")); assertEquals(ERROR_PAGE_URL, response.getForwardedUrl()); assertEquals(HttpServletResponse.SC_FORBIDDEN, response.getStatus()); }
From source file:com.programmingchronicles.tdd.web.addressbook.TestAddContactController.java
/** * Test del HTTP Get que muestra el formulario. * * @throws ServletException/* www . j a v a 2 s.c o m*/ * @throws IOException */ @Test public void testDoGetShowForm() throws ServletException, IOException { // Fakes de los parametros del doGet y doPost que amplian la interfaz // estandar permitiendo verificaciones sencillas por estado. // // Se utilizan los mocks de Spring Test Utilities. MockHttpServletRequest fakeRequest = new MockHttpServletRequest(); MockHttpServletResponse fakeResponse = new MockHttpServletResponse(); // Ejecucin del test. controller.doGet(fakeRequest, fakeResponse); // Verifica que el forward se realiza a la vista correcta, usando // las facilidades del Fake que permiten obtener el path del forward, // en lugar de realizar una validacin por interaccin. assertEquals("formViewPath", fakeResponse.getForwardedUrl()); }
From source file:org.openmrs.module.owa.filter.OwaFilterTest.java
/** * Test that the OwaFilter class actually services from the base path defined in the global * property and ignore any other requests. *//*from w w w .j a v a 2 s .com*/ @Test public void testOwaFilterUsesGlobalProperty() throws Exception { OwaFilter owaFilter = new OwaFilter(); owaFilter.init(filterConfig); MockFilterChain mockFilterChain = new MockFilterChain(); MockHttpServletResponse rsp = new MockHttpServletResponse(); // First make sure that it works with the default base URL Context.getAdministrationService() .saveGlobalProperty(new GlobalProperty(AppManager.KEY_APP_BASE_URL, DEFAULT_APP_BASE_URL)); MockHttpServletRequest req = new MockHttpServletRequest("GET", DEFAULT_APP_BASE_URI + SOME_PATH_IN_APP); owaFilter.doFilter(req, rsp, mockFilterChain); Assert.assertEquals(rsp.getStatus(), 200); Assert.assertEquals(FILE_SERVLET_REDIRECT_URL + SOME_PATH_IN_APP, rsp.getForwardedUrl()); // Now try a custom base URL Context.getAdministrationService() .saveGlobalProperty(new GlobalProperty(AppManager.KEY_APP_BASE_URL, SOME_RANDOM_BASE_URL)); mockFilterChain = new MockFilterChain(); req = new MockHttpServletRequest("GET", SOME_RANDOM_BASE_URI + SOME_PATH_IN_APP); rsp = new MockHttpServletResponse(); owaFilter.doFilter(req, rsp, mockFilterChain); Assert.assertEquals(rsp.getStatus(), 200); Assert.assertEquals(FILE_SERVLET_REDIRECT_URL + SOME_PATH_IN_APP, rsp.getForwardedUrl()); // Ensure non-OWA base URLs are ignored req = new MockHttpServletRequest("GET", DEFAULT_APP_BASE_URI + SOME_PATH_IN_APP); // we can reuse this URL because the global property has been reset rsp = new MockHttpServletResponse(); owaFilter.doFilter(req, rsp, mockFilterChain); Assert.assertEquals(rsp.getStatus(), 200); Assert.assertNull(rsp.getForwardedUrl()); }
From source file:com.programmingchronicles.tdd.web.addressbook.TestShowContactsController.java
/** * Test del mtodo doGet, que procesa la peticin. * * <p>/*from www.j av a 2s . c o m*/ * Al ser una arquitectura MVC, lo unico que hay que testear es:<br/> * <ol> * <li> El controlador recibe los parametros. * <li> Construye el modelo de forma adecuada. * <li> Se redirige la peticin a la vista adecuada. * </ol> * </p> * <p> * El controlador se implementar como un Servlet, y la logica se * procesar en un HTTP GET.</p> */ @Test public void testDoGet() throws ServletException, IOException { // Fakes de los parametros del doGet y doPost que amplian la interfaz // estandar permitiendo verificaciones sencillas por estado. // // Se utilizan los mocks de Spring Test Utilities. MockHttpServletRequest fakeRequest = new MockHttpServletRequest(); MockHttpServletResponse fakeResponse = new MockHttpServletResponse(); // Ejecucin del test. controller.doGet(fakeRequest, fakeResponse); // Diseo de nuestra arquitectura MVC: // El servlet (controlador) construye el modelo y lo hace // accesible a la vista, que ser una JSP. // // El modelo se crea como atributos del request (request.setAttribute). // // En este caso aprobechamos los domain objects del sistema. Otros // controladores podran definir modelos propios. Las necesidades // particulares de la logica de presentacin no deben influir en la // lgica de negocio. El modelo es lgica de presentacin, no de // negocio. // El request y response son los parametros de entrada y salida // del mtodo testado, con los fakes ahora podemos hacer verificacin // por estado en lugar de interaccin. // Verifica que el modelo se a creado correctamente. Ahora se puede // verificar por estado, porque sabemos que nuestro fake devuelve // valores reales establecidos con el setAttribute. assertSame(fakeRequest.getAttribute("contacts"), contactList); // Verifica que el forward se realiza a la vista correcta, usando // las facilidades del Fake que permiten obtener el path del forward, // en lugar de realizar una validacin por interaccin. assertEquals("viewPath", fakeResponse.getForwardedUrl()); }
From source file:com.programmingchronicles.tdd.web.addressbook.TestAddContactController.java
/** * Test Http Post: Verifica un post con todos los parametros vacos. * * @throws ServletException/* w w w . ja v a 2s. c o m*/ * @throws IOException */ @Test public void testDoPostNullParams() throws ServletException, IOException { // Fakes de los parametros del doGet y doPost que amplian la interfaz // estandar permitiendo verificaciones sencillas por estado. // // Se utilizan los mocks de Spring Test Utilities. MockHttpServletRequest fakeRequest = new MockHttpServletRequest(); MockHttpServletResponse fakeResponse = new MockHttpServletResponse(); // Ejecucin del test para comprobar que se establece el modelo // en este caso los errores. controller.doPost(fakeRequest, fakeResponse); // Verifica que no se ha intentado aadir el contacto ya que // el nombre es obligatorio. verify(mockAddressbook, never()).addContact(any(Contact.class)); // Verifica que se ha creado un modelo con los errores con un // setAtribute. Decidimos que se introducirn en un Map<String, String>. // Ahora se puede verificar por estado, porque sabemos que nuestro fake // devuelve valores reales establecidos con el setAttribute. Map<String, String> errors = (Map<String, String>) fakeRequest.getAttribute("errors"); assertTrue(errors.containsKey("firstName")); assertFalse(errors.containsKey("surname")); assertFalse(errors.containsKey("birthday")); assertFalse(errors.containsKey("phone")); // IMPORTANTE: // No se han comprobado los textos de error, en un test unitario no se // deben probar la IU. Dichas pruebas estaran en tests de IU (test de sistema). // En caso de error la peticin se debe dirigir a la vista del formulario // de nuevo, que ahora mostrar los campos de entrada erroneos. // Ahora se puede verificar por estado ya que el fake del response nos // permite acceder al path con el que se hizo el forward. assertEquals("formViewPath", fakeResponse.getForwardedUrl()); }