// 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"