aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMelvin Keskin <melvo@olomono.de>2022-01-27 15:50:07 +0100
committerLinus Jahn <lnj@kaidan.im>2022-04-09 22:27:11 +0200
commitd306ed08aa9d681a0b51ebbf2ec2a00b70b61018 (patch)
tree1648841a121582bd68b9d1b70df1ac92fdc69af8 /tests
parent0db9b42c59864d771f5269c54884862fa897437e (diff)
downloadqxmpp-d306ed08aa9d681a0b51ebbf2ec2a00b70b61018.tar.gz
PubSubManager: Add PEP overloads for requestItem and similar
Diffstat (limited to 'tests')
-rw-r--r--tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp88
1 files changed, 88 insertions, 0 deletions
diff --git a/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp b/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp
index b3678f89..602e9c39 100644
--- a/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp
+++ b/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp
@@ -85,9 +85,13 @@ private:
Q_SLOT void testPurgeItems();
Q_SLOT void testPurgePepItems();
Q_SLOT void testRequestItemIds();
+ Q_SLOT void testRequestPepItemIds();
Q_SLOT void testRequestCurrentItem();
Q_SLOT void testRequestItems_data();
Q_SLOT void testRequestItems();
+ Q_SLOT void testRequestCurrentPepItem();
+ Q_SLOT void testRequestPepItem();
+ Q_SLOT void testRequestPepItems();
Q_SLOT void testRequestItemNotFound();
Q_SLOT void testRequestNodeAffiliations();
Q_SLOT void testRequestAffiliations();
@@ -564,6 +568,24 @@ void tst_QXmppPubSubManager::testRequestItemIds()
QCOMPARE(itemIds, (QVector<QString> { QStringLiteral("368866411b877c30064a5f62b917cffe"), QStringLiteral("3300659945416e274474e469a1f0154c") }));
}
+void tst_QXmppPubSubManager::testRequestPepItemIds()
+{
+ auto [test, psManager] = Client();
+
+ auto future = psManager->requestPepItemIds(QStringLiteral("princely_musings"));
+ test.expect(QStringLiteral("<iq id='qxmpp1' type='get'>"
+ "<query xmlns='http://jabber.org/protocol/disco#items' node='princely_musings'/>"
+ "</iq>"));
+ test.inject(QStringLiteral("<iq id='qxmpp1' from='juliet@capulet.lit' to='juliet@capulet.lit/balcony' type='result'>"
+ "<query xmlns='http://jabber.org/protocol/disco#items' node='princely_musings'>"
+ "<item jid='juliet@capulet.lit' name='368866411b877c30064a5f62b917cffe'/>"
+ "<item jid='juliet@capulet.lit' name='3300659945416e274474e469a1f0154c'/>"
+ "</query></iq>"));
+
+ auto itemIds = expectFutureVariant<QVector<QString>>(future);
+ QCOMPARE(itemIds, (QVector<QString> { QStringLiteral("368866411b877c30064a5f62b917cffe"), QStringLiteral("3300659945416e274474e469a1f0154c") }));
+}
+
void tst_QXmppPubSubManager::testRequestCurrentItem()
{
auto [test, psManager] = Client();
@@ -719,6 +741,72 @@ void tst_QXmppPubSubManager::testRequestItems()
QVERIFY2(itemsEqual, "The items returned from the manager don't match the item IDs from the XML response");
}
+void tst_QXmppPubSubManager::testRequestCurrentPepItem()
+{
+ auto [test, psManager] = Client();
+
+ auto future = psManager->requestPepItem(QStringLiteral("princely_musings"));
+ test.expect(QStringLiteral("<iq id='qxmpp1' type='get'>"
+ "<pubsub xmlns='http://jabber.org/protocol/pubsub'>"
+ "<items node='princely_musings'>"
+ "<item id='current'/>"
+ "</items>"
+ "</pubsub></iq>"));
+ test.inject(QStringLiteral("<iq id='qxmpp1' from='juliet@capulet.lit' to='juliet@capulet.lit/balcony' type='result'>"
+ "<pubsub xmlns='http://jabber.org/protocol/pubsub'>"
+ "<items node='princely_musings'>"
+ "<item id='current'/>"
+ "</items>"
+ "</pubsub></iq>"));
+
+ const auto item = expectFutureVariant<QXmppPubSubItem>(future);
+ QCOMPARE(item.id(), QStringLiteral("current"));
+}
+
+void tst_QXmppPubSubManager::testRequestPepItem()
+{
+ auto [test, psManager] = Client();
+
+ auto future = psManager->requestPepItem(QStringLiteral("princely_musings"), QStringLiteral("ae890ac52d0df67ed7cfdf51b644e901"));
+ test.expect(QStringLiteral("<iq id='qxmpp1' type='get'>"
+ "<pubsub xmlns='http://jabber.org/protocol/pubsub'>"
+ "<items node='princely_musings'>"
+ "<item id='ae890ac52d0df67ed7cfdf51b644e901'/>"
+ "</items>"
+ "</pubsub></iq>"));
+ test.inject(QStringLiteral("<iq id='qxmpp1' from='juliet@capulet.lit' to='juliet@capulet.lit/balcony' type='result'>"
+ "<pubsub xmlns='http://jabber.org/protocol/pubsub'>"
+ "<items node='princely_musings'>"
+ "<item id='ae890ac52d0df67ed7cfdf51b644e901'/>"
+ "</items>"
+ "</pubsub></iq>"));
+
+ const auto item = expectFutureVariant<QXmppPubSubItem>(future);
+ QCOMPARE(item.id(), QStringLiteral("ae890ac52d0df67ed7cfdf51b644e901"));
+}
+
+void tst_QXmppPubSubManager::testRequestPepItems()
+{
+ auto [test, psManager] = Client();
+
+ auto future = psManager->requestPepItems(QStringLiteral("princely_musings"));
+ test.expect(QStringLiteral("<iq id='qxmpp1' type='get'>"
+ "<pubsub xmlns='http://jabber.org/protocol/pubsub'>"
+ "<items node='princely_musings'/>"
+ "</pubsub></iq>"));
+ test.inject(QStringLiteral("<iq id='qxmpp1' from='juliet@capulet.lit' to='juliet@capulet.lit/balcony' type='result'>"
+ "<pubsub xmlns='http://jabber.org/protocol/pubsub'>"
+ "<items node='princely_musings'>"
+ "<item id='368866411b877c30064a5f62b917cffe'/>"
+ "<item id='3300659945416e274474e469a1f0154c'/>"
+ "</items>"
+ "</pubsub></iq>"));
+
+ const auto items = expectFutureVariant<QXmppPubSubManager::Items<QXmppPubSubItem>>(future);
+ QCOMPARE(items.items.first().id(), QStringLiteral("368866411b877c30064a5f62b917cffe"));
+ QCOMPARE(items.items.last().id(), QStringLiteral("3300659945416e274474e469a1f0154c"));
+}
+
void tst_QXmppPubSubManager::testRequestItemNotFound()
{
auto [test, psManager] = Client();