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

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

Introduction

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

Prototype

@Override
public Collection<String> getHeaderNames() 

Source Link

Document

Return the names of all specified headers as a Set of Strings.

Usage

From source file:ch.ralscha.extdirectspring.util.ExtDirectSpringUtilTest.java

private static void assertResponse(MockHttpServletResponse response, int noOfHeaders, String etag, int month) {
    assertThat(response.getHeaderNames()).hasSize(noOfHeaders);
    assertThat(response.getHeader("ETag")).isEqualTo(etag);
    assertThat(response.getHeader("Cache-Control")).isEqualTo("public, max-age=" + month * 30 * 24 * 60 * 60);

    Long expiresMillis = (Long) response.getHeaderValue("Expires");
    DateTime expires = new DateTime(expiresMillis, DateTimeZone.UTC);
    DateTime inSixMonths = DateTime.now(DateTimeZone.UTC).plusSeconds(month * 30 * 24 * 60 * 60);
    assertThat(expires.getYear()).isEqualTo(inSixMonths.getYear());
    assertThat(expires.getMonthOfYear()).isEqualTo(inSixMonths.getMonthOfYear());
    assertThat(expires.getDayOfMonth()).isEqualTo(inSixMonths.getDayOfMonth());
    assertThat(expires.getHourOfDay()).isEqualTo(inSixMonths.getHourOfDay());
    assertThat(expires.getMinuteOfDay()).isEqualTo(inSixMonths.getMinuteOfDay());
}

From source file:org.sventon.export.DefaultExportExecutorTest.java

@Test
public void testPrepareResponse() throws Exception {
    final ConfigDirectory configDirectoryMock = createMock(ConfigDirectory.class);
    final DefaultExportExecutor exportExecutor = new DefaultExportExecutor(configDirectoryMock);
    final MockHttpServletRequest request = new MockHttpServletRequest();
    final MockHttpServletResponse response = new MockHttpServletResponse();

    assertEquals(0, response.getHeaderNames().size());
    assertNull(response.getContentType());
    exportExecutor.prepareResponse(request, response, new File("testfile"));
    assertEquals(1, response.getHeaderNames().size());
    assertEquals("attachment; filename=\"testfile\"", response.getHeader(WebUtils.CONTENT_DISPOSITION_HEADER));
    assertEquals(WebUtils.APPLICATION_OCTET_STREAM, response.getContentType());
}

From source file:io.spring.initializr.web.test.MockMvcClientHttpRequestFactory.java

private HttpHeaders getResponseHeaders(MockHttpServletResponse response) {
    HttpHeaders headers = new HttpHeaders();
    for (String name : response.getHeaderNames()) {
        List<String> values = response.getHeaders(name);
        for (String value : values) {
            headers.add(name, value);/* www. ja v  a  2s . c o  m*/
        }
    }
    return headers;
}

From source file:org.ambraproject.wombat.util.HttpMessageUtilTest.java

@Test
public void testCopyResponseWithHeaders() throws IOException {
    byte[] testContent = "Test content".getBytes();

    HttpResponse input = new BasicHttpResponse(null, HttpStatus.OK.value(), "");
    BasicHttpEntity outputEntity = new BasicHttpEntity();
    outputEntity.setContent(new ByteArrayInputStream(testContent));
    input.setEntity(outputEntity);/*w  w  w. j  a  v a 2s .co  m*/
    input.setHeader("includeMe", "foo");
    input.setHeader("excludeMe", "bar");
    input.setHeader("alterMe", "toBeAltered");

    HeaderFilter headerFilter = header -> {
        String name = header.getName();
        if ("includeMe".equalsIgnoreCase(name))
            return header.getValue();
        if ("alterMe".equalsIgnoreCase(name))
            return "altered";
        return null;
    };

    MockHttpServletResponse output = new MockHttpServletResponse();

    copyResponseWithHeaders(input, output, headerFilter);

    assertEquals(output.getContentAsByteArray(), testContent);

    assertEquals(output.getHeaderNames().size(), 2);
    assertEquals(output.getHeaders("includeMe"), ImmutableList.of("foo"));
    assertEquals(output.getHeaders("alterMe"), ImmutableList.of("altered"));
    assertEquals(output.getHeaders("excludeMe"), ImmutableList.of());
}

From source file:ch.ralscha.extdirectspring.controller.ApiControllerWithConfigurationTest.java

private void testGroup1(Configuration config, String fingerprint) throws Exception {
    ApiRequestParams params = ApiRequestParams.builder().apiNs("Ext.ns").actionNs("actionns").group("group1")
            .configuration(config).build();

    doTest("/api-debug-doc.js", params, ApiControllerTest.group1Apis("actionns"));
    doTest("/api-debug.js", params, ApiControllerTest.group1Apis("actionns"));

    if (fingerprint == null) {
        doTest("/api.js", params, ApiControllerTest.group1Apis("actionns"));
    } else {/*from   w  ww .j  a  va2  s  .  c o m*/
        MvcResult result = doTest("/api" + fingerprint + ".js", params,
                ApiControllerTest.group1Apis("actionns"));

        MockHttpServletResponse response = result.getResponse();

        assertThat(response.getHeaderNames()).hasSize(5);
        assertThat(response.getHeader("ETag")).isNotNull();
        assertThat(response.getHeader("Cache-Control")).isEqualTo("public, max-age=" + 6 * 30 * 24 * 60 * 60);

        Long expiresMillis = (Long) response.getHeaderValue("Expires");
        DateTime expires = new DateTime(expiresMillis, DateTimeZone.UTC);
        DateTime inSixMonths = DateTime.now(DateTimeZone.UTC).plusSeconds(6 * 30 * 24 * 60 * 60);
        assertThat(expires.getYear()).isEqualTo(inSixMonths.getYear());
        assertThat(expires.getMonthOfYear()).isEqualTo(inSixMonths.getMonthOfYear());
        assertThat(expires.getDayOfMonth()).isEqualTo(inSixMonths.getDayOfMonth());
        assertThat(expires.getHourOfDay()).isEqualTo(inSixMonths.getHourOfDay());
        assertThat(expires.getMinuteOfDay()).isEqualTo(inSixMonths.getMinuteOfDay());
    }
}

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

/**
 * Do test/*  w w w  . j  a v a  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:com.liferay.document.library.webdav.test.BaseWebDAVTestCase.java

public Tuple service(String method, String path, Map<String, String> headers, byte[] data) {

    WebDAVServlet webDAVServlet = new WebDAVServlet();

    String requestURI = _CONTEXT_PATH + _SERVLET_PATH + _PATH_INFO_PREFACE + path;

    MockHttpServletRequest mockHttpServletRequest = new MockHttpServletRequest(method, requestURI);

    mockHttpServletRequest.setContextPath(_CONTEXT_PATH);
    mockHttpServletRequest.setServletPath(_SERVLET_PATH);
    mockHttpServletRequest.setPathInfo(_PATH_INFO_PREFACE + path);

    try {/*w w  w  . j  a  va 2s .  com*/
        mockHttpServletRequest.setRemoteUser(String.valueOf(TestPropsValues.getUserId()));
    } catch (Exception e) {
        Assert.fail("User ID cannot be initialized");
    }

    if (headers == null) {
        headers = new HashMap<>();
    }

    headers.put(HttpHeaders.USER_AGENT, getUserAgent());

    try {
        throw new Exception();
    } catch (Exception e) {
        StackTraceElement[] stackTraceElements = e.getStackTrace();

        for (StackTraceElement stackTraceElement : stackTraceElements) {
            String methodName = stackTraceElement.getMethodName();

            if (methodName.equals("setUp") || methodName.equals("tearDown") || methodName.startsWith("test")) {

                String testName = StringUtil.extractLast(stackTraceElement.getClassName(), CharPool.PERIOD);

                testName = StringUtil.removeSubstrings(testName, "WebDAV", "Test");

                headers.put("X-Litmus", testName + ": (" + stackTraceElement.getMethodName() + ":"
                        + stackTraceElement.getLineNumber() + ")");

                break;
            }
        }
    }

    if (data != null) {
        mockHttpServletRequest.setContent(data);

        String contentType = headers.remove(HttpHeaders.CONTENT_TYPE);

        if (contentType != null) {
            mockHttpServletRequest.setContentType(contentType);
        } else {
            mockHttpServletRequest.setContentType(ContentTypes.TEXT_PLAIN);
        }
    }

    for (Map.Entry<String, String> entry : headers.entrySet()) {
        String key = entry.getKey();
        String value = entry.getValue();

        mockHttpServletRequest.addHeader(key, value);
    }

    try {
        MockHttpServletResponse mockHttpServletResponse = new MockHttpServletResponse();

        webDAVServlet.service(mockHttpServletRequest, mockHttpServletResponse);

        int statusCode = mockHttpServletResponse.getStatus();
        byte[] responseBody = mockHttpServletResponse.getContentAsByteArray();

        Map<String, String> responseHeaders = new HashMap<>();

        for (String name : mockHttpServletResponse.getHeaderNames()) {
            responseHeaders.put(name, mockHttpServletResponse.getHeader(name));
        }

        return new Tuple(statusCode, responseBody, responseHeaders);
    } catch (Exception e) {
        e.printStackTrace();
    }

    return null;
}

From source file:org.opennms.netmgt.ncs.rest.AbstractSpringJerseyRestTestCase.java

private String stringifyResponse(final MockHttpServletResponse response) {
    final StringBuilder string = new StringBuilder();
    try {/* ww  w. j a v a  2  s. c  o m*/
        string.append("HttpServletResponse[").append("status=").append(response.getStatus()).append(",content=")
                .append(response.getContentAsString()).append(",headers=[");
        boolean first = true;
        for (final Iterator<String> i = response.getHeaderNames().iterator(); i.hasNext(); first = false) {
            if (!first) {
                string.append(",");
            }
            final String name = i.next();
            string.append("name=").append(response.getHeader(name));
        }
        string.append("]").append("]");
    } catch (UnsupportedEncodingException e) {
        s_log.warn("Unable to get response content", e);
    }
    return string.toString();
}

From source file:io.restassured.module.mockmvc.internal.MockMvcRequestSenderImpl.java

private Object assembleHeaders(MockHttpServletResponse response) {
    Collection<String> headerNames = response.getHeaderNames();

    List<Header> headers = new ArrayList<Header>();
    for (String headerName : headerNames) {
        List<String> headerValues = response.getHeaders(headerName);
        for (String headerValue : headerValues) {
            headers.add(new Header(headerName, headerValue));
        }// w ww.  java2s . c  om
    }
    return new Headers(headers);
}

From source file:com.tasktop.c2c.server.common.service.tests.ajp.AjpProxyWebTest.java

@Test
public void testProxyHandlesCookies() throws Exception {
    final String ajpBaseUri = String.format("ajp://localhost:%s", container.getAjpPort());
    Payload payload = new Payload(HttpServletResponse.SC_OK, "some content\none two three\n\nfour");
    payload.getResponseHeaders().put("foo", "bar");
    payload.getSessionVariables().put("s1", "v1");
    TestServlet.setResponsePayload(payload);

    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setMethod("GET");
    request.setRequestURI("/test");
    request.setQueryString("a=b");
    request.setParameter("a", new String[] { "b" });
    request.addHeader("c", "d ef");
    MockHttpServletResponse response = new MockHttpServletResponse();
    proxy.proxyRequest(ajpBaseUri + "/foo", request, response);

    Request firstRequest = null;//from  w w  w .  j ava  2 s  .  com
    for (int i = 0; i < 100; i++) {
        firstRequest = TestServlet.getLastRequest();

        // If our request is not yet there, then pause and retry shortly - proxying is an async process, and this
        // request was sometimes coming back as null which was causing test failures on the first assert below.
        if (firstRequest == null) {
            Thread.sleep(10);
        } else {
            // Got our request, so break now.
            break;
        }
    }

    Assert.assertTrue(firstRequest.isNewSession());
    Assert.assertEquals("v1", firstRequest.getSessionAttributes().get("s1"));

    List<org.apache.commons.httpclient.Cookie> cookies = new ArrayList<org.apache.commons.httpclient.Cookie>();
    for (String headerName : response.getHeaderNames()) {
        if (headerName.equalsIgnoreCase("set-cookie") || headerName.equalsIgnoreCase("set-cookie2")) {
            cookies.addAll(Arrays.asList(new RFC2965Spec().parse("localhost", container.getPort(), "/", false,
                    response.getHeader(headerName).toString())));
        }
    }
    Assert.assertEquals(1, cookies.size());
    Cookie cookie = cookies.get(0);
    Assert.assertEquals("almp.JSESSIONID", cookie.getName());

    MockHttpServletRequest request2 = new MockHttpServletRequest();
    request2.setMethod("GET");
    request2.setRequestURI("/test");
    request2.addHeader("Cookie", cookie.toExternalForm());
    MockHttpServletResponse response2 = new MockHttpServletResponse();

    payload = new Payload(HttpServletResponse.SC_OK, "test");
    TestServlet.setResponsePayload(payload);

    proxy.proxyRequest(ajpBaseUri + "/foo", request2, response2);

    Request secondRequest = TestServlet.getLastRequest();
    Assert.assertFalse(secondRequest.isNewSession());
    Assert.assertEquals(firstRequest.getSessionId(), secondRequest.getSessionId());
    Assert.assertEquals("v1", secondRequest.getSessionAttributes().get("s1"));
}