public static void assertXmlSimilar(CharSequence expected, CharSequence actual) throws SAXException, IOException { Diff diff = new Diff(expected.toString(), actual.toString()); diff.overrideElementQualifier(new RecursiveElementNameAndTextQualifier()); assertXMLEqual(diff, true); } }
@Test public void testAffiliationsExtensionToXml() throws SAXException, IOException { BareJid affiliatedJid = JidTestUtil.BARE_JID_1; Affiliation affiliation = new Affiliation(affiliatedJid, Type.member); List<Affiliation> affiliationsList = new ArrayList<>(); affiliationsList.add(affiliation); AffiliationsExtension affiliationsExtension = new AffiliationsExtension(affiliationsList, "testNode"); CharSequence xml = affiliationsExtension.toXML(null); assertXMLEqual("<affiliations node='testNode'><affiliation xmlns='http://jabber.org/protocol/pubsub#owner' jid='one@exampleone.org' affiliation='member'/></affiliations>", xml.toString()); }
@Test public void checkSlotRequestCreation() throws SAXException, IOException { Slot slot = new Slot(new URL("https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"), new URL("https://download.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png")); Assert.assertEquals(new URL("https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"), slot.getPutUrl()); Assert.assertEquals(new URL("https://download.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"), slot.getGetUrl()); assertXMLEqual(testSlot, slot.getChildElementXML().toString()); } }
@Test public void verifyBasicItem() throws Exception { Item simpleItem = new Item(); String simpleCtrl = "<item xmlns='http://jabber.org/protocol/pubsub' />"; assertXMLEqual(simpleCtrl, simpleItem.toXML(null).toString()); Item idItem = new Item("uniqueid"); String idCtrl = "<item xmlns='http://jabber.org/protocol/pubsub' id='uniqueid'/>"; assertXMLEqual(idCtrl, idItem.toXML(null).toString()); Item itemWithNodeId = new Item("testId", "testNode"); String nodeIdCtrl = "<item xmlns='http://jabber.org/protocol/pubsub' id='testId' node='testNode' />"; assertXMLEqual(nodeIdCtrl, itemWithNodeId.toXML(null).toString()); }
@Test public void hintSpoilerTest() throws Exception { final String xml = "<spoiler xmlns='urn:xmpp:spoiler:0'>Love story end</spoiler>"; Message message = new Message(); SpoilerElement.addSpoiler(message, "Love story end"); SpoilerElement withHint = message.getExtension(SpoilerElement.ELEMENT, SpoilerManager.NAMESPACE_0); assertEquals("Love story end", withHint.getHint()); assertNull(withHint.getLanguage()); assertXMLEqual(xml, withHint.toXML(null).toString()); XmlPullParser parser = TestUtils.getParser(xml); SpoilerElement parsed = SpoilerProvider.INSTANCE.parse(parser); assertXMLEqual(xml, parsed.toXML(null).toString()); }
@Test public void originIdProviderTest() throws Exception { String xml = "<origin-id xmlns='urn:xmpp:sid:0' id='de305d54-75b4-431b-adb2-eb6b9e546013' />"; OriginIdElement element = new OriginIdElement("de305d54-75b4-431b-adb2-eb6b9e546013"); assertEquals("de305d54-75b4-431b-adb2-eb6b9e546013", element.getId()); assertXMLEqual(xml, element.toXML(null).toString()); OriginIdElement parsed = OriginIdProvider.TEST_INSTANCE.parse(TestUtils.getParser(xml)); assertEquals(element.getId(), parsed.getId()); }
@Test public void emptySpoilerTest() throws Exception { final String xml = "<spoiler xmlns='urn:xmpp:spoiler:0'/>"; Message message = new Message(); SpoilerElement.addSpoiler(message); SpoilerElement empty = message.getExtension(SpoilerElement.ELEMENT, SpoilerManager.NAMESPACE_0); assertNull(empty.getHint()); assertNull(empty.getLanguage()); assertXMLEqual(xml, empty.toXML(null).toString()); XmlPullParser parser = TestUtils.getParser(xml); SpoilerElement parsed = SpoilerProvider.INSTANCE.parse(parser); assertXMLEqual(xml, parsed.toXML(null).toString()); }
@Test public void stanzaIdProviderTest() throws Exception { String xml = "<stanza-id xmlns='urn:xmpp:sid:0' id='de305d54-75b4-431b-adb2-eb6b9e546013' by='alice@wonderland.lit' />"; StanzaIdElement element = new StanzaIdElement("de305d54-75b4-431b-adb2-eb6b9e546013", "alice@wonderland.lit"); assertEquals("de305d54-75b4-431b-adb2-eb6b9e546013", element.getId()); assertEquals("alice@wonderland.lit", element.getBy()); assertXMLEqual(xml, element.toXML(null).toString()); StanzaIdElement parsed = StanzaIdProvider.TEST_INSTANCE.parse(TestUtils.getParser(xml)); assertEquals(element.getId(), parsed.getId()); assertEquals(element.getBy(), parsed.getBy()); }
@Test public void verifyPayloadItem() throws Exception { SimplePayload payload = new SimplePayload("<data xmlns='https://example.org'>This is the payload</data>"); PayloadItem<SimplePayload> simpleItem = new PayloadItem<>(payload); String simpleCtrl = "<item xmlns='http://jabber.org/protocol/pubsub'>" + payload.toXML(null) + "</item>"; assertXMLEqual(simpleCtrl, simpleItem.toXML(null).toString()); PayloadItem<SimplePayload> idItem = new PayloadItem<>("uniqueid", payload); String idCtrl = "<item xmlns='http://jabber.org/protocol/pubsub' id='uniqueid'>" + payload.toXML(null) + "</item>"; assertXMLEqual(idCtrl, idItem.toXML(null).toString()); PayloadItem<SimplePayload> itemWithNodeId = new PayloadItem<>("testId", "testNode", payload); String nodeIdCtrl = "<item xmlns='http://jabber.org/protocol/pubsub' id='testId' node='testNode'>" + payload.toXML(null) + "</item>"; assertXMLEqual(nodeIdCtrl, itemWithNodeId.toXML(null).toString()); }
@Test public void checkSlotV0_2Provider() throws Exception { Slot_V0_2 slot = PacketParserUtils.parseStanza(SLOT_V0_2_IQ); checkUrls(slot); String slotXml = slot.toXML(StreamOpen.CLIENT_NAMESPACE).toString(); assertXMLEqual(SLOT_V0_2_IQ, slotXml); }
@Test public void checkSlotProvider() throws Exception { Slot slot = PacketParserUtils.parseStanza(SLOT_IQ); checkUrls(slot); assertXMLEqual(SLOT_IQ, slot.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); }
@Test public void checkSlotWithHeaders() throws Exception { Slot slot = PacketParserUtils.parseStanza(SLOT_WITH_HEADERS_IQ); checkUrls(slot); String slotXml = slot.toXML(StreamOpen.CLIENT_NAMESPACE).toString(); assertXMLEqual(SLOT_WITH_HEADERS_IQ, slotXml); }
@Test public void validateSimplePresence() throws Exception { // CHECKSTYLE:OFF String stanza = "<presence from='juliet@example.com/balcony' to='romeo@example.net'/>"; Presence presence = PacketParserUtils.parsePresence(PacketParserUtils.getParserFor(stanza)); assertXMLEqual(stanza, presence.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); // CHECKSTYLE:ON }
@Test public void providerTest() throws Exception { String expected = "<openpgp xmlns='urn:xmpp:openpgp:0'>" + "BASE64_OPENPGP_MESSAGE" + "</openpgp>"; OpenPgpElement element = new OpenPgpElement("BASE64_OPENPGP_MESSAGE"); assertXMLEqual(expected, element.toXML(null).toString()); XmlPullParser parser = TestUtils.getParser(expected); OpenPgpElement parsed = OpenPgpElementProvider.TEST_INSTANCE.parse(parser); assertEquals(element.getEncryptedBase64MessageContent(), parsed.getEncryptedBase64MessageContent()); }
@Test public void providerTest() throws Exception { String xml = "<idle xmlns='urn:xmpp:idle:1' since='1969-07-21T02:56:15Z' />"; XmlPullParser parser = TestUtils.getParser(xml); assertNotNull(parser); IdleElement parsed = IdleProvider.TEST_INSTANCE.parse(parser); Date date = XmppDateTime.parseXEP0082Date("1969-07-21T02:56:15Z"); assertEquals(date, parsed.getSince()); IdleElement element = new IdleElement(date); assertXMLEqual("<idle xmlns='urn:xmpp:idle:1' since='1969-07-21T02:56:15.000+00:00'/>", element.toXML(null).toString()); }
@Test public void validatePresenceProbe() throws Exception { // CHECKSTYLE:OFF String stanza = "<presence from='mercutio@example.com' id='xv291f38' to='juliet@example.com' type='unsubscribed'/>"; Presence presence = PacketParserUtils.parsePresence(PacketParserUtils.getParserFor(stanza)); assertXMLEqual(stanza, presence.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); assertEquals(Presence.Type.unsubscribed, presence.getType()); // CHECKSTYLE:ON }
@Test public void parseSASLFailureSimple() throws FactoryConfigurationError, SAXException, IOException, TransformerException, ParserConfigurationException, XmlPullParserException { // @formatter:off final String saslFailureString = XMLBuilder.create(SASLFailure.ELEMENT, SaslStreamElements.NAMESPACE) .e(SASLError.account_disabled.toString()) .asString(); // @formatter:on XmlPullParser parser = TestUtils.getParser(saslFailureString, SASLFailure.ELEMENT); SASLFailure saslFailure = PacketParserUtils.parseSASLFailure(parser); assertXMLEqual(saslFailureString, saslFailure.toString()); }
@Test public void checkSlotRequestCreationWithoutContentType() throws SAXException, IOException { SlotRequest slotRequest = new SlotRequest(JidTestUtil.DOMAIN_BARE_JID_1, "my_romeo.png", 52523); Assert.assertEquals("my_romeo.png", slotRequest.getFilename()); Assert.assertEquals(52523, slotRequest.getSize()); Assert.assertEquals(null, slotRequest.getContentType()); assertXMLEqual(testRequestWithoutContentType, slotRequest.getChildElementXML().toString()); }
@Test public void checkSlotRequestCreation() throws SAXException, IOException { SlotRequest slotRequest = new SlotRequest(JidTestUtil.DOMAIN_BARE_JID_1, "my_juliet.png", 23456, "image/jpeg"); Assert.assertEquals("my_juliet.png", slotRequest.getFilename()); Assert.assertEquals(23456, slotRequest.getSize()); Assert.assertEquals("image/jpeg", slotRequest.getContentType()); assertXMLEqual(testRequest, slotRequest.getChildElementXML().toString()); }
@Test public void shouldReturnValidIQStanzaXML() throws Exception { String control = XMLBuilder.create("data") .a("xmlns", "http://jabber.org/protocol/ibb") .a("seq", "0") .a("sid", "i781hf64") .t("DATA") .asString(outputProperties); DataPacketExtension data = new DataPacketExtension("i781hf64", 0, "DATA"); assertXMLEqual(control, data.toXML(null).toString()); }