public static ClassicHttpRequest makeDefaultRequest() { return new BasicClassicHttpRequest("GET", "/"); }
@Test public void testOrderOfMultipleExpectHeadersIsPreservedOnRequests() throws Exception { final BasicClassicHttpRequest post = new BasicClassicHttpRequest("POST", "/"); post.setEntity(body); post.addHeader("Expect", "100-continue"); post.addHeader("Expect", "x-expect=true"); post.addHeader("Content-Length", "128"); testOrderOfMultipleHeadersIsPreservedOnRequests("Expect", post); }
@Test public void test100ContinueResponsesAreNotForwardedTo1_0ClientsWhoDidNotAskForThem() throws Exception { final BasicClassicHttpRequest post = new BasicClassicHttpRequest("POST", "/"); post.setVersion(new ProtocolVersion("HTTP", 1, 0)); post.setEntity(body); post.setHeader("Content-Length", "128"); originResponse = new BasicClassicHttpResponse(100, "Continue"); EasyMock.expect( mockExecChain.proceed( EasyMock.isA(ClassicHttpRequest.class), EasyMock.isA(ExecChain.Scope.class))).andReturn(originResponse); replayMocks(); try { // if a 100 response gets up to us from the HttpClient // backend, we can't really handle it at that point execute(post); Assert.fail("should have thrown an exception"); } catch (final ClientProtocolException expected) { } verifyMocks(); }
private void testDoesNotAddHeaderToRequestIfNotPresent(final String header) throws Exception { final BasicClassicHttpRequest req = new BasicClassicHttpRequest("POST","/"); req.setEntity(HttpTestUtils.makeBody(128)); req.setHeader("Content-Length","128"); req.removeHeaders(header); final Capture<ClassicHttpRequest> cap = EasyMock.newCapture(); EasyMock.expect( mockExecChain.proceed( EasyMock.capture(cap), EasyMock.isA(ExecChain.Scope.class))).andReturn(originResponse); replayMocks(); execute(req); verifyMocks(); final ClassicHttpRequest captured = cap.getValue(); Assert.assertNull(captured.getFirstHeader(header)); }
@Test public void testRequestDateGenerated() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("POST", "/"); request.setEntity(new StringEntity("stuff")); final RequestDate interceptor = new RequestDate(); interceptor.process(request, request.getEntity(), context); final Header h1 = request.getFirstHeader(HttpHeaders.DATE); Assert.assertNotNull(h1); interceptor.process(request, request.getEntity(), context); final Header h2 = request.getFirstHeader(HttpHeaders.DATE); Assert.assertNotNull(h2); }
final BasicClassicHttpRequest httpRequest = new BasicClassicHttpRequest(request.get(METHOD).toString(), uri); httpRequest.setVersion((ProtocolVersion) request.get(PROTOCOL_VERSION)); if (headersMap != null) { for (final Entry<String, String> header : headersMap.entrySet()) { httpRequest.addHeader(header.getKey(), header.getValue()); new StringEntity(requestBody, ContentType.parse(requestContentType)) : new StringEntity(requestBody); httpRequest.setEntity(entity);
@Override public ClassicHttpRequest copy(final ClassicHttpRequest original) { if (original == null) { return null; } final BasicClassicHttpRequest copy = new BasicClassicHttpRequest(original.getMethod(), original.getPath()); copy.setVersion(original.getVersion()); for (final Iterator<Header> it = original.headerIterator(); it.hasNext(); ) { copy.addHeader(it.next()); } copy.setScheme(original.getScheme()); copy.setAuthority(original.getAuthority()); copy.setEntity(original.getEntity()); return copy; }
@Test public void testResponseConnControlClientRequestMixUp() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); request.addHeader(new BasicHeader(HttpHeaders.CONNECTION, "blah, keep-alive, close")); context.setAttribute(HttpCoreContext.HTTP_REQUEST, request); final ResponseConnControl interceptor = new ResponseConnControl(); final ClassicHttpResponse response = new BasicClassicHttpResponse(200, "OK"); interceptor.process(response, response.getEntity(), context); final Header header = response.getFirstHeader(HttpHeaders.CONNECTION); Assert.assertNotNull(header); Assert.assertEquals("close", header.getValue()); }
private void testDoesNotModifyHeaderOnRequest(final String header, final String value) throws Exception { final BasicClassicHttpRequest req = new BasicClassicHttpRequest("POST","/"); req.setEntity(HttpTestUtils.makeBody(128)); req.setHeader("Content-Length","128"); req.setHeader(header,value); final Capture<ClassicHttpRequest> cap = EasyMock.newCapture(); EasyMock.expect( mockExecChain.proceed( EasyMock.capture(cap), EasyMock.isA(ExecChain.Scope.class))).andReturn(originResponse); replayMocks(); execute(req); verifyMocks(); final ClassicHttpRequest captured = cap.getValue(); Assert.assertEquals(value, captured.getFirstHeader(header).getValue()); }
@Test public void testRequestHttpHostHeaderNoPort() 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"); final RequestValidateHost interceptor = new RequestValidateHost(); interceptor.process(request, request.getEntity(), context); Assert.assertEquals(new URIAuthority("host"), request.getAuthority()); }
@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 testRequestContentEntityChunkedHTTP10() throws Exception { final HttpContext context = new BasicHttpContext(null); context.setProtocolVersion(HttpVersion.HTTP_1_0); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("POST", "/"); final String s = "whatever"; final StringEntity entity = new StringEntity(s, StandardCharsets.US_ASCII); entity.setChunked(true); request.setEntity(entity); final RequestContent interceptor = new RequestContent(); try { interceptor.process(request, request.getEntity(), context); Assert.fail("ProtocolException should have been thrown"); } catch (final ProtocolException ex) { // expected } }
@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 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 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)); }
final BasicClassicHttpRequest httpRequest = new BasicClassicHttpRequest(request.get(METHOD).toString(), uri); httpRequest.setVersion((ProtocolVersion) request.get(PROTOCOL_VERSION)); if (headersMap != null) { for (final Entry<String, String> header : headersMap.entrySet()) { httpRequest.addHeader(header.getKey(), header.getValue()); new StringEntity(requestBody, ContentType.parse(requestContentType)) : new StringEntity(requestBody); httpRequest.setEntity(entity);
@Test public void testResponseConnControlExplicitClose() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); request.addHeader(new BasicHeader(HttpHeaders.CONNECTION, "keep-alive")); context.setAttribute(HttpCoreContext.HTTP_REQUEST, request); final ResponseConnControl interceptor = new ResponseConnControl(); final ClassicHttpResponse response = new BasicClassicHttpResponse(200, "OK"); response.setHeader(HttpHeaders.CONNECTION, "close"); interceptor.process(response, response.getEntity(), context); final Header header = response.getFirstHeader(HttpHeaders.CONNECTION); Assert.assertNotNull(header); Assert.assertEquals("close", header.getValue()); }
@Test public void testResponsesToPOSTWithoutCacheControlOrExpiresAreNotCached() throws Exception { emptyMockCacheExpectsNoPuts(); final BasicClassicHttpRequest post = new BasicClassicHttpRequest("POST", "/"); post.setHeader("Content-Length", "128"); post.setEntity(HttpTestUtils.makeBody(128)); originResponse.removeHeaders("Cache-Control"); originResponse.removeHeaders("Expires"); EasyMock.expect( mockExecChain.proceed( EasyMock.isA(ClassicHttpRequest.class), EasyMock.isA(ExecChain.Scope.class))).andReturn(originResponse); replayMocks(); execute(post); verifyMocks(); }
@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 testRequestContentProtocolException() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request1 = new BasicClassicHttpRequest("POST", "/"); request1.addHeader(new BasicHeader(HttpHeaders.TRANSFER_ENCODING, "chunked")); final BasicClassicHttpRequest request2 = new BasicClassicHttpRequest("POST", "/"); request2.addHeader(new BasicHeader(HttpHeaders.CONTENT_LENGTH, "12")); final RequestContent interceptor = new RequestContent(); try { interceptor.process(request1, request1.getEntity(), context); Assert.fail("ProtocolException should have been thrown"); } catch (final ProtocolException ex) { // expected } try { interceptor.process(request2, request2.getEntity(), context); Assert.fail("ProtocolException should have been thrown"); } catch (final ProtocolException ex) { // expected } }