Home / Class/ HttpServerExpectContinueHandlerTest Class — netty Architecture

HttpServerExpectContinueHandlerTest Class — netty Architecture

Architecture documentation for the HttpServerExpectContinueHandlerTest class in HttpServerExpectContinueHandlerTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  3590ce08_f718_aa26_c039_04a986c7b9b5["HttpServerExpectContinueHandlerTest"]
  831fa9be_6de2_4466_8011_5899a375cfa3["HttpServerExpectContinueHandlerTest.java"]
  3590ce08_f718_aa26_c039_04a986c7b9b5 -->|defined in| 831fa9be_6de2_4466_8011_5899a375cfa3
  8aaf5c02_be99_b9b0_db13_3e44ea50b048["shouldRespondToExpectedHeader()"]
  3590ce08_f718_aa26_c039_04a986c7b9b5 -->|method| 8aaf5c02_be99_b9b0_db13_3e44ea50b048
  5ffe2a24_ccec_d7a0_df8a_cf3347645e03["shouldAllowCustomResponses()"]
  3590ce08_f718_aa26_c039_04a986c7b9b5 -->|method| 5ffe2a24_ccec_d7a0_df8a_cf3347645e03

Relationship Graph

Source Code

codec-http/src/test/java/io/netty/handler/codec/http/HttpServerExpectContinueHandlerTest.java lines 26–84

public class HttpServerExpectContinueHandlerTest {

    @Test
    public void shouldRespondToExpectedHeader() {
        EmbeddedChannel channel = new EmbeddedChannel(new HttpServerExpectContinueHandler() {
            @Override
            protected HttpResponse acceptMessage(HttpRequest request) {
                HttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.CONTINUE);
                response.headers().set("foo", "bar");
                return response;
            }
        });
        HttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/");
        HttpUtil.set100ContinueExpected(request, true);

        channel.writeInbound(request);
        HttpResponse response = channel.readOutbound();

        assertEquals(HttpResponseStatus.CONTINUE, response.status());
        assertEquals("bar", response.headers().get("foo"));
        ReferenceCountUtil.release(response);

        HttpRequest processedRequest = channel.readInbound();
        assertFalse(processedRequest.headers().contains(HttpHeaderNames.EXPECT));
        ReferenceCountUtil.release(processedRequest);
        assertFalse(channel.finishAndReleaseAll());
    }

    @Test
    public void shouldAllowCustomResponses() {
        EmbeddedChannel channel = new EmbeddedChannel(
            new HttpServerExpectContinueHandler() {
                @Override
                protected HttpResponse acceptMessage(HttpRequest request) {
                    return null;
                }

                @Override
                protected HttpResponse rejectResponse(HttpRequest request) {
                    return new DefaultFullHttpResponse(HttpVersion.HTTP_1_1,
                            HttpResponseStatus.REQUEST_ENTITY_TOO_LARGE);
                }
            }
        );

        HttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/");
        HttpUtil.set100ContinueExpected(request, true);

        channel.writeInbound(request);
        HttpResponse response = channel.readOutbound();

        assertEquals(HttpResponseStatus.REQUEST_ENTITY_TOO_LARGE, response.status());
        ReferenceCountUtil.release(response);

        // request was swallowed
        assertTrue(channel.inboundMessages().isEmpty());
        assertFalse(channel.finishAndReleaseAll());
    }
}

Frequently Asked Questions

What is the HttpServerExpectContinueHandlerTest class?
HttpServerExpectContinueHandlerTest is a class in the netty codebase, defined in codec-http/src/test/java/io/netty/handler/codec/http/HttpServerExpectContinueHandlerTest.java.
Where is HttpServerExpectContinueHandlerTest defined?
HttpServerExpectContinueHandlerTest is defined in codec-http/src/test/java/io/netty/handler/codec/http/HttpServerExpectContinueHandlerTest.java at line 26.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free