From 8e48288b71c449eb9e90aff195cbfac51fb9c6bc Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Sun, 5 May 2019 12:20:22 +0200 Subject: Add tests for QXmppMessageReceiptManager --- .../tst_qxmppmessagereceiptmanager.cpp | 98 ++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 tests/qxmppmessagereceiptmanager/tst_qxmppmessagereceiptmanager.cpp (limited to 'tests/qxmppmessagereceiptmanager/tst_qxmppmessagereceiptmanager.cpp') diff --git a/tests/qxmppmessagereceiptmanager/tst_qxmppmessagereceiptmanager.cpp b/tests/qxmppmessagereceiptmanager/tst_qxmppmessagereceiptmanager.cpp new file mode 100644 index 00000000..ebcfd18c --- /dev/null +++ b/tests/qxmppmessagereceiptmanager/tst_qxmppmessagereceiptmanager.cpp @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2008-2019 The QXmpp developers + * + * Authors: + * Linus Jahn + * + * Source: + * https://github.com/qxmpp-project/qxmpp + * + * This file is a part of QXmpp library. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + +#include +#include "QXmppClient.h" +#include "QXmppMessageReceiptManager.h" +#include "util.h" + +class tst_QXmppMessageReceiptManager : public QObject +{ + Q_OBJECT + +private slots: + void initTestCase(); + + void testReceipt_data(); + void testReceipt(); + + void handleMessageDelivered(const QString&, const QString&) + { + m_messageDelivered = true; + } + +private: + QXmppMessageReceiptManager m_manager; + bool m_messageDelivered = false; +}; + +void tst_QXmppMessageReceiptManager::initTestCase() +{ + connect(&m_manager, &QXmppMessageReceiptManager::messageDelivered, + this, &tst_QXmppMessageReceiptManager::handleMessageDelivered); +} + +void tst_QXmppMessageReceiptManager::testReceipt_data() +{ + QTest::addColumn("xml"); + QTest::addColumn("accept"); + + QTest::newRow("correct") + << QByteArray( + "" + "" + "" + ) + << true; + QTest::newRow("from-to-equal") + << QByteArray( + "" + "" + "" + ) + << false; +} + +void tst_QXmppMessageReceiptManager::testReceipt() +{ + m_messageDelivered = false; + + QFETCH(QByteArray, xml); + QFETCH(bool, accept); + + QDomDocument doc; + QCOMPARE(doc.setContent(xml, true), true); + QDomElement element = doc.documentElement(); + + QVERIFY(m_manager.handleStanza(element)); + QCOMPARE(m_messageDelivered, accept); +} + +QTEST_MAIN(tst_QXmppMessageReceiptManager) +#include "tst_qxmppmessagereceiptmanager.moc" -- cgit v1.2.3