diff options
| author | Linus Jahn <lnj@kaidan.im> | 2022-09-08 16:11:33 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2022-09-09 22:49:06 +0200 |
| commit | 5c9605262c3e5aeeb35a3ec004dae5086dfc25cf (patch) | |
| tree | e09a88538f2a45bd25718de60fb9c7d3be7d7e54 /tests | |
| parent | 816e80c911da450e76e94223f24fe40be9343bdd (diff) | |
| download | qxmpp-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.txt | 2 | ||||
| -rw-r--r-- | tests/qxmpphttpuploadmanager/tst_qxmpphttpuploadmanager.cpp | 127 |
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; } |
