From 84410f97af5223876071c4601b80fa76ebc8a57b Mon Sep 17 00:00:00 2001 From: Johno Crawford Date: Wed, 11 Jan 2017 13:52:01 +0100 Subject: [PATCH] Add unit test that shows LineBasedFrameDelimiter correctly handles fragmented data. Motivation: Verify everything works as expected. Modifications: Added testcase. Result: More test-coverage. --- .../codec/LineBasedFrameDecoderTest.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) 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 334534830e..b462874e61 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 = ch.readInbound(); + assertEquals("huuhaa\r\n", buf.toString(CharsetUtil.US_ASCII)); + + ByteBuf buf2 = ch.readInbound(); + assertEquals("huuhaa\r\n", buf2.toString(CharsetUtil.US_ASCII)); + assertFalse(ch.finishAndReleaseAll()); + + buf.release(); + buf2.release(); + } }