Example usage for org.springframework.mock.web MockHttpServletResponse getForwardedUrl

List of usage examples for org.springframework.mock.web MockHttpServletResponse getForwardedUrl

Introduction

In this page you can find the example usage for org.springframework.mock.web MockHttpServletResponse getForwardedUrl.

Prototype

@Nullable
    public String getForwardedUrl() 

Source Link

Usage

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());
}