From 867f74bd0c48eeca47dfa49999db8502d054b15c Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Mon, 13 Mar 2023 19:52:39 +0100 Subject: tests: Add EntityTimeManager test --- .../tst_qxmppentitytimemanager.cpp | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 tests/qxmppentitytimemanager/tst_qxmppentitytimemanager.cpp (limited to 'tests/qxmppentitytimemanager/tst_qxmppentitytimemanager.cpp') diff --git a/tests/qxmppentitytimemanager/tst_qxmppentitytimemanager.cpp b/tests/qxmppentitytimemanager/tst_qxmppentitytimemanager.cpp new file mode 100644 index 00000000..a76a628d --- /dev/null +++ b/tests/qxmppentitytimemanager/tst_qxmppentitytimemanager.cpp @@ -0,0 +1,68 @@ +// SPDX-FileCopyrightText: 2023 Linus Jahn +// +// SPDX-License-Identifier: LGPL-2.1-or-later + +#include "QXmppEntityTimeIq.h" +#include "QXmppEntityTimeManager.h" + +#include "TestClient.h" + +Q_DECLARE_METATYPE(QXmppEntityTimeIq) + +class tst_QXmppEntityTimeManager : public QObject +{ + Q_OBJECT + Q_SLOT void initTestCase(); + Q_SLOT void testSendRequest(); + Q_SLOT void testHandleRequest(); +}; + +void tst_QXmppEntityTimeManager::initTestCase() +{ + qRegisterMetaType(); +} + +void tst_QXmppEntityTimeManager::testSendRequest() +{ + TestClient test; + auto *manager = test.addNewExtension(); + + QSignalSpy spy(manager, &QXmppEntityTimeManager::timeReceived); + + manager->requestTime("juliet@capulet.com/balcony"); + test.expect(""); + manager->handleStanza(xmlToDom(R"( + +)")); + + QCOMPARE(spy.size(), 1); + auto time = spy.at(0).at(0).value(); + QCOMPARE(time.utc(), QDateTime({2006, 12, 19}, {17, 58, 35}, Qt::UTC)); + QCOMPARE(time.tzo(), -6 * 60 * 60); +} + +void tst_QXmppEntityTimeManager::testHandleRequest() +{ + TestClient test; + test.configuration().setJid("juliet@capulet.com/balcony"); + + auto *manager = test.addNewExtension(); + + manager->handleStanza(xmlToDom(R"( + )")); + + auto packet = xmlToDom(test.takePacket()); + QVERIFY(QXmppEntityTimeIq::isEntityTimeIq(packet)); + QXmppEntityTimeIq resp; + resp.parse(packet); + + QCOMPARE(resp.id(), QStringLiteral("time_1")); + QCOMPARE(resp.type(), QXmppIq::Result); +} + +QTEST_MAIN(tst_QXmppEntityTimeManager) +#include "tst_qxmppentitytimemanager.moc" -- cgit v1.2.3