Home / Class/ PerFrameDeflateEncoderTest Class — netty Architecture

PerFrameDeflateEncoderTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  d77508f2_7e6d_1869_5652_cb4529317aed["PerFrameDeflateEncoderTest"]
  b4146fbd_b644_6781_d50d_66261b028dd1["PerFrameDeflateEncoderTest.java"]
  d77508f2_7e6d_1869_5652_cb4529317aed -->|defined in| b4146fbd_b644_6781_d50d_66261b028dd1
  80f48212_8304_899a_462a_7d10753575e1["testCompressedFrame()"]
  d77508f2_7e6d_1869_5652_cb4529317aed -->|method| 80f48212_8304_899a_462a_7d10753575e1
  6283dbfd_e189_40ca_2d18_e1eaf2df9203["testAlreadyCompressedFrame()"]
  d77508f2_7e6d_1869_5652_cb4529317aed -->|method| 6283dbfd_e189_40ca_2d18_e1eaf2df9203
  36a2a9f2_5508_7396_f0b4_b5722f60d5c2["testFramementedFrame()"]
  d77508f2_7e6d_1869_5652_cb4529317aed -->|method| 36a2a9f2_5508_7396_f0b4_b5722f60d5c2
  a19a93df_f356_bcae_d379_aab66895b151["testCompressionSkip()"]
  d77508f2_7e6d_1869_5652_cb4529317aed -->|method| a19a93df_f356_bcae_d379_aab66895b151

Relationship Graph

Source Code

codec-http/src/test/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerFrameDeflateEncoderTest.java lines 38–189

public class PerFrameDeflateEncoderTest {

    private static final Random random = new Random();

    @Test
    public void testCompressedFrame() {
        EmbeddedChannel encoderChannel = new EmbeddedChannel(new PerFrameDeflateEncoder(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 PerFrameDeflateEncoder(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 testFramementedFrame() {
        EmbeddedChannel encoderChannel = new EmbeddedChannel(new PerFrameDeflateEncoder(9, 15, false));
        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, Unpooled.wrappedBuffer(payload1));
        ContinuationWebSocketFrame frame2 = new ContinuationWebSocketFrame(false,
                WebSocketExtension.RSV3, Unpooled.wrappedBuffer(payload2));

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free