Home / Class/ Http3ControlStreamInboundHandlerTest Class — netty Architecture

Http3ControlStreamInboundHandlerTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  902435e9_3b03_3141_b560_3cdae4f30cb6["Http3ControlStreamInboundHandlerTest"]
  8c132040_fb73_f247_23bd_3eda5c609d88["Http3ControlStreamInboundHandlerTest.java"]
  902435e9_3b03_3141_b560_3cdae4f30cb6 -->|defined in| 8c132040_fb73_f247_23bd_3eda5c609d88
  dc8e71dd_91cc_61bc_d5a0_3b861c8688fd["Http3ControlStreamInboundHandlerTest()"]
  902435e9_3b03_3141_b560_3cdae4f30cb6 -->|method| dc8e71dd_91cc_61bc_d5a0_3b861c8688fd
  945fc66b_2ea9_4a80_e949_9d2753ab134b["testData()"]
  902435e9_3b03_3141_b560_3cdae4f30cb6 -->|method| 945fc66b_2ea9_4a80_e949_9d2753ab134b
  e80acb1e_888a_ce0b_e1f2_1f018c18226b["setUp()"]
  902435e9_3b03_3141_b560_3cdae4f30cb6 -->|method| e80acb1e_888a_ce0b_e1f2_1f018c18226b
  c733a44d_1582_c045_08f4_6be8655f2d39["afterSettingsFrameRead()"]
  902435e9_3b03_3141_b560_3cdae4f30cb6 -->|method| c733a44d_1582_c045_08f4_6be8655f2d39
  d0c80fbe_0ddf_6c4b_a3b1_b7ec56ff60f9["ChannelHandler()"]
  902435e9_3b03_3141_b560_3cdae4f30cb6 -->|method| d0c80fbe_0ddf_6c4b_a3b1_b7ec56ff60f9
  568b19ce_b427_4748_3c09_9079727e93ec["newValidFrames()"]
  902435e9_3b03_3141_b560_3cdae4f30cb6 -->|method| 568b19ce_b427_4748_3c09_9079727e93ec
  b4d71c8d_1093_9975_99b5_9aed798c35cf["newInvalidFrames()"]
  902435e9_3b03_3141_b560_3cdae4f30cb6 -->|method| b4d71c8d_1093_9975_99b5_9aed798c35cf
  59b3f173_11c4_84be_5dcb_b131aff1d4aa["testInvalidFirstFrameHttp3GoAwayFrame()"]
  902435e9_3b03_3141_b560_3cdae4f30cb6 -->|method| 59b3f173_11c4_84be_5dcb_b131aff1d4aa
  8cff5796_6dcd_c20c_d10b_4e8c601f07fb["testInvalidFirstFrameHttp3MaxPushIdFrame()"]
  902435e9_3b03_3141_b560_3cdae4f30cb6 -->|method| 8cff5796_6dcd_c20c_d10b_4e8c601f07fb
  8bd68cf0_2b2b_4dec_e71a_7024a97936f2["testInvalidFirstFrameHttp3CancelPushFrame()"]
  902435e9_3b03_3141_b560_3cdae4f30cb6 -->|method| 8bd68cf0_2b2b_4dec_e71a_7024a97936f2
  d56b945d_8def_ebfa_0014_323d324ed151["testInvalidFirstFrameNonControlFrame()"]
  902435e9_3b03_3141_b560_3cdae4f30cb6 -->|method| d56b945d_8def_ebfa_0014_323d324ed151
  e3131110_ec00_0184_d690_3f33218b34bb["testInvalidFirstFrame()"]
  902435e9_3b03_3141_b560_3cdae4f30cb6 -->|method| e3131110_ec00_0184_d690_3f33218b34bb
  3d346ee5_acba_dac7_e502_63112e0501b7["testValidGoAwayFrame()"]
  902435e9_3b03_3141_b560_3cdae4f30cb6 -->|method| 3d346ee5_acba_dac7_e502_63112e0501b7

Relationship Graph

Source Code

codec-http3/src/test/java/io/netty/handler/codec/http3/Http3ControlStreamInboundHandlerTest.java lines 41–272

public class Http3ControlStreamInboundHandlerTest extends
        AbstractHttp3FrameTypeValidationHandlerTest<Http3ControlStreamFrame> {

    private QpackEncoder qpackEncoder;
    private Http3ControlStreamOutboundHandler remoteControlStreamHandler;

    public Http3ControlStreamInboundHandlerTest() {
        super(QuicStreamType.UNIDIRECTIONAL, false, false);
    }

    static Collection<Object[]> testData() {
        List<Object[]> config = new ArrayList<>();
        for (int a = 0; a < 2; a++) {
            for (int b = 0; b < 2; b++) {
                config.add(new Object[] { a == 0, b == 0 });
            }
        }
        return config;
    }

    @Override
    protected void setUp(boolean server) {
        super.setUp(server);
        qpackEncoder = new QpackEncoder();
        remoteControlStreamHandler = new Http3ControlStreamOutboundHandler(server, new DefaultHttp3SettingsFrame(),
                new ChannelInboundHandlerAdapter());
    }

    @Override
    protected void afterSettingsFrameRead(Http3SettingsFrame settingsFrame) {
        if (!qpackAttributes.dynamicTableDisabled()) {
            // settings frame initialize QPACK streams
            readAndReleaseStreamHeader(qPACKEncoderStream());
            readAndReleaseStreamHeader(qPACKDecoderStream());
        }
    }

    @Override
    protected ChannelHandler newHandler(boolean server) {
        return new Http3ControlStreamInboundHandler(server, new ChannelInboundHandlerAdapter(), qpackEncoder,
                remoteControlStreamHandler);
    }

    @Override
    protected List<Http3ControlStreamFrame> newValidFrames() {
        return Arrays.asList(new DefaultHttp3SettingsFrame(), new DefaultHttp3GoAwayFrame(0),
                new DefaultHttp3MaxPushIdFrame(0), new DefaultHttp3CancelPushFrame(0));
    }

    @Override
    protected List<Http3Frame> newInvalidFrames() {
        return Arrays.asList(Http3TestUtils.newHttp3RequestStreamFrame(), Http3TestUtils.newHttp3PushStreamFrame());
    }

    @ParameterizedTest(name = "{index}: server = {0}, forwardControlFrames = {1}")
    @MethodSource("testData")
    public void testInvalidFirstFrameHttp3GoAwayFrame(boolean server, boolean forwardControlFrames) throws Exception {
        setUp(server);
        testInvalidFirstFrame(server, forwardControlFrames, new DefaultHttp3GoAwayFrame(0));
    }

    @ParameterizedTest(name = "{index}: server = {0}, forwardControlFrames = {1}")
    @MethodSource("testData")
    public void testInvalidFirstFrameHttp3MaxPushIdFrame(boolean server, boolean forwardControlFrames)
            throws Exception {
        setUp(server);
        testInvalidFirstFrame(server, forwardControlFrames, new DefaultHttp3MaxPushIdFrame(0));
    }

    @ParameterizedTest(name = "{index}: server = {0}, forwardControlFrames = {1}")
    @MethodSource("testData")
    public void testInvalidFirstFrameHttp3CancelPushFrame(boolean server, boolean forwardControlFrames)
            throws Exception {
        setUp(server);
        testInvalidFirstFrame(server, forwardControlFrames, new DefaultHttp3CancelPushFrame(0));
    }

    @ParameterizedTest(name = "{index}: server = {0}, forwardControlFrames = {1}")
    @MethodSource("testData")
    public void testInvalidFirstFrameNonControlFrame(boolean server, boolean forwardControlFrames) throws Exception {
        setUp(server);

Frequently Asked Questions

What is the Http3ControlStreamInboundHandlerTest class?
Http3ControlStreamInboundHandlerTest is a class in the netty codebase, defined in codec-http3/src/test/java/io/netty/handler/codec/http3/Http3ControlStreamInboundHandlerTest.java.
Where is Http3ControlStreamInboundHandlerTest defined?
Http3ControlStreamInboundHandlerTest is defined in codec-http3/src/test/java/io/netty/handler/codec/http3/Http3ControlStreamInboundHandlerTest.java at line 41.

Analyze Your Own Codebase

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

Try Supermodel Free