@Test public void testRequestsExpecting100ContinueBehaviorShouldSetExpectHeader() throws Exception { final BasicClassicHttpRequest post = new BasicClassicHttpRequest("POST", "/"); post.setHeader(HttpHeaders.EXPECT, HeaderElements.CONTINUE); post.setHeader("Content-Length", "128"); post.setEntity(new BasicHttpEntity()); final Capture<ClassicHttpRequest> reqCap = EasyMock.newCapture(); EasyMock.expect( mockExecChain.proceed( EasyMock.capture(reqCap), EasyMock.isA(ExecChain.Scope.class))).andReturn(originResponse); replayMocks(); execute(post); verifyMocks(); final ClassicHttpRequest forwarded = reqCap.getValue(); boolean foundExpect = false; final Iterator<HeaderElement> it = MessageSupport.iterate(forwarded, HttpHeaders.EXPECT); while (it.hasNext()) { final HeaderElement elt = it.next(); if ("100-continue".equalsIgnoreCase(elt.getName())) { foundExpect = true; break; } } Assert.assertTrue(foundExpect); }
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 testRequestsNotExpecting100ContinueBehaviorShouldNotSetExpectContinueHeader() throws Exception { final BasicClassicHttpRequest post = new BasicClassicHttpRequest("POST", "/"); post.setHeader("Content-Length", "128"); post.setEntity(new BasicHttpEntity()); final Capture<ClassicHttpRequest> reqCap = EasyMock.newCapture(); EasyMock.expect( mockExecChain.proceed( EasyMock.capture(reqCap), EasyMock.isA(ExecChain.Scope.class))).andReturn(originResponse); replayMocks(); execute(post); verifyMocks(); final ClassicHttpRequest forwarded = reqCap.getValue(); boolean foundExpect = false; final Iterator<HeaderElement> it = MessageSupport.iterate(forwarded, HttpHeaders.EXPECT); while (it.hasNext()) { final HeaderElement elt = it.next(); if ("100-continue".equalsIgnoreCase(elt.getName())) { foundExpect = true; break; } } Assert.assertFalse(foundExpect); }
@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(); }
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 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(); }
@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 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 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()); }