Throw exception if stanza child contains text

This commit is contained in:
Florian Schmaus 2016-11-12 23:34:02 +01:00
parent 5a47f56cd0
commit eb9242768c
2 changed files with 8 additions and 2 deletions

View File

@ -289,6 +289,8 @@ public class PacketParserUtils {
break outerloop;
}
break;
case XmlPullParser.TEXT:
throw new IllegalStateException("Invalid Stanza: Must not contain text or mixed content as direct child of <message/>");
}
}
@ -589,6 +591,8 @@ public class PacketParserUtils {
break outerloop;
}
break;
case XmlPullParser.TEXT:
throw new IllegalStateException("Invalid Stanza: Must not contain text or mixed content as direct child of <presence/>");
}
}
return presence;
@ -645,6 +649,8 @@ public class PacketParserUtils {
break outerloop;
}
break;
case XmlPullParser.TEXT:
throw new IllegalStateException("Invalid Stanza: Must not contain text or mixed content as direct child of <iq/>");
}
}
// Decide what to do when an IQ packet was not understood

View File

@ -710,8 +710,8 @@ public class PacketParserUtilsTest {
try {
PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(invalidControl));
fail("Exception should be thrown");
} catch(XmlPullParserException e) {
assertTrue(e.getMessage().contains("end tag name </body>"));
} catch(IllegalStateException e) {
assertTrue(e.getMessage().contains("Invalid Stanza"));
}
invalidControl = validControl.replace("Good Message Body", "Bad </message> Body");