public Request removeHeaders(final String name) { this.request.removeHeaders(name); return this; }
public Request removeHeaders(final String name) { this.request.removeHeaders(name); return this; }
@Test public void testForwardsUnknownHeadersOnRequestsFromHigherProtocolVersions() throws Exception { request = new BasicClassicHttpRequest("GET", "/foo"); request.setVersion(new ProtocolVersion("HTTP", 1, 2)); request.removeHeaders("Connection"); request.addHeader("X-Unknown-Header", "some-value"); final ClassicHttpRequest downgraded = new BasicClassicHttpRequest("GET", "/foo"); downgraded.setVersion(HttpVersion.HTTP_1_1); downgraded.removeHeaders("Connection"); downgraded.addHeader("X-Unknown-Header", "some-value"); EasyMock.expect( mockExecChain.proceed( eqRequest(downgraded), EasyMock.isA(ExecChain.Scope.class))).andReturn(originResponse); replayMocks(); execute(request); verifyMocks(); }
@Test public void testViaHeaderOnRequestProperlyRecordsClientProtocol() throws Exception { final ClassicHttpRequest originalRequest = new BasicClassicHttpRequest("GET", "/"); originalRequest.setVersion(HttpVersion.HTTP_1_0); request = originalRequest; request.removeHeaders("Via"); final Capture<ClassicHttpRequest> cap = EasyMock.newCapture(); EasyMock.expect( mockExecChain.proceed( EasyMock.capture(cap), EasyMock.isA(ExecChain.Scope.class))).andReturn(originResponse); replayMocks(); execute(request); verifyMocks(); final ClassicHttpRequest captured = cap.getValue(); final String via = captured.getFirstHeader("Via").getValue(); final String protocol = via.split("\\s+")[0]; final String[] protoParts = protocol.split("/"); if (protoParts.length > 1) { Assert.assertTrue("http".equalsIgnoreCase(protoParts[0])); } Assert.assertEquals("1.0",protoParts[protoParts.length-1]); }
@Test public void testProperlyFormattedViaHeaderIsAddedToRequests() throws Exception { final Capture<ClassicHttpRequest> cap = EasyMock.newCapture(); request.removeHeaders("Via"); EasyMock.expect( mockExecChain.proceed( EasyMock.capture(cap), EasyMock.isA(ExecChain.Scope.class))).andReturn(originResponse); replayMocks(); execute(request); verifyMocks(); final ClassicHttpRequest captured = cap.getValue(); final String via = captured.getFirstHeader("Via").getValue(); assertValidViaHeader(via); }
@Test public void testPartialContentIsNotReturnedToAClientThatDidNotAskForIt() throws Exception { // tester's note: I don't know what the cache will *do* in // this situation, but it better not just pass the response // on. request.removeHeaders("Range"); originResponse = new BasicClassicHttpResponse(HttpStatus.SC_PARTIAL_CONTENT, "Partial Content"); originResponse.setHeader("Content-Range", "bytes 0-499/1234"); originResponse.setEntity(makeBody(500)); EasyMock.expect( mockExecChain.proceed( EasyMock.isA(ClassicHttpRequest.class), EasyMock.isA(ExecChain.Scope.class))).andReturn(originResponse); replayMocks(); try { final HttpResponse result = execute(request); Assert.assertTrue(HttpStatus.SC_PARTIAL_CONTENT != result.getCode()); } catch (final ClientProtocolException acceptableBehavior) { // this is probably ok } }
@Test public void testCannotUseVariantCacheEntryIfNotAllSelectingRequestHeadersMatch() throws Exception { final ClassicHttpRequest req1 = new BasicClassicHttpRequest("GET", "/"); req1.setHeader("Accept-Encoding","gzip"); final ClassicHttpResponse resp1 = HttpTestUtils.make200Response(); resp1.setHeader("ETag","\"etag1\""); resp1.setHeader("Cache-Control","max-age=3600"); resp1.setHeader("Vary","Accept-Encoding"); backendExpectsAnyRequestAndReturn(resp1); final ClassicHttpRequest req2 = new BasicClassicHttpRequest("GET", "/"); req2.removeHeaders("Accept-Encoding"); final ClassicHttpResponse resp2 = HttpTestUtils.make200Response(); resp2.setHeader("ETag","\"etag1\""); resp2.setHeader("Cache-Control","max-age=3600"); // not allowed to have a cache hit; must forward request backendExpectsAnyRequestAndReturn(resp2); replayMocks(); execute(req1); execute(req2); verifyMocks(); }
connect.removeHeaders(HttpHeaders.PROXY_AUTHORIZATION); this.authenticator.addAuthResponse(proxy, ChallengeType.PROXY, connect, proxyAuthExchange, context);
connect.removeHeaders(HttpHeaders.PROXY_AUTHORIZATION); } else { break;