testExpectContinueResetHttpObjectDecoder() — netty Function Reference
Architecture documentation for the testExpectContinueResetHttpObjectDecoder() function in HttpContentDecoderTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 641d5383_f423_3a70_9e91_114d42b48c67["testExpectContinueResetHttpObjectDecoder()"] ea4ec426_b689_ab52_a554_7959aed6c709["HttpContentDecoderTest"] 641d5383_f423_3a70_9e91_114d42b48c67 -->|defined in| ea4ec426_b689_ab52_a554_7959aed6c709 e1fd631d_8d14_d190_2463_40108ec003a4["assertHasInboundMessages()"] 641d5383_f423_3a70_9e91_114d42b48c67 -->|calls| e1fd631d_8d14_d190_2463_40108ec003a4 465668ef_fec3_d4d9_164f_24dc020645ba["assertHasOutboundMessages()"] 641d5383_f423_3a70_9e91_114d42b48c67 -->|calls| 465668ef_fec3_d4d9_164f_24dc020645ba style 641d5383_f423_3a70_9e91_114d42b48c67 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-http/src/test/java/io/netty/handler/codec/http/HttpContentDecoderTest.java lines 455–507
@Test
public void testExpectContinueResetHttpObjectDecoder() {
// request with header "Expect: 100-continue" must be replied with one "100 Continue" response
// case 5: Test that HttpObjectDecoder correctly resets its internal state after a failed expectation.
HttpRequestDecoder decoder = new HttpRequestDecoder();
final int maxBytes = 10;
HttpObjectAggregator aggregator = new HttpObjectAggregator(maxBytes);
final AtomicReference<FullHttpRequest> secondRequestRef = new AtomicReference<FullHttpRequest>();
EmbeddedChannel channel = new EmbeddedChannel(decoder, aggregator, new ChannelInboundHandlerAdapter() {
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
if (msg instanceof FullHttpRequest) {
if (!secondRequestRef.compareAndSet(null, (FullHttpRequest) msg)) {
((FullHttpRequest) msg).release();
}
} else {
ReferenceCountUtil.release(msg);
}
}
});
String req1 = "POST /1 HTTP/1.1\r\n" +
"Content-Length: " + (maxBytes + 1) + "\r\n" +
"Expect: 100-continue\r\n" +
"\r\n";
assertFalse(channel.writeInbound(Unpooled.wrappedBuffer(req1.getBytes(CharsetUtil.US_ASCII))));
FullHttpResponse resp = channel.readOutbound();
assertEquals(HttpStatusClass.CLIENT_ERROR, resp.status().codeClass());
resp.release();
String req2 = "POST /2 HTTP/1.1\r\n" +
"Content-Length: " + maxBytes + "\r\n" +
"Expect: 100-continue\r\n" +
"\r\n";
assertFalse(channel.writeInbound(Unpooled.wrappedBuffer(req2.getBytes(CharsetUtil.US_ASCII))));
resp = channel.readOutbound();
assertEquals(100, resp.status().code());
resp.release();
byte[] content = new byte[maxBytes];
assertFalse(channel.writeInbound(Unpooled.wrappedBuffer(content)));
FullHttpRequest req = secondRequestRef.get();
assertNotNull(req);
assertEquals("/2", req.uri());
assertEquals(10, req.content().readableBytes());
req.release();
assertHasInboundMessages(channel, false);
assertHasOutboundMessages(channel, false);
assertFalse(channel.finish());
}
Domain
Subdomains
Source
Frequently Asked Questions
What does testExpectContinueResetHttpObjectDecoder() do?
testExpectContinueResetHttpObjectDecoder() is a function in the netty codebase, defined in codec-http/src/test/java/io/netty/handler/codec/http/HttpContentDecoderTest.java.
Where is testExpectContinueResetHttpObjectDecoder() defined?
testExpectContinueResetHttpObjectDecoder() is defined in codec-http/src/test/java/io/netty/handler/codec/http/HttpContentDecoderTest.java at line 455.
What does testExpectContinueResetHttpObjectDecoder() call?
testExpectContinueResetHttpObjectDecoder() calls 2 function(s): assertHasInboundMessages, assertHasOutboundMessages.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free