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

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

Introduction

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

Prototype

public void addHeader(String name, Object value) 

Source Link

Document

Add an HTTP header entry for the given name.

Usage

From source file:cc.redpen.server.api.RedPenResourceTest.java

private MockHttpServletRequest constructMockRequest(String method, String requestURI, String acceptHeader,
        String contentType) {//from   ww w .  j av  a 2 s .  c om
    MockHttpServletRequest mockRequest = new MockHttpServletRequest() {
        public String getPathTranslated() {
            return null; // prevent Spring to resolve the file on the filesystem which fails
        }

        @Override
        public <T extends HttpUpgradeHandler> T upgrade(Class<T> aClass) throws IOException, ServletException {
            return null;
        }
    };

    mockRequest.setMethod(method);
    mockRequest.setRequestURI(requestURI);
    mockRequest.setServerPort(8080);
    mockRequest.addHeader("Accept", acceptHeader);
    mockRequest.addHeader("Content-Type", contentType);
    mockRequest.setContentType(contentType);
    return mockRequest;
}

From source file:org.jasig.cas.support.oauth.web.OAuth20ProfileControllerTests.java

@Test
public void verifyOKWithAuthorizationHeader() throws Exception {
    final TicketGrantingTicket ticketGrantingTicket = mock(TicketGrantingTicket.class);
    when(ticketGrantingTicket.isExpired()).thenReturn(false);

    final Service service = new SimpleWebApplicationServiceImpl("id");

    final AccessToken accessToken = mock(AccessToken.class);
    when(accessToken.getId()).thenReturn(AT_ID);
    when(accessToken.getType()).thenReturn(TokenType.ONLINE);
    when(accessToken.getService()).thenReturn(service);
    when(accessToken.getTicketGrantingTicket()).thenReturn(ticketGrantingTicket);

    final CentralOAuthService centralOAuthService = mock(CentralOAuthService.class);
    when(centralOAuthService.getToken(AT_ID, AccessToken.class)).thenReturn(accessToken);

    final ServiceTicket serviceTicket = mock(ServiceTicket.class);
    when(serviceTicket.getId()).thenReturn(ID);
    when(serviceTicket.getService()).thenReturn(service);

    final Map<String, Object> map = new HashMap<>();
    map.put(NAME, VALUE);// w ww  .j av a2  s  . co m
    final List<String> list = Arrays.asList(VALUE, VALUE);
    map.put(NAME2, list);

    final Principal principal = mock(Principal.class);
    when(principal.getId()).thenReturn(ID);
    when(principal.getAttributes()).thenReturn(map);

    final Authentication authentication = mock(Authentication.class);
    when(authentication.getPrincipal()).thenReturn(principal);

    final Assertion assertion = mock(Assertion.class);
    when(assertion.getPrimaryAuthentication()).thenReturn(authentication);

    final CentralAuthenticationService centralAuthenticationService = mock(CentralAuthenticationService.class);
    when(centralAuthenticationService.grantServiceTicket(accessToken.getTicketGrantingTicket().getId(),
            accessToken.getService())).thenReturn(serviceTicket);
    when(centralAuthenticationService.validateServiceTicket(serviceTicket.getId(), serviceTicket.getService()))
            .thenReturn(assertion);

    final MockHttpServletRequest mockRequest = new MockHttpServletRequest("GET",
            CONTEXT + OAuthConstants.PROFILE_URL);
    mockRequest.addHeader("Authorization", OAuthConstants.BEARER_TOKEN + " " + AT_ID);

    final MockHttpServletResponse mockResponse = new MockHttpServletResponse();
    final OAuth20WrapperController oauth20WrapperController = new OAuth20WrapperController();
    oauth20WrapperController.setCentralOAuthService(centralOAuthService);
    oauth20WrapperController.setCentralAuthenticationService(centralAuthenticationService);
    oauth20WrapperController.afterPropertiesSet();

    final ModelAndView modelAndView = oauth20WrapperController.handleRequest(mockRequest, mockResponse);
    assertNull(modelAndView);
    assertEquals(HttpStatus.SC_OK, mockResponse.getStatus());
    assertEquals(CONTENT_TYPE, mockResponse.getContentType());

    final ObjectMapper mapper = new ObjectMapper();

    final String expected = "{\"id\":\"" + ID + "\",\"attributes\":[{\"" + NAME + "\":\"" + VALUE + "\"},{\""
            + NAME2 + "\":[\"" + VALUE + "\",\"" + VALUE + "\"]}]}";
    final JsonNode expectedObj = mapper.readTree(expected);
    final JsonNode receivedObj = mapper.readTree(mockResponse.getContentAsString());
    assertEquals(expectedObj.get("id").asText(), receivedObj.get("id").asText());

    final JsonNode expectedAttributes = expectedObj.get("attributes");
    final JsonNode receivedAttributes = receivedObj.get("attributes");

    assertEquals(expectedAttributes.findValue(NAME).asText(), receivedAttributes.findValue(NAME).asText());
    assertEquals(expectedAttributes.findValues(NAME2), receivedAttributes.findValues(NAME2));
}

From source file:com.tasktop.c2c.server.common.service.tests.http.HttpProxyTest.java

@Test
public void testCookieRequestNonPrefixedHubCookiesFiltered() throws IOException {
    setupMock(HttpStatus.OK);/*from   www . j  a  v a2s . com*/

    MockHttpServletRequest request = new MockHttpServletRequest("GET", "unused");
    MockHttpServletResponse response = new MockHttpServletResponse();

    final String cookieHeaderValue = "$Version=\"1\"; Customer=\"WILE_E_COYOTE\"; $Path=\"/acme1\"; JSESSIONID=\"Rocket_Launcher_0001\"; $Path=\"/acme2\"; SPRING_SECURITY_REMEMBER_ME_COOKIE=\"FedEx\"; $Path=\"/acme\";";
    request.addHeader("Cookie", cookieHeaderValue);

    proxy.proxyRequest("foo", request, response);

    List<String> proxyCookie = getProxyRequestHeaderValues("Cookie");
    Assert.assertNotNull(proxyCookie);
    Assert.assertEquals(1, proxyCookie.size());
    Assert.assertEquals("$Version=\"1\"; Customer=\"WILE_E_COYOTE\"; $Path=\"/acme1\";", proxyCookie.get(0));
    context.assertIsSatisfied();
}

From source file:com.tasktop.c2c.server.common.service.tests.http.HttpProxyTest.java

@Test
public void testCookieRequestNonPrefixedCookiesFiltered3() throws IOException {
    setupMock(HttpStatus.OK);// w  ww.j a va  2  s.c o  m

    MockHttpServletRequest request = new MockHttpServletRequest("GET", "unused");
    MockHttpServletResponse response = new MockHttpServletResponse();

    final String cookieHeaderValue = "$Version=\"1\"; JSESSIONID=\"WILE_E_COYOTE\"; $Path=\"/acme1\"; Part_Number=\"Rocket_Launcher_0001\"; $Path=\"/acme2\"; SPRING_SECURITY_REMEMBER_ME_COOKIE=\"FedEx\"; $Path=\"/acme\"";
    request.addHeader("Cookie", cookieHeaderValue);

    proxy.proxyRequest("foo", request, response);

    List<String> proxyCookie = getProxyRequestHeaderValues("Cookie");
    Assert.assertNotNull(proxyCookie);
    Assert.assertEquals(1, proxyCookie.size());
    Assert.assertEquals("$Version=\"1\"; Part_Number=\"Rocket_Launcher_0001\"; $Path=\"/acme2\";",
            proxyCookie.get(0));
    context.assertIsSatisfied();
}

From source file:com.redblackit.web.server.EchoServletTest.java

/**
 * Do test/*from  ww w  .  j ava  2s  .co  m*/
 *
 * @param method
 * @param hasBody if content should be expected
 */
private void doTest(String method, boolean hasBody) throws Exception {
    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setMethod(method);
    request.setRequestURI(this.requestURI);

    final String msg = "doTest:" + method + ":hasBody=" + hasBody;
    logger.debug(msg + ":this=" + this);

    for (String headerName : headersMap.keySet()) {
        List<String> values = headersMap.get(headerName);
        if (values.size() == 1) {
            request.addHeader(headerName, values.get(0));
        } else {
            request.addHeader(headerName, values);
        }
        Enumeration<String> headerValues = request.getHeaders(headerName);
        int hi = 0;
        while (headerValues.hasMoreElements()) {
            logger.debug(msg + "request:header[" + headerName + "," + hi + "]=" + headerValues.nextElement());
            ++hi;
        }

        Assert.assertTrue(msg + "TEST ERROR:request:header[" + headerName + "]=" + values
                + ":shouldn't be empty (" + values.getClass() + ")", hi > 0);

    }

    int expectedContentLength = 0;
    if (hasBody && body != null && body.length() > 0) {
        request.setContent(body.getBytes());
        expectedContentLength = request.getContentLength();
    }

    MockHttpServletResponse response = new MockHttpServletResponse();
    echoServlet.service(request, response);

    String responseBody = response.getContentAsString();

    Assert.assertEquals("response code:" + response, HttpServletResponse.SC_OK, response.getStatus());
    Assert.assertEquals("requestURI and Location", requestURI, response.getHeader("Location"));

    Map<String, List<String>> responseHeadersMap = new TreeMap<String, List<String>>();
    for (String headerName : response.getHeaderNames()) {
        List<String> values = response.getHeaders(headerName);
        int hi = 0;
        for (String value : values) {
            logger.debug(msg + ":response:header[" + headerName + "," + hi + "]=" + value);
            ++hi;
        }

        if (hi == 0) {
            logger.debug(msg + ":response:header[" + headerName + "]=" + values + ":is empty ("
                    + values.getClass() + ")");
            values = Arrays.asList(new String[] { "" });
        }

        if (!(headerName.equals("Location") || headerName.equals("Content-Length"))) {
            responseHeadersMap.put(headerName, values);
        }
    }

    Assert.assertEquals("headers (excluding Location and Content-Length)", headersMap, responseHeadersMap);
    if (hasBody) {
        Assert.assertEquals("body", (body == null ? "" : body), responseBody);
    } else {
        Assert.assertEquals("body", "", responseBody);
    }

    Assert.assertEquals("contentLength", expectedContentLength, response.getContentLength());

}

From source file:org.geomajas.gwt.server.mvc.GeomajasControllerTest.java

@Test
public void testSerializationPolicy() throws UnsupportedEncodingException, ServletException {
    // create mock context that loads from the classpath
    MockServletConfig config = new MockServletConfig();
    MockHttpServletRequest request = new MockHttpServletRequest(config.getServletContext());
    request.setContentType("text/x-gwt-rpc");
    request.setCharacterEncoding("UTF-8");
    request.setContent(("6|0|10|http://apps.geomajas.org/explorer/be.geosparc.Explorer/"
            + "|54044FB0C988344F1715C8B91330B0A2|org.geomajas.gwt.client.GeomajasService|"
            + "execute|org.geomajas.gwt.client.command.GwtCommand/4093389776|command.configuration.GetMap|"
            + "org.geomajas.command.dto.GetMapConfigurationRequest/104733661|explorer|mainMap|"
            + "ss.TqRPfHFh24NVxB|1|2|3|4|1|5|5|6|7|8|9|0|10|").getBytes("UTF-8"));
    request.addHeader("X-GWT-Permutation", "54044FB0C988344F1715C8B91330B0A2");
    request.addHeader("X-GWT-Module-Base", "http://test/module/");
    MockHttpServletResponse response = new MockHttpServletResponse();
    customController.setServletConfig(config);
    customController.doPost(request, response);
    // expect the message that the type is missing from our policy file
    Assert.assertTrue(response.getContentAsString().contains(
            "Type 'org.geomajas.gwt.client.command.GwtCommand' was not included in the set of types"));
}

From source file:org.geomajas.gwt.server.mvc.GeomajasControllerTest.java

@Test
public void testMockWebContext() throws ServletException, IOException {
    // create mock context that loads from the classpath
    MockServletConfig config = new MockServletConfig();
    MockHttpServletRequest request = new MockHttpServletRequest(config.getServletContext());
    request.setContentType("text/x-gwt-rpc");
    request.setCharacterEncoding("UTF-8");
    request.setContent(("6|0|10|http://apps.geomajas.org/explorer/be.geosparc.Explorer/"
            + "|54044FB0C988344F1715C8B91330B0A2|org.geomajas.gwt.client.GeomajasService|"
            + "execute|org.geomajas.gwt.client.command.GwtCommand/4093389776|command.configuration.GetMap|"
            + "org.geomajas.command.dto.GetMapConfigurationRequest/104733661|explorer|mainMap|"
            + "ss.TqRPfHFh24NVxB|1|2|3|4|1|5|5|6|7|8|9|0|10|").getBytes("UTF-8"));
    request.addHeader("X-GWT-Permutation", "54044FB0C988344F1715C8B91330B0A2");
    request.addHeader("X-GWT-Module-Base", "http://test/module/");
    MockHttpServletResponse response = new MockHttpServletResponse();
    defaultController.setServletConfig(config);
    defaultController.doPost(request, response);
    // expect the message of the out-dated 1.3 policy of GWT
    Assert.assertTrue(response.getContentAsString()
            .contains("Type 'org.geomajas.gwt.client.command.GwtCommand' was not assignable"
                    + " to 'com.google.gwt.user.client.rpc.IsSerializable'"));
}

From source file:org.openmrs.module.webservices.rest.web.v1_0.controller.openmrs1_8.ConceptController1_8Test.java

@Test
public void shouldReturnFullRepXML() throws Exception {
    MockHttpServletRequest request = newGetRequest(getURI() + "/" + getUuid(), new Parameter(
            RestConstants.REQUEST_PROPERTY_FOR_REPRESENTATION, RestConstants.REPRESENTATION_FULL));
    request.addHeader("Accept", "application/xml");

    MockHttpServletResponse result = handle(request);

    String xml = result.getContentAsString();
    printXML(xml);/*from www  .j  av  a  2 s.  co m*/
}

From source file:fr.xebia.servlet.filter.XForwardedFilterTest.java

@Test
public void testInvokeAllProxiesAreInternal() throws Exception {

    // PREPARE/*from ww w  . j a  v  a 2  s .com*/
    XForwardedFilter xforwardedFilter = new XForwardedFilter();
    MockFilterConfig filterConfig = new MockFilterConfig();
    filterConfig.addInitParameter(XForwardedFilter.INTERNAL_PROXIES_PARAMETER,
            "192\\.168\\.0\\.10, 192\\.168\\.0\\.11");
    filterConfig.addInitParameter(XForwardedFilter.TRUSTED_PROXIES_PARAMETER, "proxy1, proxy2, proxy3");
    filterConfig.addInitParameter(XForwardedFilter.REMOTE_IP_HEADER_PARAMETER, "x-forwarded-for");
    filterConfig.addInitParameter(XForwardedFilter.PROXIES_HEADER_PARAMETER, "x-forwarded-by");

    xforwardedFilter.init(filterConfig);
    MockFilterChain filterChain = new MockFilterChain();
    MockHttpServletRequest request = new MockHttpServletRequest();

    request.setRemoteAddr("192.168.0.10");
    request.setRemoteHost("remote-host-original-value");
    request.addHeader("x-forwarded-for", "140.211.11.130, 192.168.0.10, 192.168.0.11");

    // TEST
    xforwardedFilter.doFilter(request, new MockHttpServletResponse(), filterChain);

    // VERIFY
    String actualXForwardedFor = ((HttpServletRequest) filterChain.getRequest()).getHeader("x-forwarded-for");
    assertNull("all proxies are internal, x-forwarded-for must be null", actualXForwardedFor);

    String actualXForwardedBy = ((HttpServletRequest) filterChain.getRequest()).getHeader("x-forwarded-by");
    assertNull("all proxies are internal, x-forwarded-by must be null", actualXForwardedBy);

    String actualRemoteAddr = ((HttpServletRequest) filterChain.getRequest()).getRemoteAddr();
    assertEquals("remoteAddr", "140.211.11.130", actualRemoteAddr);

    String actualRemoteHost = ((HttpServletRequest) filterChain.getRequest()).getRemoteHost();
    assertEquals("remoteHost", "140.211.11.130", actualRemoteHost);
}

From source file:fr.xebia.servlet.filter.XForwardedFilterTest.java

@Test
public void testInvokeUntrustedProxyInTheChain() throws Exception {
    // PREPARE// www .  j a  v  a2 s  .  c  om
    XForwardedFilter xforwardedFilter = new XForwardedFilter();
    MockFilterConfig filterConfig = new MockFilterConfig();
    filterConfig.addInitParameter(XForwardedFilter.INTERNAL_PROXIES_PARAMETER,
            "192\\.168\\.0\\.10, 192\\.168\\.0\\.11");
    filterConfig.addInitParameter(XForwardedFilter.TRUSTED_PROXIES_PARAMETER, "proxy1, proxy2, proxy3");
    filterConfig.addInitParameter(XForwardedFilter.REMOTE_IP_HEADER_PARAMETER, "x-forwarded-for");
    filterConfig.addInitParameter(XForwardedFilter.PROXIES_HEADER_PARAMETER, "x-forwarded-by");

    xforwardedFilter.init(filterConfig);
    MockFilterChain filterChain = new MockFilterChain();
    MockHttpServletRequest request = new MockHttpServletRequest();

    request.setRemoteAddr("192.168.0.10");
    request.setRemoteHost("remote-host-original-value");
    request.addHeader("x-forwarded-for", "140.211.11.130, proxy1, untrusted-proxy, proxy2");

    // TEST
    xforwardedFilter.doFilter(request, new MockHttpServletResponse(), filterChain);

    // VERIFY
    String actualXForwardedFor = ((HttpServletRequest) filterChain.getRequest()).getHeader("x-forwarded-for");
    assertEquals("ip/host before untrusted-proxy must appear in x-forwarded-for", "140.211.11.130, proxy1",
            actualXForwardedFor);

    String actualXForwardedBy = ((HttpServletRequest) filterChain.getRequest()).getHeader("x-forwarded-by");
    assertEquals("ip/host after untrusted-proxy must appear in  x-forwarded-by", "proxy2", actualXForwardedBy);

    String actualRemoteAddr = ((HttpServletRequest) filterChain.getRequest()).getRemoteAddr();
    assertEquals("remoteAddr", "untrusted-proxy", actualRemoteAddr);

    String actualRemoteHost = ((HttpServletRequest) filterChain.getRequest()).getRemoteHost();
    assertEquals("remoteHost", "untrusted-proxy", actualRemoteHost);
}