aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2020-08-04 17:25:20 +0200
committerLinus Jahn <lnj@kaidan.im>2021-08-22 16:09:02 +0200
commit08a67a6a06b09a6b1e4fe0c6277b4a77e66b770a (patch)
tree91b8358f9750ca151f883589737d9930fbe8eeaf
parent110be45f72c507135576e7fd2d6faf4f16d047ad (diff)
downloadqxmpp-08a67a6a06b09a6b1e4fe0c6277b4a77e66b770a.tar.gz
tests: Add PubSub utilities header
-rw-r--r--tests/pubsubutil.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/pubsubutil.h b/tests/pubsubutil.h
new file mode 100644
index 00000000..b927f0f5
--- /dev/null
+++ b/tests/pubsubutil.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2008-2021 The QXmpp developers
+ *
+ * Author:
+ * 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.
+ *
+ */
+
+#ifndef PUBSUBUTIL_H
+#define PUBSUBUTIL_H
+
+#include "QXmppPubSubItem.h"
+
+#include <QDomElement>
+#include <QXmlStreamWriter>
+#include <QtTest/QTest>
+
+class TestItem : public QXmppPubSubItem
+{
+public:
+ TestItem(const QString &id = {})
+ : QXmppPubSubItem(id)
+ {
+ }
+
+ void parsePayload(const QDomElement &payloadElement) override
+ {
+ parseCalled = true;
+ QCOMPARE(payloadElement.tagName(), QStringLiteral("test-payload"));
+ }
+
+ void serializePayload(QXmlStreamWriter *writer) const override
+ {
+ serializeCalled = true;
+ writer->writeEmptyElement("test-payload");
+ }
+
+ static bool isItem(const QDomElement &element)
+ {
+ isItemCalled = true;
+ return QXmppPubSubItem::isItem(element, [](const QDomElement &payload) {
+ return payload.tagName() == "test-payload";
+ });
+ }
+
+ bool parseCalled = false;
+ mutable bool serializeCalled = false;
+ static bool isItemCalled;
+};
+
+bool TestItem::isItemCalled = false;
+
+#endif // PUBSUBUTIL_H