CleartextHttp2ServerUpgradeHandlerTest Class — netty Architecture
Architecture documentation for the CleartextHttp2ServerUpgradeHandlerTest class in CleartextHttp2ServerUpgradeHandlerTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 24405e75_fc53_b81a_62ef_04cb80649864["CleartextHttp2ServerUpgradeHandlerTest"] b4542258_c085_9803_406d_80bfe4cd9da2["CleartextHttp2ServerUpgradeHandlerTest.java"] 24405e75_fc53_b81a_62ef_04cb80649864 -->|defined in| b4542258_c085_9803_406d_80bfe4cd9da2 0d4ba23e_9249_2941_979a_64a6d32d3fff["setUpServerChannel()"] 24405e75_fc53_b81a_62ef_04cb80649864 -->|method| 0d4ba23e_9249_2941_979a_64a6d32d3fff e86a96c6_382c_2507_bdb6_988aecda60d9["tearDown()"] 24405e75_fc53_b81a_62ef_04cb80649864 -->|method| e86a96c6_382c_2507_bdb6_988aecda60d9 e0e2ac43_94b0_c7ca_8d92_1e2ee97a611b["priorKnowledge()"] 24405e75_fc53_b81a_62ef_04cb80649864 -->|method| e0e2ac43_94b0_c7ca_8d92_1e2ee97a611b 0bcb6d6f_a2e2_542d_3c02_f3ea20ae5faf["upgrade()"] 24405e75_fc53_b81a_62ef_04cb80649864 -->|method| 0bcb6d6f_a2e2_542d_3c02_f3ea20ae5faf 65492212_ad30_7906_f9d3_92cb250418f5["upgradeWithMultipleConnectionHeaders()"] 24405e75_fc53_b81a_62ef_04cb80649864 -->|method| 65492212_ad30_7906_f9d3_92cb250418f5 f846613a_c04f_1ec2_80cc_d7082d92ef92["requiredHeadersInSeparateConnectionHeaders()"] 24405e75_fc53_b81a_62ef_04cb80649864 -->|method| f846613a_c04f_1ec2_80cc_d7082d92ef92 aa6eb3a6_753d_44bf_3286_41de56114e9e["priorKnowledgeInFragments()"] 24405e75_fc53_b81a_62ef_04cb80649864 -->|method| aa6eb3a6_753d_44bf_3286_41de56114e9e 1e9fd380_a7e6_736a_4336_76fb6cf2543b["downgrade()"] 24405e75_fc53_b81a_62ef_04cb80649864 -->|method| 1e9fd380_a7e6_736a_4336_76fb6cf2543b b2e7c0c6_b199_c5dc_3810_14ba7ae89c85["usedHttp2MultiplexCodec()"] 24405e75_fc53_b81a_62ef_04cb80649864 -->|method| b2e7c0c6_b199_c5dc_3810_14ba7ae89c85 f4fa60bd_cd8e_ed3e_4175_4d6e3a106003["ByteBuf()"] 24405e75_fc53_b81a_62ef_04cb80649864 -->|method| f4fa60bd_cd8e_ed3e_4175_4d6e3a106003 43e58436_ee0a_6ccf_310f_1fae06b66417["Http2Settings()"] 24405e75_fc53_b81a_62ef_04cb80649864 -->|method| 43e58436_ee0a_6ccf_310f_1fae06b66417 f392444a_9fec_021c_0d7d_3cb6056aa954["validateClearTextUpgrade()"] 24405e75_fc53_b81a_62ef_04cb80649864 -->|method| f392444a_9fec_021c_0d7d_3cb6056aa954
Relationship Graph
Source Code
codec-http2/src/test/java/io/netty/handler/codec/http2/CleartextHttp2ServerUpgradeHandlerTest.java lines 58–291
public class CleartextHttp2ServerUpgradeHandlerTest {
private EmbeddedChannel channel;
private Http2FrameListener frameListener;
private Http2ConnectionHandler http2ConnectionHandler;
private List<Object> userEvents;
private void setUpServerChannel() {
frameListener = mock(Http2FrameListener.class);
http2ConnectionHandler = new Http2ConnectionHandlerBuilder()
.frameListener(frameListener).build();
UpgradeCodecFactory upgradeCodecFactory = new UpgradeCodecFactory() {
@Override
public UpgradeCodec newUpgradeCodec(CharSequence protocol) {
return new Http2ServerUpgradeCodec(http2ConnectionHandler);
}
};
userEvents = new ArrayList<Object>();
HttpServerCodec httpServerCodec = new HttpServerCodec();
HttpServerUpgradeHandler upgradeHandler = new HttpServerUpgradeHandler(httpServerCodec, upgradeCodecFactory);
CleartextHttp2ServerUpgradeHandler handler = new CleartextHttp2ServerUpgradeHandler(
httpServerCodec, upgradeHandler, http2ConnectionHandler);
channel = new EmbeddedChannel(handler, new ChannelInboundHandlerAdapter() {
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
userEvents.add(evt);
}
});
}
@AfterEach
public void tearDown() throws Exception {
channel.finishAndReleaseAll();
}
@Test
public void priorKnowledge() throws Exception {
setUpServerChannel();
channel.writeInbound(Http2CodecUtil.connectionPrefaceBuf());
ByteBuf settingsFrame = settingsFrameBuf();
assertFalse(channel.writeInbound(settingsFrame));
assertEquals(1, userEvents.size());
assertTrue(userEvents.get(0) instanceof PriorKnowledgeUpgradeEvent);
assertEquals(100, http2ConnectionHandler.connection().local().maxActiveStreams());
assertEquals(65535, http2ConnectionHandler.connection().local().flowController().initialWindowSize());
verify(frameListener).onSettingsRead(
any(ChannelHandlerContext.class), eq(expectedSettings()));
}
@Test
public void upgrade() throws Exception {
String upgradeString = "GET / HTTP/1.1\r\n" +
"Host: example.com\r\n" +
"Connection: Upgrade, HTTP2-Settings\r\n" +
"Upgrade: h2c\r\n" +
"HTTP2-Settings: AAMAAABkAAQAAP__\r\n\r\n";
validateClearTextUpgrade(upgradeString);
}
@Test
public void upgradeWithMultipleConnectionHeaders() {
String upgradeString = "GET / HTTP/1.1\r\n" +
"Host: example.com\r\n" +
"Connection: keep-alive\r\n" +
"Connection: Upgrade, HTTP2-Settings\r\n" +
"Upgrade: h2c\r\n" +
"HTTP2-Settings: AAMAAABkAAQAAP__\r\n\r\n";
validateClearTextUpgrade(upgradeString);
Defined In
Source
Frequently Asked Questions
What is the CleartextHttp2ServerUpgradeHandlerTest class?
CleartextHttp2ServerUpgradeHandlerTest is a class in the netty codebase, defined in codec-http2/src/test/java/io/netty/handler/codec/http2/CleartextHttp2ServerUpgradeHandlerTest.java.
Where is CleartextHttp2ServerUpgradeHandlerTest defined?
CleartextHttp2ServerUpgradeHandlerTest is defined in codec-http2/src/test/java/io/netty/handler/codec/http2/CleartextHttp2ServerUpgradeHandlerTest.java at line 58.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free