Home / Function/ testSpdySessionHandler() — netty Function Reference

testSpdySessionHandler() — netty Function Reference

Architecture documentation for the testSpdySessionHandler() function in SpdySessionHandlerTest.java from the netty codebase.

Function java Buffer Allocators calls 5 called by 2

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

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