Home / Class/ HttpToHttp2ConnectionHandlerTest Class — netty Architecture

HttpToHttp2ConnectionHandlerTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  919b1457_fbee_0bc0_c865_945a03b794b1["HttpToHttp2ConnectionHandlerTest"]
  a5bbe31c_9e88_3def_c1e2_7e91bddd1fbf["HttpToHttp2ConnectionHandlerTest.java"]
  919b1457_fbee_0bc0_c865_945a03b794b1 -->|defined in| a5bbe31c_9e88_3def_c1e2_7e91bddd1fbf
  a0edf1da_3b6c_3bc9_12d1_fa41c539ff3b["setup()"]
  919b1457_fbee_0bc0_c865_945a03b794b1 -->|method| a0edf1da_3b6c_3bc9_12d1_fa41c539ff3b
  2f19ad74_5125_180f_9d2e_b6dced110632["teardown()"]
  919b1457_fbee_0bc0_c865_945a03b794b1 -->|method| 2f19ad74_5125_180f_9d2e_b6dced110632
  25dbed58_6b69_23fc_d9b3_83b2d641af5d["testHeadersOnlyRequest()"]
  919b1457_fbee_0bc0_c865_945a03b794b1 -->|method| 25dbed58_6b69_23fc_d9b3_83b2d641af5d
  b0106071_5ccc_2b5d_11aa_229497752d8c["testHttpScheme()"]
  919b1457_fbee_0bc0_c865_945a03b794b1 -->|method| b0106071_5ccc_2b5d_11aa_229497752d8c
  4b85bea8_5c45_9402_a50d_d9e50274050a["testMultipleCookieEntriesAreCombined()"]
  919b1457_fbee_0bc0_c865_945a03b794b1 -->|method| 4b85bea8_5c45_9402_a50d_d9e50274050a
  c23addaa_171e_1ace_be6c_f8b935230605["testOriginFormRequestTargetHandled()"]
  919b1457_fbee_0bc0_c865_945a03b794b1 -->|method| c23addaa_171e_1ace_be6c_f8b935230605
  54c9c87b_049d_4e23_9476_261446971e72["testOriginFormRequestTargetHandledFromUrlencodedUri()"]
  919b1457_fbee_0bc0_c865_945a03b794b1 -->|method| 54c9c87b_049d_4e23_9476_261446971e72
  9e1c4593_e0d9_2ad6_6a7e_6e59d9abd1e2["testAbsoluteFormRequestTargetHandledFromHeaders()"]
  919b1457_fbee_0bc0_c865_945a03b794b1 -->|method| 9e1c4593_e0d9_2ad6_6a7e_6e59d9abd1e2
  a4b14f26_3f5c_ba17_8613_0065fd79c112["testAbsoluteFormRequestTargetHandledFromRequestTargetUri()"]
  919b1457_fbee_0bc0_c865_945a03b794b1 -->|method| a4b14f26_3f5c_ba17_8613_0065fd79c112
  150b267e_aca7_3070_61a7_b0ee5348a2c9["testAuthorityFormRequestTargetHandled()"]
  919b1457_fbee_0bc0_c865_945a03b794b1 -->|method| 150b267e_aca7_3070_61a7_b0ee5348a2c9
  8f6064c6_4f05_4154_bdc2_e64995a59941["testAsterikFormRequestTargetHandled()"]
  919b1457_fbee_0bc0_c865_945a03b794b1 -->|method| 8f6064c6_4f05_4154_bdc2_e64995a59941
  19ff78d4_0335_44db_ea95_053ec800c254["testHostIPv6FormRequestTargetHandled()"]
  919b1457_fbee_0bc0_c865_945a03b794b1 -->|method| 19ff78d4_0335_44db_ea95_053ec800c254
  9ed631d3_d8d0_e3f2_cd8e_908e2db84777["testHostFormRequestTargetHandled()"]
  919b1457_fbee_0bc0_c865_945a03b794b1 -->|method| 9ed631d3_d8d0_e3f2_cd8e_908e2db84777

Relationship Graph

Source Code

codec-http2/src/test/java/io/netty/handler/codec/http2/HttpToHttp2ConnectionHandlerTest.java lines 83–640

public class HttpToHttp2ConnectionHandlerTest {
    private static final int WAIT_TIME_SECONDS = 5;

    @Mock
    private Http2FrameListener clientListener;

    @Mock
    private Http2FrameListener serverListener;

    private ServerBootstrap sb;
    private Bootstrap cb;
    private Channel serverChannel;
    private volatile Channel serverConnectedChannel;
    private Channel clientChannel;
    private CountDownLatch requestLatch;
    private CountDownLatch serverSettingsAckLatch;
    private CountDownLatch trailersLatch;
    private FrameCountDown serverFrameCountDown;

    @BeforeEach
    public void setup() throws Exception {
        MockitoAnnotations.initMocks(this);
    }

    @AfterEach
    public void teardown() throws Exception {
        if (clientChannel != null) {
            clientChannel.close().syncUninterruptibly();
            clientChannel = null;
        }
        if (serverChannel != null) {
            serverChannel.close().syncUninterruptibly();
            serverChannel = null;
        }
        final Channel serverConnectedChannel = this.serverConnectedChannel;
        if (serverConnectedChannel != null) {
            serverConnectedChannel.close().syncUninterruptibly();
            this.serverConnectedChannel = null;
        }
        Future<?> serverGroup = sb.config().group().shutdownGracefully(0, 5, SECONDS);
        Future<?> serverChildGroup = sb.config().childGroup().shutdownGracefully(0, 5, SECONDS);
        Future<?> clientGroup = cb.config().group().shutdownGracefully(0, 5, SECONDS);
        serverGroup.syncUninterruptibly();
        serverChildGroup.syncUninterruptibly();
        clientGroup.syncUninterruptibly();
    }

    @Test
    public void testHeadersOnlyRequest() throws Exception {
        bootstrapEnv(2, 1, 0);
        final FullHttpRequest request = new DefaultFullHttpRequest(HTTP_1_1, GET,
                "http://my-user_name@www.example.org:5555/example");
        final HttpHeaders httpHeaders = request.headers();
        httpHeaders.setInt(HttpConversionUtil.ExtensionHeaderNames.STREAM_ID.text(), 5);
        httpHeaders.set(HttpHeaderNames.HOST, "my-user_name@www.example.org:5555");
        httpHeaders.set(HttpConversionUtil.ExtensionHeaderNames.SCHEME.text(), "http");
        httpHeaders.add(of("foo"), of("goo"));
        httpHeaders.add(of("foo"), of("goo2"));
        httpHeaders.add(of("foo2"), of("goo2"));
        final Http2Headers http2Headers =
                new DefaultHttp2Headers().method(new AsciiString("GET")).path(new AsciiString("/example"))
                .authority(new AsciiString("www.example.org:5555")).scheme(new AsciiString("http"))
                .add(new AsciiString("foo"), new AsciiString("goo"))
                .add(new AsciiString("foo"), new AsciiString("goo2"))
                .add(new AsciiString("foo2"), new AsciiString("goo2"));

        ChannelPromise writePromise = newPromise();
        verifyHeadersOnly(http2Headers, writePromise, clientChannel.writeAndFlush(request, writePromise));
    }

    @Test
    public void testHttpScheme() throws Exception {
        bootstrapEnv(2, 1, 0);
        final FullHttpRequest request = new DefaultFullHttpRequest(HTTP_1_1, GET,
                "http://my-user_name@www.example.org:5555/example");
        final HttpHeaders httpHeaders = request.headers();
        httpHeaders.setInt(HttpConversionUtil.ExtensionHeaderNames.STREAM_ID.text(), 5);
        httpHeaders.set(HttpHeaderNames.HOST, "my-user_name@www.example.org:5555");
        httpHeaders.add(of("foo"), of("goo"));
        httpHeaders.add(of("foo"), of("goo2"));
        httpHeaders.add(of("foo2"), of("goo2"));

Frequently Asked Questions

What is the HttpToHttp2ConnectionHandlerTest class?
HttpToHttp2ConnectionHandlerTest is a class in the netty codebase, defined in codec-http2/src/test/java/io/netty/handler/codec/http2/HttpToHttp2ConnectionHandlerTest.java.
Where is HttpToHttp2ConnectionHandlerTest defined?
HttpToHttp2ConnectionHandlerTest is defined in codec-http2/src/test/java/io/netty/handler/codec/http2/HttpToHttp2ConnectionHandlerTest.java at line 83.

Analyze Your Own Codebase

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

Try Supermodel Free