aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-09-08 16:11:33 +0200
committerLinus Jahn <lnj@kaidan.im>2022-09-09 22:49:06 +0200
commit5c9605262c3e5aeeb35a3ec004dae5086dfc25cf (patch)
treee09a88538f2a45bd25718de60fb9c7d3be7d7e54 /tests
parent816e80c911da450e76e94223f24fe40be9343bdd (diff)
downloadqxmpp-5c9605262c3e5aeeb35a3ec004dae5086dfc25cf.tar.gz
tests: HttpUploadManager: Clean up and replace TestHelper class
The same can be done more elegantly and with less code.
Diffstat (limited to 'tests')
-rw-r--r--tests/qxmpphttpuploadmanager/CMakeLists.txt2
-rw-r--r--tests/qxmpphttpuploadmanager/tst_qxmpphttpuploadmanager.cpp127
2 files changed, 48 insertions, 81 deletions
diff --git a/tests/qxmpphttpuploadmanager/CMakeLists.txt b/tests/qxmpphttpuploadmanager/CMakeLists.txt
index 4425d62d..ceb88b1d 100644
--- a/tests/qxmpphttpuploadmanager/CMakeLists.txt
+++ b/tests/qxmpphttpuploadmanager/CMakeLists.txt
@@ -3,6 +3,6 @@
# SPDX-License-Identifier: CC0-1.0
include_directories(${CMAKE_CURRENT_BINARY_DIR})
-add_executable(tst_qxmpphttpuploadmanager tst_qxmpphttpuploadmanager.cpp tst_qxmpphttpuploadmanager.qrc)
+add_executable(tst_qxmpphttpuploadmanager tst_qxmpphttpuploadmanager.cpp tst_qxmpphttpuploadmanager.qrc ../TestClient.h)
add_test(tst_qxmpphttpuploadmanager tst_qxmpphttpuploadmanager)
target_link_libraries(tst_qxmpphttpuploadmanager Qt${QT_VERSION_MAJOR}::Test qxmpp)
diff --git a/tests/qxmpphttpuploadmanager/tst_qxmpphttpuploadmanager.cpp b/tests/qxmpphttpuploadmanager/tst_qxmpphttpuploadmanager.cpp
index 7f82ac38..5ca016ab 100644
--- a/tests/qxmpphttpuploadmanager/tst_qxmpphttpuploadmanager.cpp
+++ b/tests/qxmpphttpuploadmanager/tst_qxmpphttpuploadmanager.cpp
@@ -9,76 +9,30 @@
#include "QXmppLogger.h"
#include "QXmppUploadRequestManager.h"
+#include "TestClient.h"
#include "util.h"
-#include <QByteArray>
#include <QMimeDatabase>
-#include <QObject>
-
-class TestHelper : public QObject
-{
- Q_OBJECT
-
-public:
- TestHelper(bool expectedEvent, bool expectedError);
- ~TestHelper();
-
-public slots:
- void onSlotReceived(const QXmppHttpUploadSlotIq &slot);
- void onRequestFailed(const QXmppHttpUploadRequestIq &request);
-
-private:
- bool expectedEvent;
- bool expectedError;
- bool event;
- bool error;
-};
-
-TestHelper::TestHelper(bool p_expectedEvent, bool p_expectedError) : QObject(),
- expectedEvent(p_expectedEvent),
- expectedError(p_expectedError),
- event(false),
- error(false)
-{
-}
-
-TestHelper::~TestHelper()
-{
- QCOMPARE(event, expectedEvent);
- QCOMPARE(error, expectedError);
-}
-
-void TestHelper::onRequestFailed(const QXmppHttpUploadRequestIq &)
-{
- event = true;
- error = true;
-}
-
-void TestHelper::onSlotReceived(const QXmppHttpUploadSlotIq &)
-{
- event = true;
- error = false;
-}
class tst_QXmppHttpUploadManager : public QObject
{
Q_OBJECT
-protected slots:
- void onLoggerMessage(QXmppLogger::MessageType type, const QString &text) const;
+protected:
+ Q_SLOT void onLoggerMessage(QXmppLogger::MessageType type, const QString &text) const;
-private slots:
- void initTestCase();
+private:
+ Q_SLOT void initTestCase();
- void testDiscoveryService_data();
- void testDiscoveryService();
+ Q_SLOT void testDiscoveryService_data();
+ Q_SLOT void testDiscoveryService();
- void testHandleStanza_data();
- void testHandleStanza();
+ Q_SLOT void testHandleStanza_data();
+ Q_SLOT void testHandleStanza();
- void testSending_data();
- void testSending();
+ Q_SLOT void testSending_data();
+ Q_SLOT void testSending();
- void testUploadService();
+ Q_SLOT void testUploadService();
private:
QXmppUploadRequestManager *manager;
@@ -189,17 +143,27 @@ void tst_QXmppHttpUploadManager::testHandleStanza()
QFETCH(bool, event);
QFETCH(bool, error);
- TestHelper helper(event, error);
- connect(manager, &QXmppUploadRequestManager::slotReceived, &helper, &TestHelper::onSlotReceived);
- connect(manager, &QXmppUploadRequestManager::requestFailed, &helper, &TestHelper::onRequestFailed);
+ TestClient test;
+ auto *manager = test.addNewExtension<QXmppUploadRequestManager>();
- QDomDocument doc;
- QVERIFY(doc.setContent(xml, true));
- QDomElement element = doc.documentElement();
+ bool eventReceived = false;
+ bool errorReceived = false;
+
+ QObject context;
+ connect(manager, &QXmppUploadRequestManager::slotReceived, &context, [&](const auto &) {
+ eventReceived = true;
+ errorReceived = false;
+ });
+ connect(manager, &QXmppUploadRequestManager::requestFailed, &context, [&](const auto &) {
+ eventReceived = true;
+ errorReceived = true;
+ });
- bool realAccepted = manager->handleStanza(element);
+ bool realAccepted = manager->handleStanza(xmlToDom(xml));
QCOMPARE(realAccepted, accepted);
+ QCOMPARE(eventReceived, event);
+ QCOMPARE(errorReceived, error);
}
void tst_QXmppHttpUploadManager::testDiscoveryService_data()
@@ -218,21 +182,24 @@ void tst_QXmppHttpUploadManager::testDiscoveryService_data()
<< false;
QTest::newRow("HTTPUploadDiscoveryStanzaIq")
- << QByteArray("<iq from='" + uploadServiceName.toUtf8() + "' id='step_02' to='romeo@montague.tld/garden' type='result'>"
- "<query xmlns='http://jabber.org/protocol/disco#info'>"
- "<identity category='store' type='file' name='HTTP File Upload' />"
- "<feature var='urn:xmpp:http:upload:0' />"
- "<x type='result' xmlns='jabber:x:data'>"
- "<field var='FORM_TYPE' type='hidden'>"
- "<value>urn:xmpp:http:upload:0</value>"
- "</field>"
- "<field var='max-file-size'>"
- "<value>" +
- QByteArray::number(maxFileSize) + "</value>"
- "</field>"
- "</x>"
- "</query>"
- "</iq>")
+ << "<iq from='" +
+ uploadServiceName.toUtf8() +
+ "' id='step_02' to='romeo@montague.tld/garden' type='result'>"
+ "<query xmlns='http://jabber.org/protocol/disco#info'>"
+ "<identity category='store' type='file' name='HTTP File Upload' />"
+ "<feature var='urn:xmpp:http:upload:0' />"
+ "<x type='result' xmlns='jabber:x:data'>"
+ "<field var='FORM_TYPE' type='hidden'>"
+ "<value>urn:xmpp:http:upload:0</value>"
+ "</field>"
+ "<field var='max-file-size'>"
+ "<value>" +
+ QByteArray::number(maxFileSize) +
+ "</value>"
+ "</field>"
+ "</x>"
+ "</query>"
+ "</iq>"
<< true;
}