Home / Class/ SpdyFrameDecoderTest Class — netty Architecture

SpdyFrameDecoderTest Class — netty Architecture

Architecture documentation for the SpdyFrameDecoderTest class in SpdyFrameDecoderTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  694e7f21_2c70_1029_2eab_f7afcf7a1d96["SpdyFrameDecoderTest"]
  65b7edba_a461_d857_a04c_c2f827a77bfa["SpdyFrameDecoderTest.java"]
  694e7f21_2c70_1029_2eab_f7afcf7a1d96 -->|defined in| 65b7edba_a461_d857_a04c_c2f827a77bfa
  3e7f872b_7b79_c6ba_2c48_f29336096cc1["createDecoder()"]
  694e7f21_2c70_1029_2eab_f7afcf7a1d96 -->|method| 3e7f872b_7b79_c6ba_2c48_f29336096cc1
  8575f3e0_8603_4a28_cd1b_ec8a55d48cec["releaseBuffers()"]
  694e7f21_2c70_1029_2eab_f7afcf7a1d96 -->|method| 8575f3e0_8603_4a28_cd1b_ec8a55d48cec
  cb72ab17_1cd4_7ebe_95d0_fb882746a21c["encodeDataFrameHeader()"]
  694e7f21_2c70_1029_2eab_f7afcf7a1d96 -->|method| cb72ab17_1cd4_7ebe_95d0_fb882746a21c
  22716287_5b34_da1d_c8e3_c9777b358484["encodeControlFrameHeader()"]
  694e7f21_2c70_1029_2eab_f7afcf7a1d96 -->|method| 22716287_5b34_da1d_c8e3_c9777b358484
  c51bc459_2f26_5c59_8526_88a7ed89b9b5["testSpdyDataFrame()"]
  694e7f21_2c70_1029_2eab_f7afcf7a1d96 -->|method| c51bc459_2f26_5c59_8526_88a7ed89b9b5
  cba070ef_46bd_f712_0ece_0a764d2f1db9["testEmptySpdyDataFrame()"]
  694e7f21_2c70_1029_2eab_f7afcf7a1d96 -->|method| cba070ef_46bd_f712_0ece_0a764d2f1db9
  fb76c3ef_514d_de06_ae3b_068b6b4c29ae["testLastSpdyDataFrame()"]
  694e7f21_2c70_1029_2eab_f7afcf7a1d96 -->|method| fb76c3ef_514d_de06_ae3b_068b6b4c29ae
  5714f59f_00d7_8886_cf77_659de194cde1["testUnknownSpdyDataFrameFlags()"]
  694e7f21_2c70_1029_2eab_f7afcf7a1d96 -->|method| 5714f59f_00d7_8886_cf77_659de194cde1
  83431809_e79a_ec05_c93f_d4d877bd143b["testIllegalSpdyDataFrameStreamId()"]
  694e7f21_2c70_1029_2eab_f7afcf7a1d96 -->|method| 83431809_e79a_ec05_c93f_d4d877bd143b
  9882db1e_6996_de53_3959_dbf6784f1105["testPipelinedSpdyDataFrames()"]
  694e7f21_2c70_1029_2eab_f7afcf7a1d96 -->|method| 9882db1e_6996_de53_3959_dbf6784f1105
  ba2dd72c_d864_92f2_ce76_a5ab308c885b["testSpdySynStreamFrame()"]
  694e7f21_2c70_1029_2eab_f7afcf7a1d96 -->|method| ba2dd72c_d864_92f2_ce76_a5ab308c885b
  6a7092b8_50f7_b1ad_4189_b3f7808f8eca["testLastSpdySynStreamFrame()"]
  694e7f21_2c70_1029_2eab_f7afcf7a1d96 -->|method| 6a7092b8_50f7_b1ad_4189_b3f7808f8eca
  4b9ed3c5_bf9a_77bf_38fb_b5c8228ba639["testUnidirectionalSpdySynStreamFrame()"]
  694e7f21_2c70_1029_2eab_f7afcf7a1d96 -->|method| 4b9ed3c5_bf9a_77bf_38fb_b5c8228ba639

Relationship Graph

Source Code

codec-http/src/test/java/io/netty/handler/codec/spdy/SpdyFrameDecoderTest.java lines 36–1241

public class SpdyFrameDecoderTest {

    private static final Random RANDOM = new Random();

    private final SpdyFrameDecoderDelegate delegate = mock(SpdyFrameDecoderDelegate.class);
    private final TestSpdyFrameDecoderDelegate testDelegate = new TestSpdyFrameDecoderDelegate(delegate);
    private SpdyFrameDecoder decoder;

    @BeforeEach
    public void createDecoder() {
        decoder = new SpdyFrameDecoder(SpdyVersion.SPDY_3_1, testDelegate);
    }

    @AfterEach
    public void releaseBuffers() {
        testDelegate.releaseAll();
    }

    private static void encodeDataFrameHeader(ByteBuf buffer, int streamId, byte flags, int length) {
        buffer.writeInt(streamId & 0x7FFFFFFF);
        buffer.writeByte(flags);
        buffer.writeMedium(length);
    }

    static void encodeControlFrameHeader(ByteBuf buffer, short type, byte flags, int length) {
        buffer.writeShort(0x8000 | SpdyVersion.SPDY_3_1.version());
        buffer.writeShort(type);
        buffer.writeByte(flags);
        buffer.writeMedium(length);
    }

    @Test
    public void testSpdyDataFrame() throws Exception {
        int streamId = RANDOM.nextInt() & 0x7FFFFFFF | 0x01;
        byte flags = 0;
        int length = 1024;

        ByteBuf buf = Unpooled.buffer(SPDY_HEADER_SIZE + length);
        encodeDataFrameHeader(buf, streamId, flags, length);
        for (int i = 0; i < 256; i ++) {
            buf.writeInt(RANDOM.nextInt());
        }
        decoder.decode(buf);
        verify(delegate).readDataFrame(streamId, false, buf.slice(SPDY_HEADER_SIZE, length));
        assertFalse(buf.isReadable());
        buf.release();
    }

    @Test
    public void testEmptySpdyDataFrame() throws Exception {
        int streamId = RANDOM.nextInt() & 0x7FFFFFFF | 0x01;
        byte flags = 0;
        int length = 0;

        ByteBuf buf = Unpooled.buffer(SPDY_HEADER_SIZE + length);
        encodeDataFrameHeader(buf, streamId, flags, length);

        decoder.decode(buf);
        verify(delegate).readDataFrame(streamId, false, Unpooled.EMPTY_BUFFER);
        assertFalse(buf.isReadable());
        buf.release();
    }

    @Test
    public void testLastSpdyDataFrame() throws Exception {
        int streamId = RANDOM.nextInt() & 0x7FFFFFFF | 0x01;
        byte flags = 0x01; // FLAG_FIN
        int length = 0;

        ByteBuf buf = Unpooled.buffer(SPDY_HEADER_SIZE + length);
        encodeDataFrameHeader(buf, streamId, flags, length);

        decoder.decode(buf);
        verify(delegate).readDataFrame(streamId, true, Unpooled.EMPTY_BUFFER);
        assertFalse(buf.isReadable());
        buf.release();
    }

    @Test
    public void testUnknownSpdyDataFrameFlags() throws Exception {
        int streamId = RANDOM.nextInt() & 0x7FFFFFFF | 0x01;

Frequently Asked Questions

What is the SpdyFrameDecoderTest class?
SpdyFrameDecoderTest is a class in the netty codebase, defined in codec-http/src/test/java/io/netty/handler/codec/spdy/SpdyFrameDecoderTest.java.
Where is SpdyFrameDecoderTest defined?
SpdyFrameDecoderTest is defined in codec-http/src/test/java/io/netty/handler/codec/spdy/SpdyFrameDecoderTest.java at line 36.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free