Home / Class/ HttpVersionParsingTest Class — netty Architecture

HttpVersionParsingTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  00ebfe61_03bc_fd95_3e17_ac055b32e5e3["HttpVersionParsingTest"]
  3e341ac1_6015_adf9_2fe7_6fcdfc4563d7["HttpVersionParsingTest.java"]
  00ebfe61_03bc_fd95_3e17_ac055b32e5e3 -->|defined in| 3e341ac1_6015_adf9_2fe7_6fcdfc4563d7
  e5bc45bd_116a_e1bd_4cdb_f233e34d450c["testStandardVersions()"]
  00ebfe61_03bc_fd95_3e17_ac055b32e5e3 -->|method| e5bc45bd_116a_e1bd_4cdb_f233e34d450c
  ac98eea9_2121_ab58_b340_a88d88964027["testLowerCaseProtocolNameNonStrict()"]
  00ebfe61_03bc_fd95_3e17_ac055b32e5e3 -->|method| ac98eea9_2121_ab58_b340_a88d88964027
  cf538e31_f3a7_8f72_2a54_8a199cb39849["testMixedCaseProtocolNameNonStrict()"]
  00ebfe61_03bc_fd95_3e17_ac055b32e5e3 -->|method| cf538e31_f3a7_8f72_2a54_8a199cb39849
  4c8679f6_c055_2937_eaa9_0b60541a2f2c["testCustomLowerCaseProtocolNonStrict()"]
  00ebfe61_03bc_fd95_3e17_ac055b32e5e3 -->|method| 4c8679f6_c055_2937_eaa9_0b60541a2f2c
  749c1496_bbed_67e3_ee8e_8b716584f198["testCustomVersionNonStrict()"]
  00ebfe61_03bc_fd95_3e17_ac055b32e5e3 -->|method| 749c1496_bbed_67e3_ee8e_8b716584f198
  4703c616_674b_d96a_ce42_e7752373db12["testCustomVersionStrict()"]
  00ebfe61_03bc_fd95_3e17_ac055b32e5e3 -->|method| 4703c616_674b_d96a_ce42_e7752373db12
  2f764d8e_67f0_baa9_93fa_8a04e65de402["testCustomVersionStrictFailsOnLongVersion()"]
  00ebfe61_03bc_fd95_3e17_ac055b32e5e3 -->|method| 2f764d8e_67f0_baa9_93fa_8a04e65de402
  7f041934_3ed5_69ce_6624_2ae2814f442f["testInvalidFormatMissingSlash()"]
  00ebfe61_03bc_fd95_3e17_ac055b32e5e3 -->|method| 7f041934_3ed5_69ce_6624_2ae2814f442f
  5f9d4ccc_4ab9_6ce3_92e0_a5cd447e36e1["testInvalidFormatWhitespaceInProtocol()"]
  00ebfe61_03bc_fd95_3e17_ac055b32e5e3 -->|method| 5f9d4ccc_4ab9_6ce3_92e0_a5cd447e36e1
  0652bc57_7956_24a8_a193_b4162c921b45["httpVersionMustRejectIllegalTokens()"]
  00ebfe61_03bc_fd95_3e17_ac055b32e5e3 -->|method| 0652bc57_7956_24a8_a193_b4162c921b45

Relationship Graph

Source Code

codec-http/src/test/java/io/netty/handler/codec/http/HttpVersionParsingTest.java lines 27–162

public class HttpVersionParsingTest {

    @Test
    void testStandardVersions() {
        HttpVersion v10 = HttpVersion.valueOf("HTTP/1.0");
        HttpVersion v11 = HttpVersion.valueOf("HTTP/1.1");

        assertSame(HttpVersion.HTTP_1_0, v10);
        assertSame(HttpVersion.HTTP_1_1, v11);

        assertEquals("HTTP", v10.protocolName());
        assertEquals(1, v10.majorVersion());
        assertEquals(0, v10.minorVersion());

        assertEquals("HTTP", v11.protocolName());
        assertEquals(1, v11.majorVersion());
        assertEquals(1, v11.minorVersion());
    }

    @Test
    void testLowerCaseProtocolNameNonStrict() {
        HttpVersion version = HttpVersion.valueOf("http/1.1");
        assertEquals("HTTP", version.protocolName());
        assertEquals(1, version.majorVersion());
        assertEquals(1, version.minorVersion());
        assertEquals("HTTP/1.1", version.text());
    }

    @Test
    void testMixedCaseProtocolNameNonStrict() {
        HttpVersion version = HttpVersion.valueOf("hTtP/1.0");
        assertEquals("HTTP", version.protocolName());
        assertEquals(1, version.majorVersion());
        assertEquals(0, version.minorVersion());
        assertEquals("HTTP/1.0", version.text());
    }

    @Test
    void testCustomLowerCaseProtocolNonStrict() {
        HttpVersion version = HttpVersion.valueOf("mqtt/5.0");
        assertEquals("MQTT", version.protocolName());
        assertEquals(5, version.majorVersion());
        assertEquals(0, version.minorVersion());
        assertEquals("MQTT/5.0", version.text());
    }

    @Test
    void testCustomVersionNonStrict() {
        HttpVersion version = HttpVersion.valueOf("MyProto/2.3");
        assertEquals("MYPROTO", version.protocolName()); // uppercased
        assertEquals(2, version.majorVersion());
        assertEquals(3, version.minorVersion());
        assertEquals("MYPROTO/2.3", version.text());
    }

    @Test
    void testCustomVersionStrict() {
        HttpVersion version = new HttpVersion("HTTP/1.1", true, true);
        assertEquals("HTTP", version.protocolName());
        assertEquals(1, version.majorVersion());
        assertEquals(1, version.minorVersion());
    }

    @Test
    void testCustomVersionStrictFailsOnLongVersion() {
        IllegalArgumentException ex = assertThrows(IllegalArgumentException.class, () ->
                new HttpVersion("HTTP/10.1", true, true)
        );
        assertTrue(ex.getMessage().contains("invalid version format"));
    }

    @Test
    void testInvalidFormatMissingSlash() {
        assertThrows(IllegalArgumentException.class, () ->
                HttpVersion.valueOf("HTTP1.1")
        );
    }

    @Test
    void testInvalidFormatWhitespaceInProtocol() {
        assertThrows(IllegalArgumentException.class, () ->

Frequently Asked Questions

What is the HttpVersionParsingTest class?
HttpVersionParsingTest is a class in the netty codebase, defined in codec-http/src/test/java/io/netty/handler/codec/http/HttpVersionParsingTest.java.
Where is HttpVersionParsingTest defined?
HttpVersionParsingTest is defined in codec-http/src/test/java/io/netty/handler/codec/http/HttpVersionParsingTest.java at line 27.

Analyze Your Own Codebase

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

Try Supermodel Free