diff options
| author | Linus Jahn <lnj@kaidan.im> | 2023-01-22 19:25:35 +0100 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2023-01-22 19:27:12 +0100 |
| commit | 2395e3cd3f087bd05c5cec94b95c73231383054b (patch) | |
| tree | e879fd477fb8a51940bfc4465e34219e34a23e37 /tests | |
| parent | f5f3909771ac7b07e79c04171d9f5fc79831b891 (diff) | |
| download | qxmpp-2395e3cd3f087bd05c5cec94b95c73231383054b.tar.gz | |
Fix discovery manager incoming request handling
Fixes #529.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/qxmppdiscoverymanager/tst_qxmppdiscoverymanager.cpp | 16 | ||||
| -rw-r--r-- | tests/util.h | 6 |
2 files changed, 20 insertions, 2 deletions
diff --git a/tests/qxmppdiscoverymanager/tst_qxmppdiscoverymanager.cpp b/tests/qxmppdiscoverymanager/tst_qxmppdiscoverymanager.cpp index 7c26c6f6..74676425 100644 --- a/tests/qxmppdiscoverymanager/tst_qxmppdiscoverymanager.cpp +++ b/tests/qxmppdiscoverymanager/tst_qxmppdiscoverymanager.cpp @@ -12,6 +12,7 @@ class tst_QXmppDiscoveryManager : public QObject private: Q_SLOT void testInfo(); Q_SLOT void testItems(); + Q_SLOT void testRequests(); }; void tst_QXmppDiscoveryManager::testInfo() @@ -44,7 +45,6 @@ void tst_QXmppDiscoveryManager::testItems() auto future = discoManager->requestDiscoItems("user@example.org"); test.expect("<iq id='qxmpp1' to='user@example.org' type='get'><query xmlns='http://jabber.org/protocol/disco#items'/></iq>"); - qDebug() << "Moin"; test.inject<QString>(R"( <iq type='result' from='user@example.org' @@ -67,6 +67,20 @@ void tst_QXmppDiscoveryManager::testItems() QCOMPARE(items.at(3).name(), QStringLiteral("ae890ac52d0df67ed7cfdf51b644e901")); } +void tst_QXmppDiscoveryManager::testRequests() +{ + TestClient test; + test.configuration().setJid("user@qxmpp.org/a"); + auto *discoManager = test.addNewExtension<QXmppDiscoveryManager>(); + + discoManager->handleStanza(xmlToDom(R"( +<iq type='get' from='romeo@montague.net/orchard' to='user@qxmpp.org/a' id='info1'> + <query xmlns='http://jabber.org/protocol/disco#info'/> +</iq>)")); + + test.expect("<iq id='info1' to='romeo@montague.net/orchard' type='result'><query xmlns='http://jabber.org/protocol/disco#info'><identity category='client' name='tst_qxmppdiscoverymanager ' type='pc'/><feature var='jabber:x:data'/><feature var='http://jabber.org/protocol/rsm'/><feature var='jabber:x:oob'/><feature var='http://jabber.org/protocol/xhtml-im'/><feature var='http://jabber.org/protocol/chatstates'/><feature var='http://jabber.org/protocol/caps'/><feature var='urn:xmpp:ping'/><feature var='jabber:x:conference'/><feature var='urn:xmpp:message-correct:0'/><feature var='urn:xmpp:chat-markers:0'/><feature var='urn:xmpp:hints'/><feature var='urn:xmpp:sid:0'/><feature var='urn:xmpp:message-attaching:1'/><feature var='urn:xmpp:eme:0'/><feature var='urn:xmpp:spoiler:0'/><feature var='urn:xmpp:fallback:0'/><feature var='urn:xmpp:reactions:0'/><feature var='http://jabber.org/protocol/disco#info'/></query></iq>"); +} + QTEST_MAIN(tst_QXmppDiscoveryManager) #include "tst_qxmppdiscoverymanager.moc" diff --git a/tests/util.h b/tests/util.h index e0d30aa5..17f2c792 100644 --- a/tests/util.h +++ b/tests/util.h @@ -25,7 +25,11 @@ template<typename String> inline QDomElement xmlToDom(const String &xml) { QDomDocument doc; - QVERIFY_RV(doc.setContent(xml, true), "XML is not valid"); + if constexpr (std::is_same_v<String, QString> || std::is_same_v<String, QByteArray>) { + QVERIFY_RV(doc.setContent(xml, true), "XML is not valid"); + } else { + QVERIFY_RV(doc.setContent(QString(xml), true), "XML is not valid"); + } return doc.documentElement(); } |
