@Test public void testFullRequestWithBody() throws Exception { outputReceived = new CountDownLatch(1); ByteBuf body = ByteBufUtil.writeUtf8(UnpooledByteBufAllocator.DEFAULT, "body"); FullRequest requestIn = RequestBuilders.newPost("/").host("localhost").body(body).build(); channel.writeOutbound(requestIn); channel.runPendingTasks(); // blocks Uninterruptibles.awaitUninterruptibly(outputReceived); Http2Request requestOut = (Http2Request) requests.remove(0); assertTrue(requestOut != null); assertTrue(requestOut.payload instanceof Http2Headers); assertEquals("POST", ((Http2Headers) requestOut.payload).method().toString()); assertEquals("/", ((Http2Headers) requestOut.payload).path()); assertFalse(requestOut.eos); Http2Request contentOut = (Http2Request) requests.remove(0); assertTrue(contentOut != null); assertTrue(contentOut.payload instanceof Http2DataFrame); assertEquals(body, ((Http2DataFrame) contentOut.payload).content()); assertTrue(contentOut.eos); }
public DefaultFullRequest build() { if (!httpTraceInfo().isPresent() && headers().isPresent()) { httpTraceInfo(new TraceInfo(headers().get())); } return autoBuild(); } }
@Test public void testOnResponseData() { Request request = DefaultFullRequest.builder() .body(Unpooled.EMPTY_BUFFER) .headers(new DefaultHeaders()) .method(GET) .path("/") .build(); session.onRequest(request); assertTrue(session.initialRequest().requestFinished); assertFalse(session.initialRequest().responseFinished); Response response = DefaultSegmentedResponse.builder().status(OK).headers(new DefaultHeaders()).build(); session.onResponse(response); assertTrue(session.initialRequest().requestFinished); assertFalse(session.initialRequest().responseFinished); SegmentedData data = DefaultSegmentedData.builder() .content(Unpooled.EMPTY_BUFFER) .endOfMessage(true) .trailingHeaders(new DefaultHeaders()) .build(); session.onResponseData(data); assertTrue(session.initialRequest().requestFinished); assertTrue(session.initialRequest().responseFinished); }
@Test public void testFlush() { Request request = DefaultFullRequest.builder() .body(Unpooled.EMPTY_BUFFER) .headers(new DefaultHeaders()) .method(GET) .path("/") .build(); session.onRequest(request); assertTrue(session.initialRequest().requestFinished); assertFalse(session.initialRequest().responseFinished); session.flush(); assertNotNull(session.currentRequest()); Response response = DefaultFullResponse.builder() .body(Unpooled.EMPTY_BUFFER) .status(OK) .headers(new DefaultHeaders()) .build(); session.onResponse(response); assertTrue(session.initialRequest().requestFinished); assertTrue(session.initialRequest().responseFinished); session.flush(); assertNull(session.currentRequest()); } }
public Request buildRequest(Request request, String proxyHost, String path) { Request result; if (request instanceof FullRequest) { result = DefaultFullRequest.builder() .body(request.body()) .method(request.method()) .path(path) .streamId(request.streamId()) .headers(request.headers()) .httpTraceInfo(request.httpTraceInfo()) .host(proxyHost) .build(); } else if (request instanceof SegmentedRequest) { result = DefaultSegmentedRequest.builder() .method(request.method()) .path(path) .streamId(request.streamId()) .headers(request.headers()) .httpTraceInfo(request.httpTraceInfo()) .host(proxyHost) .build(); } else { // this should never happen! log.error("Unknown request type: {}", request); result = null; } return result; }
@Test public void testOnResponseFull() { Request request = DefaultFullRequest.builder() .body(Unpooled.EMPTY_BUFFER) .headers(new DefaultHeaders()) .method(GET) .path("/") .build(); session.onRequest(request); assertTrue(session.initialRequest().requestFinished); assertFalse(session.initialRequest().responseFinished); Response response = DefaultFullResponse.builder() .body(Unpooled.EMPTY_BUFFER) .status(OK) .headers(new DefaultHeaders()) .build(); session.onResponse(response); assertTrue(session.initialRequest().requestFinished); assertTrue(session.initialRequest().responseFinished); }
@Test public void testOnResponseStreaming() { Request request = DefaultFullRequest.builder() .body(Unpooled.EMPTY_BUFFER) .headers(new DefaultHeaders()) .method(GET) .path("/") .build(); session.onRequest(request); assertTrue(session.initialRequest().requestFinished); assertFalse(session.initialRequest().responseFinished); Response response = DefaultSegmentedResponse.builder().status(OK).headers(new DefaultHeaders()).build(); session.onResponse(response); assertTrue(session.initialRequest().requestFinished); assertFalse(session.initialRequest().responseFinished); }
@Test public void testFullRequestWithBody() throws Exception { outputReceived = new CountDownLatch(1); ByteBuf body = ByteBufUtil.writeUtf8(UnpooledByteBufAllocator.DEFAULT, "body"); FullRequest requestIn = RequestBuilders.newPost("/").body(body).build(); channel.writeOutbound(requestIn); channel.runPendingTasks(); // blocks Uninterruptibles.awaitUninterruptibly(outputReceived); FullHttpRequest requestOut = (FullHttpRequest) requests.remove(0); assertTrue(requestOut != null); assertEquals(HTTP_1_1, requestOut.protocolVersion()); assertEquals(HttpMethod.POST, requestOut.method()); assertEquals("/", requestOut.uri()); assertFalse(requestOut.content() == null); assertEquals(body, requestOut.content()); }
@Test public void testOnRequestPipeline() { Request request = DefaultFullRequest.builder() .body(Unpooled.EMPTY_BUFFER) .headers(new DefaultHeaders()) .method(GET) .path("/") .build(); session.onRequest(request); assertTrue(session.initialRequest().requestFinished); assertFalse(session.initialRequest().responseFinished); assertFalse(session.closeConnection()); session.onRequest(request); assertTrue(session.closeConnection()); }
@Test public void testFullRequest() throws Exception { outputReceived = new CountDownLatch(1); FullRequest requestIn = RequestBuilders.newGet("/").build(); channel.writeOutbound(requestIn); channel.runPendingTasks(); // blocks Uninterruptibles.awaitUninterruptibly(outputReceived); FullHttpRequest requestOut = (FullHttpRequest) requests.remove(0); assertTrue(requestOut != null); assertEquals(HTTP_1_1, requestOut.protocolVersion()); assertEquals(HttpMethod.GET, requestOut.method()); assertEquals("/", requestOut.uri()); assertFalse(requestOut.content() == null); assertEquals(0, requestOut.content().readableBytes()); }
public static DefaultFullRequest.Builder newGet(String path) { return newGet().path(path); }
@Test public void testFullRequest() throws Exception { outputReceived = new CountDownLatch(1); FullRequest requestIn = RequestBuilders.newGet("/").host("localhost").build(); channel.writeOutbound(requestIn); channel.runPendingTasks(); // blocks Uninterruptibles.awaitUninterruptibly(outputReceived); Http2Request requestOut = (Http2Request) requests.remove(0); assertTrue(requestOut != null); assertTrue(requestOut.payload instanceof Http2Headers); assertEquals("GET", ((Http2Headers) requestOut.payload).method().toString()); assertEquals("/", ((Http2Headers) requestOut.payload).path()); assertTrue(requestOut.eos); }
private static DefaultFullRequest.Builder newDefaultBuilder() { return DefaultFullRequest.builder().headers(new DefaultHeaders()); }
public static DefaultFullRequest.Builder newPost() { return newDefaultBuilder().method(HttpMethod.POST); }
public static DefaultFullRequest.Builder newPost(String path) { return newPost().path(path); } }
@Test public void testRequestsMeter() { DefaultFullRequest request = DefaultFullRequest.builder() .body(Unpooled.EMPTY_BUFFER) .headers(new DefaultHeaders()) .method(HttpMethod.GET) .path("/foo") .build(); channel.writeInbound(request); channel.runPendingTasks(); Meter meter = metricRegistry.meter("requests"); assertEquals(1, meter.getCount()); }
@Test public void testOnRequestFull() { Request request = DefaultFullRequest.builder() .body(Unpooled.EMPTY_BUFFER) .headers(new DefaultHeaders()) .method(GET) .path("/") .build(); session.onRequest(request); assertTrue(session.initialRequest().requestFinished); assertFalse(session.initialRequest().responseFinished); }
@Test public void testNoClients() { request = RequestBuilders.newGet("https://www.google.com/").build(); when(config.clientConfigs()).thenReturn(new ArrayList<ClientConfig>()); subject = new ProxyHandler(factory, config, addressHelper); EmbeddedChannel channel = new EmbeddedChannel(new TestHandler(subject)); channel.writeInbound("doesn't matter"); assertTrue(channel.finish()); DefaultFullResponse result = channel.readOutbound(); assertEquals(result.status().code(), 503); } }