From 2d45a382a1b96a08a7167cd9719dd9047fcc9167 Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Mon, 13 Mar 2023 19:14:42 +0100 Subject: tests: Add VersionManager test --- .../tst_qxmppversionmanager.cpp | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 tests/qxmppversionmanager/tst_qxmppversionmanager.cpp (limited to 'tests/qxmppversionmanager/tst_qxmppversionmanager.cpp') diff --git a/tests/qxmppversionmanager/tst_qxmppversionmanager.cpp b/tests/qxmppversionmanager/tst_qxmppversionmanager.cpp new file mode 100644 index 00000000..b28d0de2 --- /dev/null +++ b/tests/qxmppversionmanager/tst_qxmppversionmanager.cpp @@ -0,0 +1,68 @@ +// SPDX-FileCopyrightText: 2023 Linus Jahn +// +// SPDX-License-Identifier: LGPL-2.1-or-later + +#include "QXmppVersionManager.h" +#include "QXmppVersionIq.h" + +#include "TestClient.h" + +Q_DECLARE_METATYPE(QXmppVersionIq); + +class tst_QXmppVersionManager : public QObject +{ + Q_OBJECT + Q_SLOT void initTestCase(); + Q_SLOT void testSendRequest(); + Q_SLOT void testHandleRequest(); +}; + +void tst_QXmppVersionManager::initTestCase() +{ + qRegisterMetaType(); +} + +void tst_QXmppVersionManager::testSendRequest() +{ + TestClient test; + auto *verManager = test.addNewExtension(); + + QSignalSpy spy(verManager, &QXmppVersionManager::versionReceived); + + auto id = verManager->requestVersion("juliet@capulet.com/balcony"); + test.expect(""); + verManager->handleStanza(xmlToDom(R"( + + Exodus + 0.7.0.4 + Windows-XP 5.01.2600 + +)")); + + QCOMPARE(spy.size(), 1); + auto version = spy.at(0).at(0).value(); + QCOMPARE(version.name(), QStringLiteral("Exodus")); + QCOMPARE(version.version(), QStringLiteral("0.7.0.4")); + QCOMPARE(version.os(), QStringLiteral("Windows-XP 5.01.2600")); +} + +void tst_QXmppVersionManager::testHandleRequest() +{ + TestClient test; + test.configuration().setJid("juliet@capulet.com/balcony"); + + auto *verManager = test.addNewExtension(); + verManager->setClientName("Exodus"); + verManager->setClientVersion("0.7.0.4"); + verManager->setClientOs("Windows-XP 5.01.2600"); + + verManager->handleStanza(xmlToDom(R"( + +)")); + test.expect(R"()" + "ExodusWindows-XP 5.01.26000.7.0.4" + ""); +} + +QTEST_MAIN(tst_QXmppVersionManager) +#include "tst_qxmppversionmanager.moc" -- cgit v1.2.3