Home / Class/ Http3HeadersSinkTest Class — netty Architecture

Http3HeadersSinkTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  44533ac4_926b_9689_4e92_561270ec7a60["Http3HeadersSinkTest"]
  d5061e76_9e00_4af6_177a_f77e727510b4["Http3HeadersSinkTest.java"]
  44533ac4_926b_9689_4e92_561270ec7a60 -->|defined in| d5061e76_9e00_4af6_177a_f77e727510b4
  2a6dc8f8_2a44_5644_f40e_9451aa9ac1d0["testHeaderSizeExceeded()"]
  44533ac4_926b_9689_4e92_561270ec7a60 -->|method| 2a6dc8f8_2a44_5644_f40e_9451aa9ac1d0
  43b9b34b_0cf0_e6e1_3aa7_ef10fd1bc9ac["testHeaderSizeNotExceed()"]
  44533ac4_926b_9689_4e92_561270ec7a60 -->|method| 43b9b34b_0cf0_e6e1_3aa7_ef10fd1bc9ac
  69000419_a88e_e2ad_587c_7dacf15633f1["testPseudoHeaderFollowsNormalHeader()"]
  44533ac4_926b_9689_4e92_561270ec7a60 -->|method| 69000419_a88e_e2ad_587c_7dacf15633f1
  6f2d00c3_cc31_e496_ad95_d099bedf6e61["testInvalidatePseudoHeader()"]
  44533ac4_926b_9689_4e92_561270ec7a60 -->|method| 6f2d00c3_cc31_e496_ad95_d099bedf6e61
  26e112b1_05c1_accc_f0f3_b4ab38d15627["testMixRequestResponsePseudoHeaders()"]
  44533ac4_926b_9689_4e92_561270ec7a60 -->|method| 26e112b1_05c1_accc_f0f3_b4ab38d15627
  8d5073b6_1527_d681_ecc8_9059f96785fb["testValidPseudoHeadersRequest()"]
  44533ac4_926b_9689_4e92_561270ec7a60 -->|method| 8d5073b6_1527_d681_ecc8_9059f96785fb
  78f2020b_6087_468e_84e1_6810eaee0bbf["testValidPseudoHeadersResponse()"]
  44533ac4_926b_9689_4e92_561270ec7a60 -->|method| 78f2020b_6087_468e_84e1_6810eaee0bbf
  6f8c9282_e06e_6ee8_4a93_fbcafdf013eb["testDuplicatePseudoHeader()"]
  44533ac4_926b_9689_4e92_561270ec7a60 -->|method| 6f8c9282_e06e_6ee8_4a93_fbcafdf013eb
  71c84102_f957_acc7_6c89_021e770c9357["testMandatoryPseudoHeaderMissingRequest()"]
  44533ac4_926b_9689_4e92_561270ec7a60 -->|method| 71c84102_f957_acc7_6c89_021e770c9357
  6d680fe1_b5ed_f3d1_ccdc_c7d9974362ef["testMandatoryPseudoHeaderMissingResponse()"]
  44533ac4_926b_9689_4e92_561270ec7a60 -->|method| 6d680fe1_b5ed_f3d1_ccdc_c7d9974362ef
  75e214f8_de4b_c168_e2a3_0aa32e9219bc["testInvalidPseudoHeadersForConnect()"]
  44533ac4_926b_9689_4e92_561270ec7a60 -->|method| 75e214f8_de4b_c168_e2a3_0aa32e9219bc
  a39a6b50_5ed6_47bc_4702_255760350d12["testValidPseudoHeadersForConnect()"]
  44533ac4_926b_9689_4e92_561270ec7a60 -->|method| a39a6b50_5ed6_47bc_4702_255760350d12
  ebeb1550_229a_263a_97e2_027b1fa28ff9["testTrailersWithRequestPseudoHeaders()"]
  44533ac4_926b_9689_4e92_561270ec7a60 -->|method| ebeb1550_229a_263a_97e2_027b1fa28ff9

Relationship Graph

Source Code

codec-http3/src/test/java/io/netty/handler/codec/http3/Http3HeadersSinkTest.java lines 25–196

public class Http3HeadersSinkTest {

    @Test
    public void testHeaderSizeExceeded() {
        Http3HeadersSink sink = new Http3HeadersSink(new DefaultHttp3Headers(), 32, false, false);
        addMandatoryPseudoHeaders(sink, false);

        Http3Exception e = assertThrows(Http3Exception.class, () -> sink.finish());
        Http3TestUtils.assertException(Http3ErrorCode.H3_EXCESSIVE_LOAD, e);
    }

    @Test
    public void testHeaderSizeNotExceed() throws Exception {
        Http3Headers headers = new DefaultHttp3Headers();
        Http3HeadersSink sink = new Http3HeadersSink(headers, 64, false, false);
        addMandatoryPseudoHeaders(sink, false);
        sink.finish();
    }

    @Test
    public void testPseudoHeaderFollowsNormalHeader() {
        Http3HeadersSink sink = new Http3HeadersSink(new DefaultHttp3Headers(), 512, true, false);
        sink.accept("name", "value");
        sink.accept(Http3Headers.PseudoHeaderName.AUTHORITY.value(), "value");
        assertThrows(Http3HeadersValidationException.class, () -> sink.finish());
    }

    @Test
    public void testInvalidatePseudoHeader() {
        Http3HeadersSink sink = new Http3HeadersSink(new DefaultHttp3Headers(), 512, true, false);
        sink.accept(":invalid", "value");
        assertThrows(Http3HeadersValidationException.class, () -> sink.finish());
    }

    @Test
    public void testMixRequestResponsePseudoHeaders() {
        Http3HeadersSink sink = new Http3HeadersSink(new DefaultHttp3Headers(), 512, true, false);
        sink.accept(Http3Headers.PseudoHeaderName.METHOD.value(), "value");
        sink.accept(Http3Headers.PseudoHeaderName.STATUS.value(), "value");
        assertThrows(Http3HeadersValidationException.class, () -> sink.finish());
    }

    @Test
    public void testValidPseudoHeadersRequest() throws Exception {
        Http3Headers headers = new DefaultHttp3Headers();
        Http3HeadersSink sink = new Http3HeadersSink(headers, 512, true, false);
        addMandatoryPseudoHeaders(sink, true);
        sink.finish();
    }

    @Test
    public void testValidPseudoHeadersResponse() throws Exception {
        Http3Headers headers = new DefaultHttp3Headers();
        Http3HeadersSink sink = new Http3HeadersSink(headers, 512, true, false);
        addMandatoryPseudoHeaders(sink, false);
        sink.finish();
    }

    @Test
    public void testDuplicatePseudoHeader() {
        Http3HeadersSink sink = new Http3HeadersSink(new DefaultHttp3Headers(), 512, true, false);
        addMandatoryPseudoHeaders(sink, false);
        sink.accept(Http3Headers.PseudoHeaderName.AUTHORITY.value(), "value");
        assertThrows(Http3HeadersValidationException.class, () -> sink.finish());
    }

    @Test
    public void testMandatoryPseudoHeaderMissingRequest() {
        Http3HeadersSink sink = new Http3HeadersSink(new DefaultHttp3Headers(), 512, true, false);
        sink.accept(Http3Headers.PseudoHeaderName.METHOD.value(), "GET");
        sink.accept(Http3Headers.PseudoHeaderName.PATH.value(), "/");
        sink.accept(Http3Headers.PseudoHeaderName.SCHEME.value(), "https");
        assertThrows(Http3HeadersValidationException.class, () -> sink.finish());
    }

    @Test
    public void testMandatoryPseudoHeaderMissingResponse() {
        Http3HeadersSink sink = new Http3HeadersSink(new DefaultHttp3Headers(), 512, true, false);
        assertThrows(Http3HeadersValidationException.class, () -> sink.finish());
    }

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free