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