Home / Class/ HttpConversionUtilTest Class — netty Architecture

HttpConversionUtilTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  90921352_eb40_1512_a9e2_d4d851815dfa["HttpConversionUtilTest"]
  1c72aed8_6b4b_a3a1_39a6_ecb7060043af["HttpConversionUtilTest.java"]
  90921352_eb40_1512_a9e2_d4d851815dfa -->|defined in| 1c72aed8_6b4b_a3a1_39a6_ecb7060043af
  970caf8a_74a2_cbff_e0a8_1eb66e213b20["connectNoPath()"]
  90921352_eb40_1512_a9e2_d4d851815dfa -->|method| 970caf8a_74a2_cbff_e0a8_1eb66e213b20
  47fe1222_c525_43f5_d825_eeb7f244b3b9["setHttp2AuthorityWithoutUserInfo()"]
  90921352_eb40_1512_a9e2_d4d851815dfa -->|method| 47fe1222_c525_43f5_d825_eeb7f244b3b9
  0b474171_a7f0_7d12_8bb6_b95b5df15b2b["setHttp2AuthorityWithUserInfo()"]
  90921352_eb40_1512_a9e2_d4d851815dfa -->|method| 0b474171_a7f0_7d12_8bb6_b95b5df15b2b
  a452074a_dd8b_d864_f050_9e48ad8b8a70["setHttp2AuthorityNullOrEmpty()"]
  90921352_eb40_1512_a9e2_d4d851815dfa -->|method| a452074a_dd8b_d864_f050_9e48ad8b8a70
  d58f4395_8b4a_4648_0bc5_ccd8a7a68f5c["setHttp2AuthorityWithEmptyAuthority()"]
  90921352_eb40_1512_a9e2_d4d851815dfa -->|method| d58f4395_8b4a_4648_0bc5_ccd8a7a68f5c
  9d04d83a_971b_550c_6ce3_88f8f5d03f38["stripTEHeaders()"]
  90921352_eb40_1512_a9e2_d4d851815dfa -->|method| 9d04d83a_971b_550c_6ce3_88f8f5d03f38
  0f887edc_c63c_e88e_390a_e9151f1b54d4["stripTEHeadersExcludingTrailers()"]
  90921352_eb40_1512_a9e2_d4d851815dfa -->|method| 0f887edc_c63c_e88e_390a_e9151f1b54d4
  281a9946_1886_005e_b9cc_db83e1164d3d["stripTEHeadersCsvSeparatedExcludingTrailers()"]
  90921352_eb40_1512_a9e2_d4d851815dfa -->|method| 281a9946_1886_005e_b9cc_db83e1164d3d
  94cc6e90_369a_ae74_f455_b705edc86e20["stripTEHeadersCsvSeparatedAccountsForValueSimilarToTrailers()"]
  90921352_eb40_1512_a9e2_d4d851815dfa -->|method| 94cc6e90_369a_ae74_f455_b705edc86e20
  44e08fd7_7172_dea1_22c3_b7bd2fcd813e["stripTEHeadersAccountsForValueSimilarToTrailers()"]
  90921352_eb40_1512_a9e2_d4d851815dfa -->|method| 44e08fd7_7172_dea1_22c3_b7bd2fcd813e
  0d67c80d_c015_c9d9_4578_608a920615f4["stripTEHeadersAccountsForOWS()"]
  90921352_eb40_1512_a9e2_d4d851815dfa -->|method| 0d67c80d_c015_c9d9_4578_608a920615f4
  a2372fd8_f209_ccbb_57c8_078b5c67ffcf["stripConnectionHeadersAndNominees()"]
  90921352_eb40_1512_a9e2_d4d851815dfa -->|method| a2372fd8_f209_ccbb_57c8_078b5c67ffcf
  094fa774_c010_b7dd_5f6b_491554e74bf7["stripConnectionNomineesWithCsv()"]
  90921352_eb40_1512_a9e2_d4d851815dfa -->|method| 094fa774_c010_b7dd_5f6b_491554e74bf7

Relationship Graph

Source Code

codec-http2/src/test/java/io/netty/handler/codec/http2/HttpConversionUtilTest.java lines 46–306

public class HttpConversionUtilTest {

    @Test
    public void connectNoPath() throws Exception {
        String authority = "netty.io:80";
        Http2Headers headers = new DefaultHttp2Headers();
        headers.authority(authority);
        headers.method(HttpMethod.CONNECT.asciiName());
        HttpRequest request = HttpConversionUtil.toHttpRequest(0, headers, true);
        assertNotNull(request);
        assertEquals(authority, request.uri());
        assertEquals(authority, request.headers().get(HOST));
    }

    @Test
    public void setHttp2AuthorityWithoutUserInfo() {
        Http2Headers headers = new DefaultHttp2Headers();

        HttpConversionUtil.setHttp2Authority("foo", headers);
        assertEquals(new AsciiString("foo"), headers.authority());
    }

    @Test
    public void setHttp2AuthorityWithUserInfo() {
        Http2Headers headers = new DefaultHttp2Headers();

        HttpConversionUtil.setHttp2Authority("info@foo", headers);
        assertEquals(new AsciiString("foo"), headers.authority());

        HttpConversionUtil.setHttp2Authority("@foo.bar", headers);
        assertEquals(new AsciiString("foo.bar"), headers.authority());
    }

    @Test
    public void setHttp2AuthorityNullOrEmpty() {
        Http2Headers headers = new DefaultHttp2Headers();

        HttpConversionUtil.setHttp2Authority(null, headers);
        assertNull(headers.authority());

        // https://datatracker.ietf.org/doc/html/rfc9113#section-8.3.1
        // Clients that generate HTTP/2 requests directly MUST use the ":authority" pseudo-header
        // field to convey authority information, unless there is no authority information to convey
        // (in which case it MUST NOT generate ":authority").
        // An intermediary that forwards a request over HTTP/2 MUST construct an ":authority" pseudo-header
        // field using the authority information from the control data of the original request, unless the
        // original request's target URI does not contain authority information
        // (in which case it MUST NOT generate ":authority").
        assertThrows(Http2Exception.class, new Executable() {
            @Override
            public void execute() {
                HttpConversionUtil.setHttp2Authority("", new DefaultHttp2Headers());
            }
        });
    }

    @Test
    public void setHttp2AuthorityWithEmptyAuthority() {
        assertThrows(IllegalArgumentException.class, new Executable() {
            @Override
            public void execute() {
                HttpConversionUtil.setHttp2Authority("info@", new DefaultHttp2Headers());
            }
        });
    }

    @Test
    public void stripTEHeaders() {
        HttpHeaders inHeaders = new DefaultHttpHeaders();
        inHeaders.add(TE, GZIP);
        Http2Headers out = new DefaultHttp2Headers();
        HttpConversionUtil.toHttp2Headers(inHeaders, out);
        assertTrue(out.isEmpty());
    }

    @Test
    public void stripTEHeadersExcludingTrailers() {
        HttpHeaders inHeaders = new DefaultHttpHeaders();
        inHeaders.add(TE, GZIP);
        inHeaders.add(TE, TRAILERS);
        Http2Headers out = new DefaultHttp2Headers();

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free