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