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);
Defined In
Source
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