aboutsummaryrefslogtreecommitdiff
path: root/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-08-16 21:00:15 +0200
committerLinus Jahn <lnj@kaidan.im>2023-01-03 22:05:54 +0100
commitb17284ee7d674416e0d11f1699f73fcc606262d4 (patch)
tree86597f2bc2a1ed2d257e0cbf8e7de1ca54080c08 /tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp
parent3271c6642439d4d3c0d8c634e2b3f4cf17b908a0 (diff)
downloadqxmpp-b17284ee7d674416e0d11f1699f73fcc606262d4.tar.gz
Introduce QXmppTask & QXmppPromise
Closes #502. Co-authored-by: Jonah BrĂ¼chert <jbb@kaidan.im>
Diffstat (limited to 'tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp')
-rw-r--r--tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp95
1 files changed, 50 insertions, 45 deletions
diff --git a/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp b/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp
index f6322779..251d57b5 100644
--- a/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp
+++ b/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp
@@ -299,13 +299,14 @@ void tst_QXmppPubSubManager::testCreateNodes()
auto [test, psManager] = Client();
- QFuture<PSManager::Result> future;
- if (isPep) {
- test.configuration().setJid(jid);
- future = psManager->createOwnPepNode(node);
- } else {
- future = psManager->createNode(jid, node);
- }
+ QXmppTask<PSManager::Result> future = [=, &t = test, psM = psManager]() {
+ if (isPep) {
+ t.configuration().setJid(jid);
+ return psM->createOwnPepNode(node);
+ } else {
+ return psM->createNode(jid, node);
+ }
+ }();
test.expect(QStringLiteral("<iq id='qxmpp1' to='%1' type='set'><pubsub xmlns='http://jabber.org/protocol/pubsub'><create node='%2'/></pubsub></iq>").arg(jid, node));
test.inject(QStringLiteral("<iq id='qxmpp1' from='%1' type='result'/>").arg(jid));
@@ -400,12 +401,13 @@ void tst_QXmppPubSubManager::testDeleteNodes()
test.configuration().setJid(jid);
}
- QFuture<PSManager::Result> future;
- if (isPep) {
- future = psManager->deleteOwnPepNode(node);
- } else {
- future = psManager->deleteNode(jid, node);
- }
+ QXmppTask<PSManager::Result> future = [=, psM = psManager]() {
+ if (isPep) {
+ return psM->deleteOwnPepNode(node);
+ } else {
+ return psM->deleteNode(jid, node);
+ }
+ }();
// FIXME: pubsub#owner here, but not for <create/>?
test.expect(QStringLiteral("<iq id='qxmpp1' to='%1' type='set'><pubsub xmlns='http://jabber.org/protocol/pubsub#owner'><delete node='%2'/></pubsub></iq>").arg(jid, node));
@@ -516,20 +518,21 @@ void tst_QXmppPubSubManager::testPublishItems()
};
if (items.size() == 1) {
- QFuture<PSManager::PublishItemResult> future;
- if (isPep) {
- if (publishOptions) {
- future = psManager->publishOwnPepItem(node, items.constFirst(), *publishOptions);
+ QXmppTask<PSManager::PublishItemResult> future = [=, psM = psManager]() {
+ if (isPep) {
+ if (publishOptions) {
+ return psManager->publishOwnPepItem(node, items.constFirst(), *publishOptions);
+ } else {
+ return psManager->publishOwnPepItem(node, items.constFirst());
+ }
} else {
- future = psManager->publishOwnPepItem(node, items.constFirst());
+ if (publishOptions) {
+ return psManager->publishItem(jid, node, items.constFirst(), *publishOptions);
+ } else {
+ return psManager->publishItem(jid, node, items.constFirst());
+ }
}
- } else {
- if (publishOptions) {
- future = psManager->publishItem(jid, node, items.constFirst(), *publishOptions);
- } else {
- future = psManager->publishItem(jid, node, items.constFirst());
- }
- }
+ }();
injectXml();
const auto id = expectFutureVariant<QString>(future);
@@ -539,20 +542,21 @@ void tst_QXmppPubSubManager::testPublishItems()
QVERIFY(id.isNull());
}
} else {
- QFuture<PSManager::PublishItemsResult> future;
- if (isPep) {
- if (publishOptions) {
- future = psManager->publishOwnPepItems(node, items, *publishOptions);
+ QXmppTask<PSManager::PublishItemsResult> future = [=, psM = psManager]() {
+ if (isPep) {
+ if (publishOptions) {
+ return psManager->publishOwnPepItems(node, items, *publishOptions);
+ } else {
+ return psManager->publishOwnPepItems(node, items);
+ }
} else {
- future = psManager->publishOwnPepItems(node, items);
+ if (publishOptions) {
+ return psManager->publishItems(jid, node, items, *publishOptions);
+ } else {
+ return psManager->publishItems(jid, node, items);
+ }
}
- } else {
- if (publishOptions) {
- future = psManager->publishItems(jid, node, items, *publishOptions);
- } else {
- future = psManager->publishItems(jid, node, items);
- }
- }
+ }();
injectXml();
const auto ids = expectFutureVariant<QVector<QString>>(future);
@@ -614,13 +618,14 @@ void tst_QXmppPubSubManager::testRetractItem()
auto [test, psManager] = Client();
- QFuture<PSManager::Result> future;
- if (isPep) {
- test.configuration().setJid(jid);
- future = psManager->retractOwnPepItem(node, itemId);
- } else {
- future = psManager->retractItem(jid, node, itemId);
- }
+ QXmppTask<PSManager::Result> future = [=, psM = psManager, &t = test]() {
+ if (isPep) {
+ t.configuration().setJid(jid);
+ return psM->retractOwnPepItem(node, itemId);
+ } else {
+ return psM->retractItem(jid, node, itemId);
+ }
+ }();
test.expect(QStringLiteral("<iq id='qxmpp1' to='%1' type='set'><pubsub xmlns='http://jabber.org/protocol/pubsub'><retract node='%2'><item id='%3'/></retract></pubsub></iq>")
.arg(jid, node, itemId));
@@ -1024,7 +1029,7 @@ void tst_QXmppPubSubManager::testRequestOptions()
TestClient test;
auto *psManager = test.addNewExtension<PSManager>();
- auto testOpts = [&](QFuture<PSManager::OptionsResult> &&future) {
+ auto testOpts = [&](QXmppTask<PSManager::OptionsResult> &&future) {
test.expect("<iq id='qxmpp1' to='pubsub.shakespeare.lit' type='get'><pubsub xmlns='http://jabber.org/protocol/pubsub'>"
"<options jid='me@qxmpp.org' node='node1'/>"
"</pubsub></iq>");