diff options
| author | Linus Jahn <lnj@kaidan.im> | 2020-07-04 16:36:54 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2021-08-22 16:09:02 +0200 |
| commit | 9531ea3309251962ec82a5020bff5a657c5d13da (patch) | |
| tree | ea2e59a52beb582f96e4f918aeee0e1b53f93b05 /tests | |
| parent | d280d09fcb458c680565420651c7f18702ba0ceb (diff) | |
| download | qxmpp-9531ea3309251962ec82a5020bff5a657c5d13da.tar.gz | |
tests: Add tests for QXmppPubSubItem
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/qxmpppubsub/tst_qxmpppubsub.cpp | 77 |
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" |
