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

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

Introduction

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

Prototype

@Override
    public Enumeration<String> getHeaders(String name) 

Source Link

Usage

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

/**
 * Do test//from  w w w .  j  a va  2  s  . 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.cateproject.test.functional.mockmvc.HtmlUnitRequestBuilder.java

private void parent(MockHttpServletRequest result, RequestBuilder parent) {
    if (parent == null) {
        return;/*  w ww  . j a  v a 2 s  .c o  m*/
    }
    MockHttpServletRequest parentRequest = parent.buildRequest(result.getServletContext());

    // session
    HttpSession parentSession = parentRequest.getSession(false);
    if (parentSession != null) {
        Enumeration<String> attrNames = parentSession.getAttributeNames();
        while (attrNames.hasMoreElements()) {
            String attrName = attrNames.nextElement();
            Object attrValue = parentSession.getAttribute(attrName);
            result.getSession().setAttribute(attrName, attrValue);
        }
    }

    // header
    Enumeration<String> headerNames = parentRequest.getHeaderNames();
    while (headerNames.hasMoreElements()) {
        String attrName = headerNames.nextElement();
        Enumeration<String> attrValues = parentRequest.getHeaders(attrName);
        while (attrValues.hasMoreElements()) {
            String attrValue = attrValues.nextElement();
            result.addHeader(attrName, attrValue);
        }
    }

    // parameter
    Map<String, String[]> parentParams = parentRequest.getParameterMap();
    for (Map.Entry<String, String[]> parentParam : parentParams.entrySet()) {
        String paramName = parentParam.getKey();
        String[] paramValues = parentParam.getValue();
        result.addParameter(paramName, paramValues);
    }

    // cookie
    Cookie[] parentCookies = parentRequest.getCookies();
    if (parentCookies != null) {
        result.setCookies(parentCookies);
    }

    // request attribute
    Enumeration<String> parentAttrNames = parentRequest.getAttributeNames();
    while (parentAttrNames.hasMoreElements()) {
        String parentAttrName = parentAttrNames.nextElement();
        result.setAttribute(parentAttrName, parentRequest.getAttribute(parentAttrName));
    }
}