aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2020-07-04 16:36:54 +0200
committerLinus Jahn <lnj@kaidan.im>2021-08-22 16:09:02 +0200
commit9531ea3309251962ec82a5020bff5a657c5d13da (patch)
treeea2e59a52beb582f96e4f918aeee0e1b53f93b05 /tests
parentd280d09fcb458c680565420651c7f18702ba0ceb (diff)
downloadqxmpp-9531ea3309251962ec82a5020bff5a657c5d13da.tar.gz
tests: Add tests for QXmppPubSubItem
Diffstat (limited to 'tests')
-rw-r--r--tests/qxmpppubsub/tst_qxmpppubsub.cpp77
1 files changed, 77 insertions, 0 deletions
diff --git a/tests/qxmpppubsub/tst_qxmpppubsub.cpp b/tests/qxmpppubsub/tst_qxmpppubsub.cpp
index dc5337a8..4567f230 100644
--- a/tests/qxmpppubsub/tst_qxmpppubsub.cpp
+++ b/tests/qxmpppubsub/tst_qxmpppubsub.cpp
@@ -24,6 +24,7 @@
#include "QXmppPubSubAffiliation.h"
#include "QXmppPubSubSubscription.h"
+#include "pubsubutil.h"
#include "util.h"
#include <QObject>
@@ -69,6 +70,10 @@ private:
Q_SLOT void testIsAffiliation();
Q_SLOT void testSubscription_data();
Q_SLOT void testSubscription();
+ Q_SLOT void testItem();
+ Q_SLOT void testIsItem_data();
+ Q_SLOT void testIsItem();
+ Q_SLOT void testTestItem();
};
void tst_QXmppPubSub::testAffiliation_data()
@@ -221,6 +226,78 @@ void tst_QXmppPubSub::testSubscription()
sub.setConfigurationSupport(configSupport);
serializePacket(sub, xml);
}
+void tst_QXmppPubSub::testItem()
+{
+ const auto xml = QByteArrayLiteral("<item id=\"abc1337\" publisher=\"lnj@qxmpp.org\"/>");
+
+ QXmppPubSubItem item;
+ parsePacket(item, xml);
+
+ QCOMPARE(item.id(), QStringLiteral("abc1337"));
+ QCOMPARE(item.publisher(), QStringLiteral("lnj@qxmpp.org"));
+
+ // test serialization with parsed item
+ serializePacket(item, xml);
+
+ // test serialization with constructor values
+ item = QXmppPubSubItem("abc1337", "lnj@qxmpp.org");
+ serializePacket(item, xml);
+
+ // test serialization with setters
+ item = QXmppPubSubItem();
+ item.setId("abc1337");
+ item.setPublisher("lnj@qxmpp.org");
+ serializePacket(item, xml);
+}
+
+void tst_QXmppPubSub::testIsItem_data()
+{
+ QTest::addColumn<QByteArray>("xml");
+ QTest::addColumn<bool>("valid");
+
+ QTest::newRow("valid-id-publisher")
+ << QByteArrayLiteral("<item id=\"abc1337\" publisher=\"lnj@qxmpp.org\"/>")
+ << true;
+ QTest::newRow("valid-id")
+ << QByteArrayLiteral("<item id=\"abc1337\"/>")
+ << true;
+ QTest::newRow("valid-publisher")
+ << QByteArrayLiteral("<item publisher=\"lnj@qxmpp.org\"/>")
+ << true;
+ QTest::newRow("valid")
+ << QByteArrayLiteral("<item/>")
+ << true;
+ QTest::newRow("valid-payload")
+ << QByteArrayLiteral("<item><payload xmlns=\"blah\"/></item>")
+ << true;
+ QTest::newRow("invalid-tag-name")
+ << QByteArrayLiteral("<pubsub-item id=\"abc1337\" publisher=\"lnj@qxmpp.org\"/>")
+ << false;
+}
+
+void tst_QXmppPubSub::testIsItem()
+{
+ QFETCH(QByteArray, xml);
+ QFETCH(bool, valid);
+
+ QCOMPARE(QXmppPubSubItem::isItem(xmlToDom(xml)), valid);
+}
+
+void tst_QXmppPubSub::testTestItem()
+{
+ const auto xml = QByteArrayLiteral("<item id=\"abc1337\" publisher=\"lnj@qxmpp.org\"><test-payload/></item>");
+
+ TestItem item;
+ parsePacket(item, xml);
+ serializePacket(item, xml);
+
+ QVERIFY(item.parseCalled);
+ QVERIFY(item.serializeCalled);
+
+ const auto invalidXml = QByteArrayLiteral("<item id=\"abc1337\"><tune/></item>");
+ QVERIFY(TestItem::isItem(xmlToDom(xml)));
+ QVERIFY(!TestItem::isItem(xmlToDom(invalidXml)));
+}
QTEST_MAIN(tst_QXmppPubSub)
#include "tst_qxmpppubsub.moc"