1
0
Fork 0
mirror of https://github.com/vanitasvitae/Smack.git synced 2024-10-18 12:15:58 +02:00

Merge pull request #623 from hamed-sb/master

[core] fix toXml for UnparsedIQ
This commit is contained in:
Florian Schmaus 2024-09-12 11:32:28 +00:00 committed by GitHub
commit 5633d0e6c2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 23 additions and 1 deletions

View file

@ -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;
}
}

View file

@ -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'>&lt;query xmlns=&apos;jabber:iq:version&apos;/&gt;</query>"
+ "</iq>";
XmlPullParser parser = SmackTestUtil.getParserFor(iqXml, "iq", parserKind);
IQ iq = PacketParserUtils.parseIQ(parser);
assertXmlSimilar(expected, iq.toXML());
}
}