Home / Class/ PerFrameDeflateDecoderTest Class — netty Architecture

PerFrameDeflateDecoderTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  758acdb4_a05e_36ff_8910_74b681e91da1["PerFrameDeflateDecoderTest"]
  ae69e3a3_ebfa_1818_2a75_b3bb53e2325c["PerFrameDeflateDecoderTest.java"]
  758acdb4_a05e_36ff_8910_74b681e91da1 -->|defined in| ae69e3a3_ebfa_1818_2a75_b3bb53e2325c
  83c8a9a5_7456_4c52_0828_080d887652a5["testCompressedFrame()"]
  758acdb4_a05e_36ff_8910_74b681e91da1 -->|method| 83c8a9a5_7456_4c52_0828_080d887652a5
  263f5e5c_bc75_45c7_a0c5_266336e00c59["testNormalFrame()"]
  758acdb4_a05e_36ff_8910_74b681e91da1 -->|method| 263f5e5c_bc75_45c7_a0c5_266336e00c59
  7e4c35ff_8282_1695_b29a_50015c485fc8["testCompressedEmptyFrame()"]
  758acdb4_a05e_36ff_8910_74b681e91da1 -->|method| 7e4c35ff_8282_1695_b29a_50015c485fc8
  4699c6e2_efe4_2506_319a_62e80361c0c1["testDecompressionSkip()"]
  758acdb4_a05e_36ff_8910_74b681e91da1 -->|method| 4699c6e2_efe4_2506_319a_62e80361c0c1

Relationship Graph

Source Code

codec-http/src/test/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerFrameDeflateDecoderTest.java lines 37–155

public class PerFrameDeflateDecoderTest {

    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 PerFrameDeflateDecoder(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,
                RSV1 | RSV3,
                compressedPayload.slice(0, compressedPayload.readableBytes() - 4));

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

        // test
        assertNotNull(uncompressedFrame);
        assertNotNull(uncompressedFrame.content());
        assertEquals(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 PerFrameDeflateDecoder(false, 0));

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

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

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

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

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

    // See https://github.com/netty/netty/issues/4348
    @Test
    public void testCompressedEmptyFrame() {
        EmbeddedChannel encoderChannel = new EmbeddedChannel(
                ZlibCodecFactory.newZlibEncoder(ZlibWrapper.NONE, 9, 15, 8));
        EmbeddedChannel decoderChannel = new EmbeddedChannel(new PerFrameDeflateDecoder(false, 0));

        assertTrue(encoderChannel.writeOutbound(Unpooled.EMPTY_BUFFER));
        ByteBuf compressedPayload = encoderChannel.readOutbound();
        BinaryWebSocketFrame compressedFrame =
                new BinaryWebSocketFrame(true, RSV1 | RSV3, compressedPayload);

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

        // test

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free