HttpClientUpgradeHandlerTest Class — netty Architecture
Architecture documentation for the HttpClientUpgradeHandlerTest class in HttpClientUpgradeHandlerTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 64e7cef3_ca61_31ce_7834_0d1da2dc4960["HttpClientUpgradeHandlerTest"] 828bae44_3bfc_04cf_d1ad_43812893780d["HttpClientUpgradeHandlerTest.java"] 64e7cef3_ca61_31ce_7834_0d1da2dc4960 -->|defined in| 828bae44_3bfc_04cf_d1ad_43812893780d dcffa64c_27eb_265e_8d81_5c460e9d842a["testSuccessfulUpgrade()"] 64e7cef3_ca61_31ce_7834_0d1da2dc4960 -->|method| dcffa64c_27eb_265e_8d81_5c460e9d842a 55961b11_ef97_7b29_241e_fa223d59f74b["testUpgradeRejected()"] 64e7cef3_ca61_31ce_7834_0d1da2dc4960 -->|method| 55961b11_ef97_7b29_241e_fa223d59f74b 3edc383e_4c37_2222_2b44_19e8186d8608["testEarlyBailout()"] 64e7cef3_ca61_31ce_7834_0d1da2dc4960 -->|method| 3edc383e_4c37_2222_2b44_19e8186d8608 0df7552a_c8a5_52a6_0cee_998443fa25ce["dontStripConnectionHeaders()"] 64e7cef3_ca61_31ce_7834_0d1da2dc4960 -->|method| 0df7552a_c8a5_52a6_0cee_998443fa25ce f74ae65e_72cb_3a55_bcaa_0518274f02fd["testMultipleUpgradeRequestsFail()"] 64e7cef3_ca61_31ce_7834_0d1da2dc4960 -->|method| f74ae65e_72cb_3a55_bcaa_0518274f02fd a39efc99_c313_d8c8_5c01_14d1598082ff["forwardOnFailure()"] 64e7cef3_ca61_31ce_7834_0d1da2dc4960 -->|method| a39efc99_c313_d8c8_5c01_14d1598082ff
Relationship Graph
Source Code
codec-http/src/test/java/io/netty/handler/codec/http/HttpClientUpgradeHandlerTest.java lines 36–268
public class HttpClientUpgradeHandlerTest {
private static final class FakeSourceCodec implements HttpClientUpgradeHandler.SourceCodec {
@Override
public void prepareUpgradeFrom(ChannelHandlerContext ctx) {
}
@Override
public void upgradeFrom(ChannelHandlerContext ctx) {
}
}
private static final class FakeUpgradeCodec implements HttpClientUpgradeHandler.UpgradeCodec {
@Override
public CharSequence protocol() {
return "fancyhttp";
}
@Override
public Collection<CharSequence> setUpgradeHeaders(ChannelHandlerContext ctx, HttpRequest upgradeRequest) {
return Collections.emptyList();
}
@Override
public void upgradeTo(ChannelHandlerContext ctx, FullHttpResponse upgradeResponse) throws Exception {
}
}
private static final class UserEventCatcher extends ChannelInboundHandlerAdapter {
private Object evt;
public Object getUserEvent() {
return evt;
}
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) {
this.evt = evt;
}
}
@Test
public void testSuccessfulUpgrade() {
HttpClientUpgradeHandler.SourceCodec sourceCodec = new FakeSourceCodec();
HttpClientUpgradeHandler.UpgradeCodec upgradeCodec = new FakeUpgradeCodec();
HttpClientUpgradeHandler handler = new HttpClientUpgradeHandler(sourceCodec, upgradeCodec, 1024);
UserEventCatcher catcher = new UserEventCatcher();
EmbeddedChannel channel = new EmbeddedChannel(catcher);
final HttpRequest afterUpgradeMessage =
new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "netty.io");
final ChannelPromise promise = channel.newPromise();
channel.pipeline().addFirst(new ChannelInboundHandlerAdapter() {
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
if (evt == HttpClientUpgradeHandler.UpgradeEvent.UPGRADE_SUCCESSFUL) {
ctx.writeAndFlush(afterUpgradeMessage, promise);
}
super.userEventTriggered(ctx, evt);
}
});
channel.pipeline().addFirst("upgrade", handler);
assertTrue(
channel.writeOutbound(new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "netty.io")));
FullHttpRequest request = channel.readOutbound();
assertEquals(2, request.headers().size());
assertTrue(request.headers().contains(HttpHeaderNames.UPGRADE, "fancyhttp", false));
assertTrue(request.headers().contains("connection", "upgrade", false));
assertTrue(request.release());
assertEquals(HttpClientUpgradeHandler.UpgradeEvent.UPGRADE_ISSUED, catcher.getUserEvent());
HttpResponse upgradeResponse =
new DefaultHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.SWITCHING_PROTOCOLS);
upgradeResponse.headers().add(HttpHeaderNames.UPGRADE, "fancyhttp");
assertFalse(channel.writeInbound(upgradeResponse));
assertFalse(channel.writeInbound(LastHttpContent.EMPTY_LAST_CONTENT));
assertEquals(HttpClientUpgradeHandler.UpgradeEvent.UPGRADE_SUCCESSFUL, catcher.getUserEvent());
Source
Frequently Asked Questions
What is the HttpClientUpgradeHandlerTest class?
HttpClientUpgradeHandlerTest is a class in the netty codebase, defined in codec-http/src/test/java/io/netty/handler/codec/http/HttpClientUpgradeHandlerTest.java.
Where is HttpClientUpgradeHandlerTest defined?
HttpClientUpgradeHandlerTest is defined in codec-http/src/test/java/io/netty/handler/codec/http/HttpClientUpgradeHandlerTest.java at line 36.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free