diff --git a/test/org/jivesoftware/multiplexer/net/XMLLightweightParserTest.java b/test/org/jivesoftware/multiplexer/net/XMLLightweightParserTest.java index 0204b11..c623640 100644 --- a/test/org/jivesoftware/multiplexer/net/XMLLightweightParserTest.java +++ b/test/org/jivesoftware/multiplexer/net/XMLLightweightParserTest.java @@ -177,6 +177,53 @@ assertEquals(stanza, doc.asXML()); } + public void testNestedElements() throws Exception { + String msg1 = "1"; + //String msg1 = "will update it...12jid1will update it..."; + in.putString(msg1, Charset.forName(CHARSET).newEncoder()); + in.flip(); + // Fill parser with byte buffer content and parse it + parser.read(in); + // Make verifications + assertTrue("Stream header is not being correctly parsed", parser.areThereMsgs()); + String[] values = parser.getMsgs(); + assertEquals("Wrong number of parsed stanzas", 1, values.length); + assertEquals("Wrong stanza was parsed", msg1, values[0]); + } + + public void testIncompleteStanza() throws Exception { + String msg1 = "12"; + in.putString(msg1, Charset.forName(CHARSET).newEncoder()); + in.flip(); + // Fill parser with byte buffer content and parse it + parser.read(in); + // Make verifications + assertFalse("Found messages in incomplete stanza", parser.areThereMsgs()); + } + + public void testCompletedStanza() throws Exception { + String msg1 = "12"; + in.putString(msg1, Charset.forName(CHARSET).newEncoder()); + in.flip(); + // Fill parser with byte buffer content and parse it + parser.read(in); + // Make verifications + assertFalse("Found messages in incomplete stanza", parser.areThereMsgs()); + + String msg2 = ""; + ByteBuffer in2 = ByteBuffer.allocate(4096); + in2.setAutoExpand(true); + in2.putString(msg2, Charset.forName(CHARSET).newEncoder()); + in2.flip(); + // Fill parser with byte buffer content and parse it + parser.read(in2); + in2.release(); + assertTrue("Stream header is not being correctly parsed", parser.areThereMsgs()); + String[] values = parser.getMsgs(); + assertEquals("Wrong number of parsed stanzas", 1, values.length); + assertEquals("Wrong stanza was parsed", msg1 + msg2, values[0]); + } + protected void setUp() throws Exception { super.setUp(); // Create parser