From 5c9605262c3e5aeeb35a3ec004dae5086dfc25cf Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Thu, 8 Sep 2022 16:11:33 +0200 Subject: tests: HttpUploadManager: Clean up and replace TestHelper class The same can be done more elegantly and with less code. --- tests/qxmpphttpuploadmanager/CMakeLists.txt | 2 +- .../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 #include -#include - -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(); - 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("" - "" - "" - "" - "" - "" - "urn:xmpp:http:upload:0" - "" - "" - "" + - QByteArray::number(maxFileSize) + "" - "" - "" - "" - "") + << "" + "" + "" + "" + "" + "" + "urn:xmpp:http:upload:0" + "" + "" + "" + + QByteArray::number(maxFileSize) + + "" + "" + "" + "" + "" << true; } -- cgit v1.2.3