Home / Class/ PerMessageDeflateEncoderTest Class — netty Architecture

PerMessageDeflateEncoderTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  74922fa4_3ca7_d958_57dc_fafad72e442c["PerMessageDeflateEncoderTest"]
  789f5545_db17_043b_71d1_e1cfd6437e55["PerMessageDeflateEncoderTest.java"]
  74922fa4_3ca7_d958_57dc_fafad72e442c -->|defined in| 789f5545_db17_043b_71d1_e1cfd6437e55
  ef7540ee_02af_6bfa_a49d_ca2b38963970["testCompressedFrame()"]
  74922fa4_3ca7_d958_57dc_fafad72e442c -->|method| ef7540ee_02af_6bfa_a49d_ca2b38963970
  b8eedd33_0ce0_82e5_b500_ef82cd19cbb5["testAlreadyCompressedFrame()"]
  74922fa4_3ca7_d958_57dc_fafad72e442c -->|method| b8eedd33_0ce0_82e5_b500_ef82cd19cbb5
  4763cf95_8e58_5409_3685_09a748d7603d["testFragmentedFrame()"]
  74922fa4_3ca7_d958_57dc_fafad72e442c -->|method| 4763cf95_8e58_5409_3685_09a748d7603d
  4921bd5e_32cb_a37e_1992_74a1e64ce57f["testCompressionSkipForBinaryFrame()"]
  74922fa4_3ca7_d958_57dc_fafad72e442c -->|method| 4921bd5e_32cb_a37e_1992_74a1e64ce57f
  96ecfcf6_e1f0_eb6b_9cc9_edb570bf3a33["testSelectivityCompressionSkip()"]
  74922fa4_3ca7_d958_57dc_fafad72e442c -->|method| 96ecfcf6_e1f0_eb6b_9cc9_edb570bf3a33
  413e93f0_dd38_2f95_d162_26b8865a53f8["testIllegalStateWhenCompressionInProgress()"]
  74922fa4_3ca7_d958_57dc_fafad72e442c -->|method| 413e93f0_dd38_2f95_d162_26b8865a53f8
  a4ba48e7_df48_400d_8e81_037968595054["testEmptyFrameCompression()"]
  74922fa4_3ca7_d958_57dc_fafad72e442c -->|method| a4ba48e7_df48_400d_8e81_037968595054
  9ed12bc8_d791_28ab_4734_b8b12df64adc["testCodecExceptionForNotFinEmptyFrame()"]
  74922fa4_3ca7_d958_57dc_fafad72e442c -->|method| 9ed12bc8_d791_28ab_4734_b8b12df64adc

Relationship Graph

Source Code

codec-http/src/test/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerMessageDeflateEncoderTest.java lines 47–324

public class PerMessageDeflateEncoderTest {

    private static final Random random = new Random();

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

        // initialize
        byte[] payload = new byte[300];
        random.nextBytes(payload);
        BinaryWebSocketFrame frame = new BinaryWebSocketFrame(true,
                                                              WebSocketExtension.RSV3, Unpooled.wrappedBuffer(payload));

        // execute
        assertTrue(encoderChannel.writeOutbound(frame));
        BinaryWebSocketFrame compressedFrame = encoderChannel.readOutbound();

        // test
        assertNotNull(compressedFrame);
        assertNotNull(compressedFrame.content());
        assertEquals(WebSocketExtension.RSV1 | WebSocketExtension.RSV3, compressedFrame.rsv());

        assertTrue(decoderChannel.writeInbound(compressedFrame.content()));
        assertTrue(decoderChannel.writeInbound(DeflateDecoder.FRAME_TAIL.duplicate()));
        ByteBuf uncompressedPayload = decoderChannel.readInbound();
        assertEquals(300, uncompressedPayload.readableBytes());

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

    @Test
    public void testAlreadyCompressedFrame() {
        EmbeddedChannel encoderChannel = new EmbeddedChannel(new PerMessageDeflateEncoder(9, 15, false));

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

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

        // execute
        assertTrue(encoderChannel.writeOutbound(frame));
        BinaryWebSocketFrame newFrame = encoderChannel.readOutbound();

        // test
        assertNotNull(newFrame);
        assertNotNull(newFrame.content());
        assertEquals(WebSocketExtension.RSV3 | WebSocketExtension.RSV1, 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(new PerMessageDeflateEncoder(9, 15, false,
                                                                                          NEVER_SKIP));
        EmbeddedChannel decoderChannel = new EmbeddedChannel(
                ZlibCodecFactory.newZlibDecoder(ZlibWrapper.NONE, 0));

        // initialize
        byte[] payload1 = new byte[100];
        random.nextBytes(payload1);
        byte[] payload2 = new byte[100];
        random.nextBytes(payload2);
        byte[] payload3 = new byte[100];
        random.nextBytes(payload3);

        BinaryWebSocketFrame frame1 = new BinaryWebSocketFrame(false,
                                                               WebSocketExtension.RSV3,

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free