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();
Source
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