Home / Class/ PerMessageDeflateDecoderTest Class — netty Architecture

PerMessageDeflateDecoderTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  5fb9cabd_f848_d24f_11ed_16ea8470984d["PerMessageDeflateDecoderTest"]
  2be598bd_c8a1_02fc_e859_b89fb0ce4ad7["PerMessageDeflateDecoderTest.java"]
  5fb9cabd_f848_d24f_11ed_16ea8470984d -->|defined in| 2be598bd_c8a1_02fc_e859_b89fb0ce4ad7
  e1fea6b4_2fa8_38a1_fc94_f63e36ddf687["testCompressedFrame()"]
  5fb9cabd_f848_d24f_11ed_16ea8470984d -->|method| e1fea6b4_2fa8_38a1_fc94_f63e36ddf687
  cf9add7d_1450_c7d4_3d7e_1829bf321fa3["testNormalFrame()"]
  5fb9cabd_f848_d24f_11ed_16ea8470984d -->|method| cf9add7d_1450_c7d4_3d7e_1829bf321fa3
  44dce2ef_faab_627a_b1bc_dc20c2c70ded["testFragmentedFrame()"]
  5fb9cabd_f848_d24f_11ed_16ea8470984d -->|method| 44dce2ef_faab_627a_b1bc_dc20c2c70ded
  a28b29ae_ed92_8d5f_ef8a_fd2aa8e615ac["testMultiCompressedPayloadWithinFrame()"]
  5fb9cabd_f848_d24f_11ed_16ea8470984d -->|method| a28b29ae_ed92_8d5f_ef8a_fd2aa8e615ac
  b546715a_d316_55e2_ab7e_e94ba17b4149["testDecompressionSkipForBinaryFrame()"]
  5fb9cabd_f848_d24f_11ed_16ea8470984d -->|method| b546715a_d316_55e2_ab7e_e94ba17b4149
  998d6f7b_7874_d346_19ee_33fb377399c1["testSelectivityDecompressionSkip()"]
  5fb9cabd_f848_d24f_11ed_16ea8470984d -->|method| 998d6f7b_7874_d346_19ee_33fb377399c1
  5d11d05d_0935_472f_e884_2981351d6f30["testIllegalStateWhenDecompressionInProgress()"]
  5fb9cabd_f848_d24f_11ed_16ea8470984d -->|method| 5d11d05d_0935_472f_e884_2981351d6f30
  9b12b06e_12b7_016b_6fb0_d5ade68080da["testEmptyFrameDecompression()"]
  5fb9cabd_f848_d24f_11ed_16ea8470984d -->|method| 9b12b06e_12b7_016b_6fb0_d5ade68080da
  b99f0276_2253_04dc_a362_9b6305257e00["testFragmentedFrameWithLeftOverInLastFragment()"]
  5fb9cabd_f848_d24f_11ed_16ea8470984d -->|method| b99f0276_2253_04dc_a362_9b6305257e00

Relationship Graph

Source Code

codec-http/src/test/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerMessageDeflateDecoderTest.java lines 46–400

public class PerMessageDeflateDecoderTest {

    private static final Random random = new Random();

    @Test
    public void testCompressedFrame() {
        EmbeddedChannel encoderChannel = new EmbeddedChannel(
                ZlibCodecFactory.newZlibEncoder(ZlibWrapper.NONE, 9, 15, 8));
        EmbeddedChannel decoderChannel = new EmbeddedChannel(new PerMessageDeflateDecoder(false, 0));

        // initialize
        byte[] payload = new byte[300];
        random.nextBytes(payload);

        assertTrue(encoderChannel.writeOutbound(Unpooled.wrappedBuffer(payload)));
        ByteBuf compressedPayload = encoderChannel.readOutbound();

        BinaryWebSocketFrame compressedFrame = new BinaryWebSocketFrame(true,
                WebSocketExtension.RSV1 | WebSocketExtension.RSV3,
                compressedPayload.slice(0, compressedPayload.readableBytes() - 4));

        // execute
        assertTrue(decoderChannel.writeInbound(compressedFrame));
        BinaryWebSocketFrame uncompressedFrame = decoderChannel.readInbound();

        // test
        assertNotNull(uncompressedFrame);
        assertNotNull(uncompressedFrame.content());
        assertEquals(WebSocketExtension.RSV3, uncompressedFrame.rsv());
        assertEquals(300, uncompressedFrame.content().readableBytes());

        byte[] finalPayload = new byte[300];
        uncompressedFrame.content().readBytes(finalPayload);
        assertArrayEquals(finalPayload, payload);
        uncompressedFrame.release();
    }

    @Test
    public void testNormalFrame() {
        EmbeddedChannel decoderChannel = new EmbeddedChannel(new PerMessageDeflateDecoder(false, 0));

        // initialize
        byte[] payload = new byte[300];
        random.nextBytes(payload);

        BinaryWebSocketFrame frame = new BinaryWebSocketFrame(true,
                WebSocketExtension.RSV3, Unpooled.wrappedBuffer(payload));

        // execute
        assertTrue(decoderChannel.writeInbound(frame));
        BinaryWebSocketFrame newFrame = decoderChannel.readInbound();

        // test
        assertNotNull(newFrame);
        assertNotNull(newFrame.content());
        assertEquals(WebSocketExtension.RSV3, newFrame.rsv());
        assertEquals(300, newFrame.content().readableBytes());

        byte[] finalPayload = new byte[300];
        newFrame.content().readBytes(finalPayload);
        assertArrayEquals(finalPayload, payload);
        newFrame.release();
    }

    @Test
    public void testFragmentedFrame() {
        EmbeddedChannel encoderChannel = new EmbeddedChannel(
                ZlibCodecFactory.newZlibEncoder(ZlibWrapper.NONE, 9, 15, 8));
        EmbeddedChannel decoderChannel = new EmbeddedChannel(new PerMessageDeflateDecoder(false, 0));

        // initialize
        byte[] payload = new byte[300];
        random.nextBytes(payload);

        assertTrue(encoderChannel.writeOutbound(Unpooled.wrappedBuffer(payload)));
        ByteBuf compressedPayload = encoderChannel.readOutbound();
        compressedPayload = compressedPayload.slice(0, compressedPayload.readableBytes() - 4);

        int oneThird = compressedPayload.readableBytes() / 3;
        BinaryWebSocketFrame compressedFrame1 = new BinaryWebSocketFrame(false,
                WebSocketExtension.RSV1 | WebSocketExtension.RSV3,

Frequently Asked Questions

What is the PerMessageDeflateDecoderTest class?
PerMessageDeflateDecoderTest is a class in the netty codebase, defined in codec-http/src/test/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerMessageDeflateDecoderTest.java.
Where is PerMessageDeflateDecoderTest defined?
PerMessageDeflateDecoderTest is defined in codec-http/src/test/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerMessageDeflateDecoderTest.java at line 46.

Analyze Your Own Codebase

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

Try Supermodel Free