aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2023-01-22 19:25:35 +0100
committerLinus Jahn <lnj@kaidan.im>2023-01-22 19:27:12 +0100
commit2395e3cd3f087bd05c5cec94b95c73231383054b (patch)
treee879fd477fb8a51940bfc4465e34219e34a23e37 /tests
parentf5f3909771ac7b07e79c04171d9f5fc79831b891 (diff)
downloadqxmpp-2395e3cd3f087bd05c5cec94b95c73231383054b.tar.gz
Fix discovery manager incoming request handling
Fixes #529.
Diffstat (limited to 'tests')
-rw-r--r--tests/qxmppdiscoverymanager/tst_qxmppdiscoverymanager.cpp16
-rw-r--r--tests/util.h6
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();
}