@Test public void testFullResponse() throws Exception { outputReceived = new CountDownLatch(2); ByteBuf body = ByteBufUtil.writeUtf8(UnpooledByteBufAllocator.DEFAULT, "response"); FullHttpRequest requestIn = new DefaultFullHttpRequest(HTTP_1_1, GET, "/"); FullResponse responseIn = ResponseBuilders.newOk().body(body).build(); channel.writeInbound(requestIn); channel.runPendingTasks(); // blocks channel.writeOutbound(responseIn); channel.runPendingTasks(); // blocks Uninterruptibles.awaitUninterruptibly(outputReceived); HttpResponse responseOut = (HttpResponse) responses.remove(0); assertTrue(responseOut != null); assertTrue(responseOut instanceof FullHttpResponse); assertEquals(HTTP_1_1, responseOut.protocolVersion()); assertEquals(OK, responseOut.status()); assertFalse(((FullHttpResponse) responseOut).content() == null); assertEquals(body, ((FullHttpResponse) responseOut).content()); // https://tools.ietf.org/html/rfc7230#section-3.3.2 assertNotNull(responseOut.headers().get(HttpHeaderNames.CONTENT_LENGTH)); assertNull(responseOut.headers().get(HttpHeaderNames.TRANSFER_ENCODING)); }
@Test public void testFullResponse() throws Exception { outputReceived = new CountDownLatch(2); Http2Headers headersIn = new DefaultHttp2Headers().method("GET").path("/"); Http2Request requestIn = Http2Request.build(1, headersIn, true); FullResponse responseIn = ResponseBuilders.newOk().streamId(1).body(Unpooled.EMPTY_BUFFER).build(); channel.writeInbound(requestIn); channel.runPendingTasks(); // blocks channel.writeOutbound(responseIn); channel.runPendingTasks(); // blocks Uninterruptibles.awaitUninterruptibly(outputReceived); Http2Response responseOut = responses.remove(0); assertNotNull(responseOut); assertTrue(responseOut.payload instanceof Http2Headers); assertEquals("200", ((Http2Headers) responseOut.payload).status().toString()); assertTrue(responseOut.eos); assertEquals(1, responseOut.streamId); }
@Test public void testFullResponseWithBody() throws Exception { outputReceived = new CountDownLatch(2); ByteBuf body = ByteBufUtil.writeUtf8(UnpooledByteBufAllocator.DEFAULT, "response"); Http2Headers headersIn = new DefaultHttp2Headers().method("GET").path("/"); Http2Request requestIn = Http2Request.build(1, headersIn, true); FullResponse responseIn = ResponseBuilders.newOk().streamId(1).body(body).build(); channel.writeInbound(requestIn); channel.runPendingTasks(); // blocks channel.writeOutbound(responseIn); channel.runPendingTasks(); // blocks Uninterruptibles.awaitUninterruptibly(outputReceived); Http2Response responseOut = responses.remove(0); assertNotNull(responseOut); assertTrue(responseOut.payload instanceof Http2Headers); assertEquals("200", ((Http2Headers) responseOut.payload).status().toString()); assertFalse(responseOut.eos); assertEquals(1, responseOut.streamId); Http2Response bodyOut1 = responses.remove(0); assertNotNull(bodyOut1); assertTrue(bodyOut1.payload instanceof Http2DataFrame); assertEquals(body, ((Http2DataFrame) bodyOut1.payload).content()); assertTrue(bodyOut1.eos); assertEquals(1, bodyOut1.streamId); }