/** * {@inheritDoc} */ @Override public String getHeader(final String name) { return headers.getHeader(name); }
/** * {@inheritDoc} */ @Override public String getContentType() { return headers.getHeader(Headers.HEADER_CONTENT_TYPE); }
/** * {@inheritDoc} */ @Override public String getContentType() { return headers.getHeader(Headers.HEADER_CONTENT_TYPE); }
private boolean isMultipartRequest(final Headers headers) { return headers.containsHeader(Headers.HEADER_CONTENT_TYPE) && headers.getHeader(Headers.HEADER_CONTENT_TYPE).toLowerCase() .startsWith(MULTIPART_FORM_DATA_HEADER_START); }
private Map<String, Cookie> getCookies(final Headers headers) { if (headers.containsHeader(Headers.HEADER_COOKIE)) { try { return cookieParser.parse(headers.getHeader(Headers.HEADER_COOKIE)); } catch (MalformedInputException e) { // Returns an empty map } } return new HashMap<>(); }
/** * Tells whether the transfer encoding is chunked. * * @return */ private boolean isTransferChunked() { if (!getHeaders().containsHeader(Headers.HEADER_TRANSFER_ENCODING) || getHeaders().containsHeader(Headers.HEADER_CONTENT_LENGTH)) { return false; } return getHeaders().getHeader(Headers.HEADER_TRANSFER_ENCODING).equalsIgnoreCase(TRANSFER_ENCODING_CHUNKED); }
@Test public void shouldParseAndLtrimHeaders() throws MalformedInputException { Headers headers = headersParser.parse("Cookie: ABCD\r\nTest: XYZ\r\nServer: 1"); assertThat(headers.containsHeader("Cookie"), is(true)); assertThat(headers.containsHeader("Test"), is(true)); assertThat(headers.containsHeader("Server"), is(true)); assertThat(headers.getHeader("Cookie"), is("ABCD")); assertThat(headers.getHeader("Test"), is("XYZ")); assertThat(headers.getHeader("Server"), is("1")); assertThat(headers.getHeader("Non-existent"), is(nullValue())); }
@Test public void shouldParseWrongMultilineHeaderWithSingleLeadingSpace() throws MalformedInputException { Headers headers = headersParser.parse(" Word-Of-The-Day: The Fox Jumps Over\r\n the\r\n brown dog.\r\nCookie: ABCD"); assertThat(headers.getHeader("Word-Of-The-Day"), is(nullValue())); assertThat(headers.containsHeader("Cookie"), is(true)); assertThat(headers.getHeader("Cookie"), is("ABCD")); }
@Test public void shouldParseWithoutLeadingSpace() throws MalformedInputException { Headers headers = headersParser.parse("COOKIE:ABCD\r\nTEST:XYZ\r\nSERVER:1"); assertThat(headers.containsHeader("Cookie"), is(true)); assertThat(headers.containsHeader("Test"), is(true)); assertThat(headers.containsHeader("Server"), is(true)); assertThat(headers.getHeader("Cookie"), is("ABCD")); assertThat(headers.getHeader("Test"), is("XYZ")); assertThat(headers.getHeader("Server"), is("1")); }
@Test public void shouldParseMultilineHeaderWithSingleLeadingSpace() throws MalformedInputException { Headers headers = headersParser.parse("Word-Of-The-Day: The Fox Jumps Over\r\n the\r\n brown dog.\r\nAnother: Another\r\n multiline\r\n header\r\nCookie: ABCD"); assertThat(headers.containsHeader("Word-Of-The-Day"), is(true)); assertThat(headers.containsHeader("Another"), is(true)); assertThat(headers.getHeader("Word-Of-The-Day"), is("The Fox Jumps Over the brown dog.")); assertThat(headers.getHeader("Another"), is("Another multiline header")); assertThat(headers.containsHeader("Cookie"), is(true)); assertThat(headers.getHeader("Cookie"), is("ABCD")); }
@Test public void shouldIgnoreMultipleEmptyNewlines() throws MalformedInputException { Headers headers = headersParser.parse("Cookie: ABCD\r\n\r\n\r\nTest: XYZ\r\nServer: 1\r\n\r\n\r\n\r\n"); assertThat(headers.containsHeader("Cookie"), is(true)); assertThat(headers.containsHeader("Test"), is(true)); assertThat(headers.containsHeader("Server"), is(true)); assertThat(headers.getHeader("Cookie"), is("ABCD")); assertThat(headers.getHeader("Test"), is("XYZ")); assertThat(headers.getHeader("Server"), is("1")); }
@Test public void shouldSetAndGetHeadersCaseInsensitive() { headers.setHeader("Cookie", "ABCD"); assertThat(headers.getHeader("COOKIE"), is("ABCD")); }
@Test public void shouldParseCaseInsensitiveHeaderNames() throws MalformedInputException { Headers headers = headersParser.parse("COOKIE: ABCD\r\nTEST: XYZ\r\nSERVER: 1"); assertThat(headers.containsHeader("Cookie"), is(true)); assertThat(headers.containsHeader("Test"), is(true)); assertThat(headers.containsHeader("Server"), is(true)); assertThat(headers.getHeader("Cookie"), is("ABCD")); assertThat(headers.getHeader("Test"), is("XYZ")); assertThat(headers.getHeader("Server"), is("1")); }
@Test public void shouldParseMultilineHeaderWithSingleLeadingTab() throws MalformedInputException { Headers headers = headersParser.parse("Word-Of-The-Day: The Fox Jumps Over\r\n\tthe\r\n\t brown dog.\r\nCookie: ABCD"); assertThat(headers.containsHeader("Word-Of-The-Day"), is(true)); assertThat(headers.getHeader("Word-Of-The-Day"), is("The Fox Jumps Over the brown dog.")); assertThat(headers.containsHeader("Cookie"), is(true)); assertThat(headers.getHeader("Cookie"), is("ABCD")); }
@Test public void shouldSetHeadersProperly() { httpServletResponseImpl.setHeader("StringValue", "value"); httpServletResponseImpl.setIntHeader("IntValue", 1); assertThat(httpServletResponseImpl.getHeaders().getHeader("StringValue"), is("value")); assertThat(httpServletResponseImpl.getHeaders().getHeader("IntValue"), is("1")); } }
@Test public void shouldSetLatestValueToTheHeader() { headers.setHeader("Cookie", "ABCD"); assertThat(headers.keySet().size(), is(1)); headers.setHeader("COOKIE", "1234"); assertThat(headers.keySet().size(), is(1)); assertThat(headers.getHeader("Cookie"), is("1234")); } }
@Test public void shouldParseColonValue() throws MalformedInputException { Headers headers = headersParser.parse("Cookie: ABCD:XYZ"); assertThat(headers.containsHeader("Cookie"), is(true)); assertThat(headers.getHeader("Cookie"), is("ABCD:XYZ")); }
@Test public void shouldParseMultiValues() throws MalformedInputException { Headers headers = headersParser.parse("Accept: application/xml\r\nAccept: application/json\r\n"); assertThat(headers.containsHeader("Accept"), is(true)); assertThat(headers.getHeader("Accept"), is("application/xml,application/json")); } }
@Test public void shouldRedirectProperly() throws IOException { String url = "/SomeUrl"; httpServletResponseImpl.sendRedirect(url); assertThat(httpServletResponseImpl.getStatus(), is("HTTP/1.1 301 Moved Permanently")); assertThat(httpServletResponseImpl.getHeaders().getHeader(Headers.HEADER_LOCATION), is(url)); }