From a42c11570b9bba3465fb79dc936de6cb3c7c48cb Mon Sep 17 00:00:00 2001 From: Melvin Keskin Date: Thu, 7 Apr 2022 18:10:42 +0200 Subject: PubSubManager: Add requestFeatures() --- .../qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp | 103 +++++++++++++++++++++ 1 file changed, 103 insertions(+) (limited to 'tests') diff --git a/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp b/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp index 602e9c39..11c41dd2 100644 --- a/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp +++ b/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp @@ -26,6 +26,9 @@ using PSManager = QXmppPubSubManager; using Affiliation = QXmppPubSubAffiliation; using AffiliationType = QXmppPubSubAffiliation::Affiliation; +const char *ns_pubsub = "http://jabber.org/protocol/pubsub"; +const char *ns_pubsub_auto_create = "http://jabber.org/protocol/pubsub#auto-create"; + class TestEventManager : public QXmppPubSubEventManager { public: @@ -67,6 +70,7 @@ class tst_QXmppPubSubManager : public QObject private: Q_SLOT void testDiscoFeatures(); + Q_SLOT void testRequestFeatures(); Q_SLOT void testFetchNodes(); Q_SLOT void testFetchPepNodes(); Q_SLOT void testCreateNodes_data(); @@ -115,6 +119,105 @@ void tst_QXmppPubSubManager::testDiscoFeatures() QCOMPARE(manager.discoveryFeatures(), QStringList { "http://jabber.org/protocol/pubsub#rsm" }); } +void tst_QXmppPubSubManager::testRequestFeatures() +{ + auto [test, psManager] = Client(); + + auto future = psManager->requestFeatures("pubsub.shakespeare.lit"); + test.expect(QStringLiteral("" + "" + "")); + test.inject(QStringLiteral("" + "" + "" + "" + "")); + + expectFutureVariant(future); + + future = psManager->requestFeatures("pubsub.shakespeare.lit"); + test.expect(QStringLiteral("" + "" + "")); + test.inject(QStringLiteral("" + "" + "" + "" + "" + "")); + + auto features = expectFutureVariant>(future); + QCOMPARE(features, (QVector { ns_pubsub, ns_pubsub_auto_create })); + + future = psManager->requestFeatures("juliet@capulet.lit"); + test.expect(QStringLiteral("" + "" + "")); + test.inject(QStringLiteral("" + "" + "" + "" + "" + "")); + + features = expectFutureVariant>(future); + QCOMPARE(features, (QVector { ns_pubsub, ns_pubsub_auto_create })); + + future = psManager->requestFeatures("juliet@capulet.lit", QXmppPubSubManager::PubSub); + test.expect(QStringLiteral("" + "" + "")); + test.inject(QStringLiteral("" + "" + "" + "" + "" + "")); + + expectFutureVariant(future); + + future = psManager->requestFeatures("pubsub.shakespeare.lit", QXmppPubSubManager::PubSub); + test.expect(QStringLiteral("" + "" + "")); + test.inject(QStringLiteral("" + "" + "" + "" + "" + "")); + + features = expectFutureVariant>(future); + QCOMPARE(features, (QVector { ns_pubsub, ns_pubsub_auto_create })); + + future = psManager->requestFeatures("pubsub.shakespeare.lit", QXmppPubSubManager::Pep); + test.expect(QStringLiteral("" + "" + "")); + test.inject(QStringLiteral("" + "" + "" + "" + "" + "")); + + expectFutureVariant(future); + + future = psManager->requestFeatures("juliet@capulet.lit", QXmppPubSubManager::Pep); + test.expect(QStringLiteral("" + "" + "")); + test.inject(QStringLiteral("" + "" + "" + "" + "" + "")); + + features = expectFutureVariant>(future); + QCOMPARE(features, (QVector { ns_pubsub, ns_pubsub_auto_create })); +} + void tst_QXmppPubSubManager::testFetchNodes() { auto [test, psManager] = Client(); -- cgit v1.2.3