/** * {@inheritDoc} */ @Override public void setHeader(final String name, final String value) { headers.setHeader(name, value); }
/** * {@inheritDoc} */ @Override public void setContentType(final String contentType) { headers.setHeader(Headers.HEADER_CONTENT_TYPE, contentType); }
/** * {@inheritDoc} */ @Override public void setContentLength(final int length) { headers.setHeader(Headers.HEADER_CONTENT_LENGTH, Integer.toString(length)); }
/** * {@inheritDoc} */ @Override public void setContentLength(final long length) { headers.setHeader(Headers.HEADER_CONTENT_LENGTH, Long.toString(length)); }
/** * {@inheritDoc} */ @Override public void setIntHeader(final String name, final int value) { headers.setHeader(name, Integer.toString(value)); }
/** * {@inheritDoc} */ @Override public void sendRedirect(final String location) { this.setStatus(HttpServletResponse.STATUS_MOVED_PERMANENTLY); headers.setHeader(Headers.HEADER_LOCATION, location); }
/** * {@inheritDoc} */ @Override public void setKeepAlive(final boolean keepAlive) { headers.setHeader(Headers.HEADER_CONNECTION, getKeepAliveHeaderValue(keepAlive)); }
/** * {@inheritDoc} */ @Override public void service(final HttpServletRequest request, final HttpServletResponse response) throws ServletException { response.getHeaders().setHeader(HEADER_TRANSFER_ENCODING, "chunked"); PrintWriter printWriter = response.getWriter(); printWriter.print("This is an example of chunked transfer type. "); printWriter.flush(); printWriter.print("Chunked transfer type can be used when the final length of the data is not known."); } }
/** * {@inheritDoc} */ @Override public void serve(final HttpServletResponse response) throws IOException { response.getHeaders().setHeader(Headers.HEADER_ALLOW, allowedMethods); super.serve(response); } }
private void sendRedirectToDirectorySlashedPath(final HttpServletResponseImpl response, final String originalPath) throws IOException { response.setStatus(HttpServletResponse.STATUS_MOVED_PERMANENTLY); response.getHeaders().setHeader(Headers.HEADER_LOCATION, originalPath + "/"); response.flush(); }
@Test public void shouldPreserveOriginalCase() { Headers headers = new Headers(); headers.setHeader("header", "Value"); headers.setHeader("someOtherHeader", "123"); assertThat(headersSerializer.serialize(headers), anyOf( is("someOtherHeader: 123\r\nheader: Value\r\n\r\n"), is("header: Value\r\nsomeOtherHeader: 123\r\n\r\n") )); } }
@Test public void shouldSerializeResponse() { Headers headers = new Headers(); headers.setHeader("Header", "Value"); headers.setHeader("SomeOtherHeader", "123"); assertThat(headersSerializer.serialize(headers), anyOf( is("SomeOtherHeader: 123\r\nHeader: Value\r\n\r\n"), is("Header: Value\r\nSomeOtherHeader: 123\r\n\r\n") )); }
@Test public void shouldAssignNoCookieOnMalformedCookieString() throws Exception { headers.setHeader(Headers.HEADER_COOKIE, "ANYTHING"); when(cookieParser.parse(any(String.class))).thenThrow(new MalformedInputException("ANY")); HttpServletRequestImpl request = factory.createFromSocket(socket); assertThat(request.getCookies().length, is(0)); verify(cookieParser, times(1)).parse(any(String.class)); }
@Test public void shouldParseNumericHeader() { Headers headers = new Headers(); headers.setHeader("intKey", "3333"); headers.setHeader("unableToParseKey", "AAAA"); httpServletRequestImpl = builder.withHeaders(headers).build(); assertThat(httpServletRequestImpl.getIntHeader("missingIntKey"), is(-1)); assertThat(httpServletRequestImpl.getIntHeader("intKey"), is(3333)); assertThat(httpServletRequestImpl.getIntHeader("unableToParseKey"), is(0)); }
@Test public void shouldParseDateHeader() { Headers headers = new Headers(); headers.setHeader("If-Modified-Since", "Thu, 15 Jan 2015 16:30:13 GMT"); headers.setHeader("If-Modified-Since-MALFORMED", "Malformed Value"); httpServletRequestImpl = builder.withHeaders(headers).build(); assertThat(httpServletRequestImpl.getDateHeader("If-Modified-Since"), is(1421339413000L)); assertThat(httpServletRequestImpl.getDateHeader("If-Modified-Since-MALFORMED"), is(-1L)); assertThat(httpServletRequestImpl.getDateHeader("Inexisting"), is(-1L)); }
@Test public void shouldSetAndContainHeadersCaseInsensitive() { headers.setHeader("Cookie", "ABCD"); assertThat(headers.containsHeader("COOKIE"), is(true)); }
@Test public void shouldReturnContentType() { Headers headers = new Headers(); headers.setHeader(Headers.HEADER_CONTENT_TYPE, "SOME_TYPE/TEXT"); httpServletRequestImpl = builder.withHeaders(headers).build(); assertThat(httpServletRequestImpl.getContentType(), is("SOME_TYPE/TEXT")); }