mirror of
https://github.com/vanitasvitae/Smack.git
synced 2024-11-22 03:52:06 +01:00
[core] fix toXml for UnparsedIQ
This commit is contained in:
parent
38c6dd21b4
commit
609781b5ad
2 changed files with 23 additions and 1 deletions
|
@ -16,6 +16,8 @@
|
|||
*/
|
||||
package org.jivesoftware.smack.packet;
|
||||
|
||||
import org.jivesoftware.smack.util.StringUtils;
|
||||
|
||||
/**
|
||||
* An IQ stanzas that could not be parsed because no provider was found.
|
||||
*/
|
||||
|
@ -34,7 +36,12 @@ public class UnparsedIQ extends IQ {
|
|||
|
||||
@Override
|
||||
protected IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder xml) {
|
||||
xml.escape(content);
|
||||
if (StringUtils.isEmpty(content)) {
|
||||
xml.setEmptyElement();
|
||||
} else {
|
||||
xml.rightAngleBracket();
|
||||
xml.escape(content);
|
||||
}
|
||||
return xml;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -58,4 +58,19 @@ public class IqTest {
|
|||
IQ iq = PacketParserUtils.parseIQ(parser);
|
||||
assertXmlSimilar(iqXml, iq.toXML());
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@EnumSource(SmackTestUtil.XmlPullParserKind.class)
|
||||
public void testUnparsedIq(SmackTestUtil.XmlPullParserKind parserKind) throws Exception {
|
||||
final String iqXml = "<iq xmlns='jabber:client' type='get' id='test-1'>" +
|
||||
"<query xmlns='jabber:iq:version'/>" +
|
||||
"</iq>";
|
||||
final String expected = "<iq xmlns='jabber:client' id='test-1' type='get'>"
|
||||
+ "<query xmlns='jabber:iq:version'><query xmlns='jabber:iq:version'/></query>"
|
||||
+ "</iq>";
|
||||
|
||||
XmlPullParser parser = SmackTestUtil.getParserFor(iqXml, "iq", parserKind);
|
||||
IQ iq = PacketParserUtils.parseIQ(parser);
|
||||
assertXmlSimilar(expected, iq.toXML());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue