diff --git a/codec/src/test/java/io/netty/handler/codec/LineBasedFrameDecoderTest.java b/codec/src/test/java/io/netty/handler/codec/LineBasedFrameDecoderTest.java index 588ca8c671..a02a884a99 100644 --- a/codec/src/test/java/io/netty/handler/codec/LineBasedFrameDecoderTest.java +++ b/codec/src/test/java/io/netty/handler/codec/LineBasedFrameDecoderTest.java @@ -145,4 +145,26 @@ public class LineBasedFrameDecoderTest { buf.release(); buf2.release(); } + + @Test + public void testFragmentedDecode() throws Exception { + EmbeddedChannel ch = new EmbeddedChannel(new LineBasedFrameDecoder(8192, false, false)); + + assertFalse(ch.writeInbound(copiedBuffer("huu", CharsetUtil.US_ASCII))); + assertNull(ch.readInbound()); + + assertFalse(ch.writeInbound(copiedBuffer("haa\r", CharsetUtil.US_ASCII))); + assertNull(ch.readInbound()); + + assertTrue(ch.writeInbound(copiedBuffer("\nhuuhaa\r\n", CharsetUtil.US_ASCII))); + ByteBuf buf = (ByteBuf) ch.readInbound(); + assertEquals("huuhaa\r\n", buf.toString(CharsetUtil.US_ASCII)); + + ByteBuf buf2 = (ByteBuf) ch.readInbound(); + assertEquals("huuhaa\r\n", buf2.toString(CharsetUtil.US_ASCII)); + assertFalse(ch.finishAndReleaseAll()); + + buf.release(); + buf2.release(); + } }