@Test(expected = ProtocolException.class) public void testRequestHttp11HostHeaderAbsent() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); final RequestValidateHost interceptor = new RequestValidateHost(); interceptor.process(request, request.getEntity(), context); }
@Test public void testRequestHttp11HostHeaderPresent() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); request.setHeader(HttpHeaders.HOST, "blah"); final RequestValidateHost interceptor = new RequestValidateHost(); interceptor.process(request, request.getEntity(), context); }
@Test public void testRequestHttp10HostHeaderAbsent() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); request.setVersion(HttpVersion.HTTP_1_0); final RequestValidateHost interceptor = new RequestValidateHost(); interceptor.process(request, request.getEntity(), context); }
@Test public void testRequestConnControlConnectMethod() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("CONNECT", "/"); final RequestConnControl interceptor = new RequestConnControl(); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.CONNECTION); Assert.assertNull(header); }
@Test(expected = ProtocolException.class) public void testRequestHttp11MultipleHostHeaders() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); request.addHeader(HttpHeaders.HOST, "blah"); request.addHeader(HttpHeaders.HOST, "blah"); final RequestValidateHost interceptor = new RequestValidateHost(); interceptor.process(request, request.getEntity(), context); }
@Test public void testRequestContentIgnoreNonenclosingRequests() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("POST", "/"); final RequestContent interceptor = new RequestContent(); interceptor.process(request, request.getEntity(), context); Assert.assertEquals(0, request.getHeaders().length); }
@Test public void testRequestUserAgentMissingUserAgent() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); final RequestUserAgent interceptor = new RequestUserAgent(); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.USER_AGENT); Assert.assertNull(header); }
@Test public void testRequestTargetHostMissingHostHTTP10() throws Exception { final HttpContext context = new BasicHttpContext(null); context.setProtocolVersion(HttpVersion.HTTP_1_0); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); final RequestTargetHost interceptor = new RequestTargetHost(); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.HOST); Assert.assertNull(header); }
@Test public void testRequestConnControlGenerated() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); final RequestConnControl interceptor = new RequestConnControl(); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.CONNECTION); Assert.assertNotNull(header); Assert.assertEquals("keep-alive", header.getValue()); }
@Test public void testRequestExpectContinueZeroContent() throws Exception { final HttpCoreContext context = HttpCoreContext.create(); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("POST", "/"); final String s = ""; final StringEntity entity = new StringEntity(s, StandardCharsets.US_ASCII); request.setEntity(entity); final RequestExpectContinue interceptor = new RequestExpectContinue(); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.EXPECT); Assert.assertNull(header); }
@Test public void testRequestConnControlUpgrade() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); request.addHeader(HttpHeaders.UPGRADE, "HTTP/2"); final RequestConnControl interceptor = new RequestConnControl(); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.CONNECTION); Assert.assertNotNull(header); Assert.assertEquals("upgrade", header.getValue()); }
@Test public void testRequestTargetHostConnectHttp10() throws Exception { final HttpContext context = new BasicHttpContext(null); context.setProtocolVersion(HttpVersion.HTTP_1_0); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("CONNECT", "/"); request.setAuthority(new URIAuthority("somehost", 8080)); final RequestTargetHost interceptor = new RequestTargetHost(); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.HOST); Assert.assertNull(header); }
@Test public void testRequestHttpHostHeader() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); request.setVersion(HttpVersion.HTTP_1_1); request.setHeader(HttpHeaders.HOST, "host:8888"); final RequestValidateHost interceptor = new RequestValidateHost(); interceptor.process(request, request.getEntity(), context); Assert.assertEquals(new URIAuthority("host", 8888), request.getAuthority()); }
@Test public void testRequestTargetHostGenerated() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); request.setAuthority(new URIAuthority("somehost", 8080)); final RequestTargetHost interceptor = new RequestTargetHost(); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.HOST); Assert.assertNotNull(header); Assert.assertEquals("somehost:8080", header.getValue()); }
@Test public void testRequestContentNullTypeAndEncoding() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("POST", "/"); final BasicHttpEntity entity = new BasicHttpEntity(); request.setEntity(entity); final RequestContent interceptor = new RequestContent(); interceptor.process(request, request.getEntity(), context); Assert.assertNull(request.getFirstHeader(HttpHeaders.CONTENT_TYPE)); Assert.assertNull(request.getFirstHeader(HttpHeaders.CONTENT_ENCODING)); }
@Test public void testRequestUserAgentNotGenerated() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); request.addHeader(new BasicHeader(HttpHeaders.USER_AGENT, "whatever")); final RequestUserAgent interceptor = new RequestUserAgent("some agent"); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.USER_AGENT); Assert.assertNotNull(header); Assert.assertEquals("whatever", header.getValue()); }
@Test public void testRequestTargetHostConnectHttp11() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("CONNECT", "/"); request.setAuthority(new URIAuthority("somehost", 8080)); final RequestTargetHost interceptor = new RequestTargetHost(); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.HOST); Assert.assertNotNull(header); Assert.assertEquals("somehost:8080", header.getValue()); }
@Test public void testRequestContentAddHeaders() throws Exception { final RequestContent interceptor = new RequestContent(true); final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("POST", "/"); request.setEntity(new StringEntity("")); interceptor.process(request, request.getEntity(), context); final Header h1 = request.getFirstHeader(HttpHeaders.CONTENT_LENGTH); Assert.assertNotNull(h1); Assert.assertEquals("0", h1.getValue()); final Header h2 = request.getFirstHeader(HttpHeaders.TRANSFER_ENCODING); Assert.assertNull(h2); }
@Test public void testRequestTargetHostNotGenerated() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); request.setAuthority(new URIAuthority("somehost", 8080)); request.addHeader(new BasicHeader(HttpHeaders.HOST, "whatever")); final RequestTargetHost interceptor = new RequestTargetHost(); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.HOST); Assert.assertNotNull(header); Assert.assertEquals("whatever", header.getValue()); }
@Test public void testRequestContentOverwriteHeaders() throws Exception { final RequestContent interceptor = new RequestContent(true); final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("POST", "/"); request.addHeader(new BasicHeader(HttpHeaders.CONTENT_LENGTH, "10")); request.addHeader(new BasicHeader(HttpHeaders.TRANSFER_ENCODING, "whatever")); request.setEntity(new StringEntity("")); interceptor.process(request, request.getEntity(), context); final Header h1 = request.getFirstHeader(HttpHeaders.CONTENT_LENGTH); Assert.assertNotNull(h1); Assert.assertEquals("0", h1.getValue()); }