QpackDecoderHandlerTest Class — netty Architecture
Architecture documentation for the QpackDecoderHandlerTest class in QpackDecoderHandlerTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 708fffe6_76c4_53cd_c185_aade2e79a203["QpackDecoderHandlerTest"] 3ac33839_b8a4_fb8e_6836_96ba01b41ee3["QpackDecoderHandlerTest.java"] 708fffe6_76c4_53cd_c185_aade2e79a203 -->|defined in| 3ac33839_b8a4_fb8e_6836_96ba01b41ee3 dfa4ebd5_1477_da90_4f1f_570aa10ee9c0["tearDown()"] 708fffe6_76c4_53cd_c185_aade2e79a203 -->|method| dfa4ebd5_1477_da90_4f1f_570aa10ee9c0 996f8a8a_cca7_5c83_69c3_07cd08156453["sectionAckNoIncrement()"] 708fffe6_76c4_53cd_c185_aade2e79a203 -->|method| 996f8a8a_cca7_5c83_69c3_07cd08156453 39ad5734_3b52_99e2_5c2b_b4e91aadc545["sectionAck()"] 708fffe6_76c4_53cd_c185_aade2e79a203 -->|method| 39ad5734_3b52_99e2_5c2b_b4e91aadc545 35604df2_f31f_522f_deb5_6deedf7e9266["sectionAckUnknownStream()"] 708fffe6_76c4_53cd_c185_aade2e79a203 -->|method| 35604df2_f31f_522f_deb5_6deedf7e9266 80901d0f_ee4c_bf76_96ed_16f33e871787["sectionAckAlreadyAcked()"] 708fffe6_76c4_53cd_c185_aade2e79a203 -->|method| 80901d0f_ee4c_bf76_96ed_16f33e871787 71ab7336_3b89_63a6_e08e_247fec2417cb["sectionAckMultiPending()"] 708fffe6_76c4_53cd_c185_aade2e79a203 -->|method| 71ab7336_3b89_63a6_e08e_247fec2417cb 957ba1dd_f340_3fae_ce33_a3c3d6a35709["sectionAckMultiPostAck()"] 708fffe6_76c4_53cd_c185_aade2e79a203 -->|method| 957ba1dd_f340_3fae_ce33_a3c3d6a35709 0fc07876_2d59_4390_1743_a47a3066f684["sectionAckCancelledStream()"] 708fffe6_76c4_53cd_c185_aade2e79a203 -->|method| 0fc07876_2d59_4390_1743_a47a3066f684 1ecd35f8_52a6_6372_033d_79aa1845e418["splitBufferForSectionAck()"] 708fffe6_76c4_53cd_c185_aade2e79a203 -->|method| 1ecd35f8_52a6_6372_033d_79aa1845e418 5e771bc9_42b7_3343_c6a0_23cc484528b4["splitBufferForInsertCountIncrement()"] 708fffe6_76c4_53cd_c185_aade2e79a203 -->|method| 5e771bc9_42b7_3343_c6a0_23cc484528b4 15ebf0fd_b376_598c_5edc_fc641d08c3cb["splitBufferForStreamCancellation()"] 708fffe6_76c4_53cd_c185_aade2e79a203 -->|method| 15ebf0fd_b376_598c_5edc_fc641d08c3cb d7ab5f22_76c7_185e_02de_3fb5f2341a42["streamCancel()"] 708fffe6_76c4_53cd_c185_aade2e79a203 -->|method| d7ab5f22_76c7_185e_02de_3fb5f2341a42 e847dd0a_8987_e663_c75d_e1f943a9c0af["streamCancelUnknownStream()"] 708fffe6_76c4_53cd_c185_aade2e79a203 -->|method| e847dd0a_8987_e663_c75d_e1f943a9c0af
Relationship Graph
Source Code
codec-http3/src/test/java/io/netty/handler/codec/http3/QpackDecoderHandlerTest.java lines 35–359
public class QpackDecoderHandlerTest {
private static final QpackHeaderField fooBar = new QpackHeaderField("foo", "bar");
private final QpackEncoderDynamicTable dynamicTable = new QpackEncoderDynamicTable();
private EmbeddedQuicChannel parent;
private QpackEncoder encoder;
private EmbeddedQuicStreamChannel decoderStream;
private EmbeddedQuicStreamChannel encoderStream;
private int maxEntries;
private QpackAttributes attributes;
@AfterEach
public void tearDown() {
assertFalse(encoderStream.finish());
assertFalse(decoderStream.finish());
}
@Test
public void sectionAckNoIncrement() throws Exception {
setup(128L);
encodeHeaders(headers -> headers.add(fooBar.name, fooBar.value));
Http3Exception e = assertThrows(Http3Exception.class, () -> sendAckForStreamId(decoderStream.streamId()));
assertThat(e.getCause(), instanceOf(QpackException.class));
Http3TestUtils.verifyClose(QPACK_DECODER_STREAM_ERROR, parent);
finishStreams();
}
@Test
public void sectionAck() throws Exception {
setup(128L);
encodeHeaders(headers -> headers.add(fooBar.name, fooBar.value));
verifyRequiredInsertCount(1);
sendInsertCountIncrement(1);
verifyKnownReceivedCount(1);
// Refer now to dynamic table
encodeHeaders(headers -> headers.add(fooBar.name, fooBar.value));
sendAckForStreamId(decoderStream.streamId());
finishStreams();
verifyRequiredInsertCount(1);
verifyKnownReceivedCount(1);
}
@Test
public void sectionAckUnknownStream() throws Exception {
setup(128);
Http3Exception e = assertThrows(Http3Exception.class, () -> sendAckForStreamId(1));
assertThat(e.getCause(), instanceOf(QpackException.class));
Http3TestUtils.verifyClose(QPACK_DECODER_STREAM_ERROR, parent);
finishStreams();
}
@Test
public void sectionAckAlreadyAcked() throws Exception {
setup(128);
encodeHeaders(headers -> headers.add(fooBar.name, fooBar.value));
sendInsertCountIncrement(1);
// Refer now to dynamic table
encodeHeaders(headers -> headers.add(fooBar.name, fooBar.value));
sendAckForStreamId(decoderStream.streamId());
Http3Exception e = assertThrows(Http3Exception.class, () -> sendAckForStreamId(decoderStream.streamId()));
assertThat(e.getCause(), instanceOf(QpackException.class));
Http3TestUtils.verifyClose(QPACK_DECODER_STREAM_ERROR, parent);
finishStreams();
verifyRequiredInsertCount(1);
verifyKnownReceivedCount(1);
}
@Test
public void sectionAckMultiPending() throws Exception {
setup(128L);
encodeHeaders(headers -> headers.add(fooBar.name, fooBar.value));
sendInsertCountIncrement(1);
Source
Frequently Asked Questions
What is the QpackDecoderHandlerTest class?
QpackDecoderHandlerTest is a class in the netty codebase, defined in codec-http3/src/test/java/io/netty/handler/codec/http3/QpackDecoderHandlerTest.java.
Where is QpackDecoderHandlerTest defined?
QpackDecoderHandlerTest is defined in codec-http3/src/test/java/io/netty/handler/codec/http3/QpackDecoderHandlerTest.java at line 35.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free