testSpdySessionHandler() — netty Function Reference
Architecture documentation for the testSpdySessionHandler() function in SpdySessionHandlerTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD f7c85d6d_2e18_e337_c3ff_b40a39d03137["testSpdySessionHandler()"] 8cf70e1a_42ea_1993_5d10_4e8bc2411532["SpdySessionHandlerTest"] f7c85d6d_2e18_e337_c3ff_b40a39d03137 -->|defined in| 8cf70e1a_42ea_1993_5d10_4e8bc2411532 91992b44_f27a_64f8_649f_589873223924["testSpdyClientSessionHandler()"] 91992b44_f27a_64f8_649f_589873223924 -->|calls| f7c85d6d_2e18_e337_c3ff_b40a39d03137 f67773d2_b634_84a6_45aa_e2e1c075338d["testSpdyServerSessionHandler()"] f67773d2_b634_84a6_45aa_e2e1c075338d -->|calls| f7c85d6d_2e18_e337_c3ff_b40a39d03137 711f3e19_b210_9c43_500f_2d54a946afd4["EchoHandler()"] f7c85d6d_2e18_e337_c3ff_b40a39d03137 -->|calls| 711f3e19_b210_9c43_500f_2d54a946afd4 eb2eca19_b9ab_73bf_fcff_cc734d15ad0e["assertRstStream()"] f7c85d6d_2e18_e337_c3ff_b40a39d03137 -->|calls| eb2eca19_b9ab_73bf_fcff_cc734d15ad0e 2045fa36_f8b8_b510_db9a_dddc7845a2b1["assertSynReply()"] f7c85d6d_2e18_e337_c3ff_b40a39d03137 -->|calls| 2045fa36_f8b8_b510_db9a_dddc7845a2b1 da383cd7_117e_144b_e13c_7ced26864589["assertHeaders()"] f7c85d6d_2e18_e337_c3ff_b40a39d03137 -->|calls| da383cd7_117e_144b_e13c_7ced26864589 2430ecbe_5fd8_01c8_bb12_fbbd3a76314e["assertDataFrame()"] f7c85d6d_2e18_e337_c3ff_b40a39d03137 -->|calls| 2430ecbe_5fd8_01c8_bb12_fbbd3a76314e style f7c85d6d_2e18_e337_c3ff_b40a39d03137 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-http/src/test/java/io/netty/handler/codec/spdy/SpdySessionHandlerTest.java lines 98–211
private static void testSpdySessionHandler(SpdyVersion version, boolean server) {
EmbeddedChannel sessionHandler = new EmbeddedChannel(
new SpdySessionHandler(version, server), new EchoHandler(closeSignal, server));
while (sessionHandler.readOutbound() != null) {
continue;
}
int localStreamId = server ? 1 : 2;
int remoteStreamId = server ? 2 : 1;
SpdySynStreamFrame spdySynStreamFrame =
new DefaultSpdySynStreamFrame(localStreamId, 0, (byte) 0);
spdySynStreamFrame.headers().set("compression", "test");
SpdyDataFrame spdyDataFrame = new DefaultSpdyDataFrame(localStreamId);
spdyDataFrame.setLast(true);
// Check if session handler returns INVALID_STREAM if it receives
// a data frame for a Stream-ID that is not open
sessionHandler.writeInbound(new DefaultSpdyDataFrame(localStreamId));
assertRstStream(sessionHandler.readOutbound(), localStreamId, SpdyStreamStatus.INVALID_STREAM);
assertNull(sessionHandler.readOutbound());
// Check if session handler returns PROTOCOL_ERROR if it receives
// a data frame for a Stream-ID before receiving a SYN_REPLY frame
sessionHandler.writeInbound(new DefaultSpdyDataFrame(remoteStreamId));
assertRstStream(sessionHandler.readOutbound(), remoteStreamId, SpdyStreamStatus.PROTOCOL_ERROR);
assertNull(sessionHandler.readOutbound());
remoteStreamId += 2;
// Check if session handler returns PROTOCOL_ERROR if it receives
// multiple SYN_REPLY frames for the same active Stream-ID
sessionHandler.writeInbound(new DefaultSpdySynReplyFrame(remoteStreamId));
assertNull(sessionHandler.readOutbound());
sessionHandler.writeInbound(new DefaultSpdySynReplyFrame(remoteStreamId));
assertRstStream(sessionHandler.readOutbound(), remoteStreamId, SpdyStreamStatus.STREAM_IN_USE);
assertNull(sessionHandler.readOutbound());
remoteStreamId += 2;
// Check if frame codec correctly compresses/uncompresses headers
sessionHandler.writeInbound(spdySynStreamFrame);
assertSynReply(sessionHandler.readOutbound(), localStreamId, false, spdySynStreamFrame.headers());
assertNull(sessionHandler.readOutbound());
SpdyHeadersFrame spdyHeadersFrame = new DefaultSpdyHeadersFrame(localStreamId);
spdyHeadersFrame.headers().add("header", "test1");
spdyHeadersFrame.headers().add("header", "test2");
sessionHandler.writeInbound(spdyHeadersFrame);
assertHeaders(sessionHandler.readOutbound(), localStreamId, false, spdyHeadersFrame.headers());
assertNull(sessionHandler.readOutbound());
localStreamId += 2;
// Check if session handler closed the streams using the number
// of concurrent streams and that it returns REFUSED_STREAM
// if it receives a SYN_STREAM frame it does not wish to accept
spdySynStreamFrame.setStreamId(localStreamId);
spdySynStreamFrame.setLast(true);
spdySynStreamFrame.setUnidirectional(true);
sessionHandler.writeInbound(spdySynStreamFrame);
assertRstStream(sessionHandler.readOutbound(), localStreamId, SpdyStreamStatus.REFUSED_STREAM);
assertNull(sessionHandler.readOutbound());
// Check if session handler rejects HEADERS for closed streams
int testStreamId = spdyDataFrame.streamId();
sessionHandler.writeInbound(spdyDataFrame);
assertDataFrame(sessionHandler.readOutbound(), testStreamId, spdyDataFrame.isLast());
assertNull(sessionHandler.readOutbound());
spdyHeadersFrame.setStreamId(testStreamId);
sessionHandler.writeInbound(spdyHeadersFrame);
assertRstStream(sessionHandler.readOutbound(), testStreamId, SpdyStreamStatus.INVALID_STREAM);
assertNull(sessionHandler.readOutbound());
// Check if session handler drops active streams if it receives
// a RST_STREAM frame for that Stream-ID
sessionHandler.writeInbound(new DefaultSpdyRstStreamFrame(remoteStreamId, 3));
assertNull(sessionHandler.readOutbound());
//remoteStreamId += 2;
Domain
Subdomains
Source
Frequently Asked Questions
What does testSpdySessionHandler() do?
testSpdySessionHandler() is a function in the netty codebase, defined in codec-http/src/test/java/io/netty/handler/codec/spdy/SpdySessionHandlerTest.java.
Where is testSpdySessionHandler() defined?
testSpdySessionHandler() is defined in codec-http/src/test/java/io/netty/handler/codec/spdy/SpdySessionHandlerTest.java at line 98.
What does testSpdySessionHandler() call?
testSpdySessionHandler() calls 5 function(s): EchoHandler, assertDataFrame, assertHeaders, assertRstStream, assertSynReply.
What calls testSpdySessionHandler()?
testSpdySessionHandler() is called by 2 function(s): testSpdyClientSessionHandler, testSpdyServerSessionHandler.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free