@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(expected = MalformedInputException.class) public void shouldThrowMalformedInputExceptionOnInvalidStatus() throws MalformedInputException { Parser<RequestStatus> requestStatusParser = new RequestStatusParser(); requestStatusParser.parse("GET HTTP/1.1"); } }
@Test public void shouldParseStatusString() throws MalformedInputException { Parser<RequestStatus> requestStatusParser = new RequestStatusParser(); RequestStatus requestStatus = requestStatusParser.parse("GET /home?param1=ABC¶m2=123 HTTP/1.1"); assertThat(requestStatus.getMethod(), is("GET")); assertThat(requestStatus.getQueryString(), is("param1=ABC¶m2=123")); assertThat(requestStatus.getUri(), is("/home")); assertThat(requestStatus.getProtocol(), is("HTTP/1.1")); }
@Test public void shouldIgnoreTrailingCharacters() throws MalformedInputException { Parser<RequestStatus> requestStatusParser = new RequestStatusParser(); RequestStatus requestStatus = requestStatusParser.parse("GET /home?param1=ABC¶m2=123 HTTP/1.1\r\n"); assertThat(requestStatus.getMethod(), is("GET")); assertThat(requestStatus.getQueryString(), is("param1=ABC¶m2=123")); assertThat(requestStatus.getUri(), is("/home")); assertThat(requestStatus.getProtocol(), is("HTTP/1.1")); }
public ServiceContainer(final ServerConfig serverConfig) { HeadersParser headersParser = new HeadersParser(); requestWrapperFactory = new HttpServletRequestImplFactory(headersParser, new QueryStringParser(), new RequestStatusParser(), new CookieParser(), new MultipartHeadersPartParser(headersParser), serverConfig.getTempPath() ); responseFactory = new HttpServletResponseImplFactory( new HeadersSerializer(), new CookieHeaderSerializer(new DateProvider()), new StreamHelper( new RangeHelper(), new RangePartHeaderSerializer() ) ); threadPoolExecutor = new ThreadPoolExecutor(1, serverConfig.getMaxServerThreads(), DEFAULT_TIME_UNITS, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(serverConfig.getMaxServerThreads() * MAX_THREADS_MULTIPLIER), Executors.defaultThreadFactory(), new ServiceUnavailableHandler(responseFactory) ); httpErrorHandlerResolver = new HttpErrorHandlerResolverImpl(serverConfig); pathHelper = new PathHelper(); }