@Override public void process( final HttpRequest request, final EntityDetails entity, final HttpContext context) throws HttpException, IOException { Args.notNull(context, "HTTP context"); final ProtocolVersion ver = context.getProtocolVersion(); if (ver.getMajor() < 2) { super.process(request, entity, context); } }
@Test public void testRequestConnControlInvalidInput() throws Exception { final RequestConnControl interceptor = new RequestConnControl(); try { interceptor.process(null, null, null); Assert.fail("IllegalArgumentException should have been thrown"); } catch (final IllegalArgumentException ex) { // expected } }
@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 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 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 testRequestConnControlCustom() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); final Header myheader = new BasicHeader(HttpHeaders.CONNECTION, "close"); request.addHeader(myheader); final RequestConnControl interceptor = new RequestConnControl(); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.CONNECTION); Assert.assertNotNull(header); Assert.assertEquals("close", header.getValue()); Assert.assertTrue(header == myheader); }