/** * {@inheritDoc} */ @Override public void reset() { headers = new Headers(); setKeepAlive(false); isCommitted = false; cookies = new ArrayList<>(); // resetBuffer(); }
/** * Reads and computes headers. * * @param in * @return * @throws IOException */ private Headers computeHeaders(final InputStream in) throws IOException { String headersString = getHeadersString(in); if (headersString.length() > MINUMUM_HEADER_LINE_LENGTH) { try { return headersParser.parse(headersString); } catch (MalformedInputException e) { throw new ProtocolException("Malformed request headers"); } } // TODO Write a test that sends a request containing status line only return new Headers(); }
Headers headers = new Headers();
@Before public void setUp() { headers = new Headers(); }
@Before public void setUp() throws Exception { headers = new Headers(); headersParser = mock(Parser.class); when(headersParser.parse(any(String.class))).thenReturn(headers); cookieParser = mock(Parser.class); factory = new HttpServletRequestImplFactory( headersParser, mock(Parser.class), new RequestStatusParser(), cookieParser, mock(Parser.class), "" ); InputStream inputStream = new ByteArrayInputStream("GET / HTTP/1.0\r\nHeader1: someValue\r\n\r\n".getBytes()); socket = mock(Socket.class); when(socket.getInputStream()).thenReturn(inputStream); when(socket.getInetAddress()).thenReturn(mock(InetAddress.class)); when(socket.getLocalAddress()).thenReturn(mock(InetAddress.class)); when(socket.getRemoteSocketAddress()).thenReturn(new InetSocketAddress(mock(InetAddress.class), 1)); }
@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 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 shouldParseUrlFromHost() { Headers headers = new Headers(); headers.setHeader(Headers.HEADER_HOST, "example.com:3366"); httpServletRequestImpl = builder.withHeaders(headers).build(); assertThat(httpServletRequestImpl.getRequestURL().toString(), is("http://example.com:8080/someuri")); }
@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 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")); }
@Test public void shouldReturnContentLength() { Headers headers = new Headers(); headers.setHeader(Headers.HEADER_CONTENT_LENGTH, "1234"); httpServletRequestImpl = builder.withHeaders(headers).build(); assertThat(httpServletRequestImpl.getContentLength(), is(1234)); }
headers = new Headers(); headers.setHeader(Headers.HEADER_ACCEPT_LANGUAGE, "pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4,ro;q=0.2,ru;q=0.2");