Home / Class/ DefaultHttpRequestTest Class — netty Architecture

DefaultHttpRequestTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  ede2b2a6_bd1f_83bc_7e1c_cc8e09e7d8ca["DefaultHttpRequestTest"]
  432deca7_ab23_7498_feeb_00eacc9f3c49["DefaultHttpRequestTest.java"]
  ede2b2a6_bd1f_83bc_7e1c_cc8e09e7d8ca -->|defined in| 432deca7_ab23_7498_feeb_00eacc9f3c49
  63e0b291_53fd_4acf_f388_ea8ceaea64f3["constructorMustRejectIllegalUrisByDefault()"]
  ede2b2a6_bd1f_83bc_7e1c_cc8e09e7d8ca -->|method| 63e0b291_53fd_4acf_f388_ea8ceaea64f3
  23cb7bc9_d30a_9dcb_9da0_98abbb35d892["validUris()"]
  ede2b2a6_bd1f_83bc_7e1c_cc8e09e7d8ca -->|method| 23cb7bc9_d30a_9dcb_9da0_98abbb35d892
  51ce19e8_9c8f_1971_ab71_7c01767c1cd3["String()"]
  ede2b2a6_bd1f_83bc_7e1c_cc8e09e7d8ca -->|method| 51ce19e8_9c8f_1971_ab71_7c01767c1cd3
  43ea0771_d0c7_330a_3837_08dbc170c9a7["constructorMustAcceptValidUris()"]
  ede2b2a6_bd1f_83bc_7e1c_cc8e09e7d8ca -->|method| 43ea0771_d0c7_330a_3837_08dbc170c9a7
  d78eb5fd_a8da_f246_9af1_c600b9ef7c99["constructorMustRejectIllegalHttpMethodByDefault()"]
  ede2b2a6_bd1f_83bc_7e1c_cc8e09e7d8ca -->|method| d78eb5fd_a8da_f246_9af1_c600b9ef7c99
  69e0cc26_4acf_d2de_c29d_d1e2f6469b41["constructorMustAcceptAllHttpMethods()"]
  ede2b2a6_bd1f_83bc_7e1c_cc8e09e7d8ca -->|method| 69e0cc26_4acf_d2de_c29d_d1e2f6469b41
  37da8db8_66e3_5d23_71e6_7b15da389063["testHeaderRemoval()"]
  ede2b2a6_bd1f_83bc_7e1c_cc8e09e7d8ca -->|method| 37da8db8_66e3_5d23_71e6_7b15da389063

Relationship Graph

Source Code

codec-http/src/test/java/io/netty/handler/codec/http/DefaultHttpRequestTest.java lines 32–231

public class DefaultHttpRequestTest {
    @ParameterizedTest
    @ValueSource(strings = {
            "http://localhost/\r\n",
            "/r\r\n?q=1",
            "http://localhost/\r\n?q=1",
            "/r\r\n/?q=1",
            "http://localhost/\r\n/?q=1",
            "/r\r\n",
            "http://localhost/ HTTP/1.1\r\n\r\nPOST /p HTTP/1.1\r\n\r\n",
            "/r HTTP/1.1\r\n\r\nPOST /p HTTP/1.1\r\n\r\n",
            "/ path",
            "/path ",
            " /path",
            "http://localhost/ ",
            " http://localhost/",
            "http://local host/",
    })
    void constructorMustRejectIllegalUrisByDefault(String uri) {
        assertThrows(IllegalArgumentException.class, () ->
                new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, uri));
    }

    public static Stream<String> validUris() {
        String pdigit = "123456789";
        String digit = '0' + pdigit;
        String digitcolon = digit + ':';
        String alpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String alphanum = alpha + digit;
        String alphanumdot = alphanum + '.';
        String unreserved = alphanumdot + "-_~";
        String subdelims = "$&%=!+,;'()";
        String userinfochars = unreserved + subdelims + ':';
        String pathchars = unreserved + '/';
        String querychars = pathchars + subdelims + '?';
        return new SplittableRandom().longs(1000)
                .mapToObj(seed -> {
                    SplittableRandom rng = new SplittableRandom(seed);
                    String start;
                    String path;
                    String query;
                    String fragment;
                    if (rng.nextBoolean()) {
                        String scheme = rng.nextBoolean() ? "http://" : "HTTP://";
                        String userinfo = rng.nextBoolean() ? "" : pick(rng, userinfochars, 1, 8) + '@';
                        String host;
                        String port;
                        switch (rng.nextInt(3)) {
                            case 0:
                                host = pick(rng, alphanum, 1, 1) + pick(rng, alphanumdot, 1, 5);
                                break;
                            case 1:
                                host = pick(rng, pdigit, 1, 1) + pick(rng, digit, 0, 2) + '.' +
                                        pick(rng, pdigit, 1, 1) + pick(rng, digit, 0, 2) + '.' +
                                        pick(rng, pdigit, 1, 1) + pick(rng, digit, 0, 2) + '.' +
                                        pick(rng, pdigit, 1, 1) + pick(rng, digit, 0, 2);
                                break;
                            default:
                                host = '[' + pick(rng, digitcolon, 1, 8) + ']';
                                break;
                        }
                        if (rng.nextBoolean()) {
                            port = ':' + pick(rng, pdigit, 1, 1) + pick(rng, digit, 0, 4);
                        } else {
                            port = "";
                        }
                        start = scheme + userinfo + host + port;
                    } else {
                        start = "";
                    }
                    path = '/' + pick(rng, pathchars, 0, 8);
                    if (rng.nextBoolean()) {
                        query = '?' + pick(rng, querychars, 0, 8);
                    } else {
                        query = "";
                    }
                    if (rng.nextBoolean()) {
                        fragment = '#' + pick(rng, querychars, 0, 8);
                    } else {
                        fragment = "";
                    }

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free