aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2019-10-22 21:04:15 +0200
committerLNJ <lnj@kaidan.im>2019-10-23 12:13:18 +0200
commit86ca79a0d5480a307e6117798e3c216ad23fca51 (patch)
treead96f6bf62da97d8a4e891f68a0326840b079330 /tests
parentdfec49b06fc305cc55631e5473b9ba19c729cd03 (diff)
downloadqxmpp-86ca79a0d5480a307e6117798e3c216ad23fca51.tar.gz
Add minimal test for QXmppClient
Diffstat (limited to 'tests')
-rw-r--r--tests/CMakeLists.txt1
-rw-r--r--tests/qxmppclient/tst_qxmppclient.cpp81
2 files changed, 82 insertions, 0 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index bde85901..8cab71a7 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -18,6 +18,7 @@ add_simple_test(qxmpparchiveiq)
add_simple_test(qxmppbindiq)
add_simple_test(qxmppcallmanager)
add_simple_test(qxmppcarbonmanager)
+add_simple_test(qxmppclient)
add_simple_test(qxmppdataform)
add_simple_test(qxmppdiscoveryiq)
add_simple_test(qxmppentitytimeiq)
diff --git a/tests/qxmppclient/tst_qxmppclient.cpp b/tests/qxmppclient/tst_qxmppclient.cpp
new file mode 100644
index 00000000..a848d67d
--- /dev/null
+++ b/tests/qxmppclient/tst_qxmppclient.cpp
@@ -0,0 +1,81 @@
+/*
+ * 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 <QObject>
+
+#include "QXmppClient.h"
+#include "QXmppLogger.h"
+#include "QXmppMessage.h"
+#include "util.h"
+
+class tst_QXmppClient : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void initTestCase();
+
+ void testSendMessage();
+ void handleMessageSent(QXmppLogger::MessageType type, const QString &text) const;
+
+private:
+ QXmppClient *client;
+};
+
+void tst_QXmppClient::handleMessageSent(QXmppLogger::MessageType type, const QString& text) const
+{
+ QCOMPARE(type, QXmppLogger::MessageType::SentMessage);
+
+ QXmppMessage msg;
+ parsePacket(msg, text.toUtf8());
+
+ QCOMPARE(msg.from(), QString());
+ QCOMPARE(msg.to(), QStringLiteral("support@qxmpp.org"));
+ QCOMPARE(msg.body(), QStringLiteral("implement XEP-* plz"));
+}
+
+void tst_QXmppClient::initTestCase()
+{
+ client = new QXmppClient(this);
+}
+
+void tst_QXmppClient::testSendMessage()
+{
+ QXmppLogger logger;
+ logger.setLoggingType(QXmppLogger::SignalLogging);
+ client->setLogger(&logger);
+
+ connect(&logger, &QXmppLogger::message, this, &tst_QXmppClient::handleMessageSent);
+
+ client->sendMessage(
+ QStringLiteral("support@qxmpp.org"),
+ QStringLiteral("implement XEP-* plz")
+ );
+
+ // see handleMessageSent()
+
+ client->setLogger(nullptr);
+}
+
+QTEST_MAIN(tst_QXmppClient)
+#include "tst_qxmppclient.moc"