From e22485a28dc22989e15c3ca10b5dad82c4844b8f Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 10 Sep 2010 09:21:51 +0000 Subject: add tests for publish / subscribe IQs --- tests/tests.cpp | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 180 insertions(+) (limited to 'tests/tests.cpp') diff --git a/tests/tests.cpp b/tests/tests.cpp index 2899fbe1..0d809045 100644 --- a/tests/tests.cpp +++ b/tests/tests.cpp @@ -35,6 +35,7 @@ #include "QXmppMessage.h" #include "QXmppNonSASLAuth.h" #include "QXmppPresence.h" +#include "QXmppPubSubIq.h" #include "QXmppRpcIq.h" #include "QXmppSaslAuth.h" #include "QXmppSessionIq.h" @@ -667,6 +668,182 @@ void TestJingle::testRinging() serializePacket(iq, xml); } +void TestPubSub::testItems() +{ + const QByteArray xml( + "" + "" + "" + "" + ""); + + QXmppPubSubIq iq; + parsePacket(iq, xml); + QCOMPARE(iq.id(), QLatin1String("items1")); + QCOMPARE(iq.to(), QLatin1String("pubsub.shakespeare.lit")); + QCOMPARE(iq.from(), QLatin1String("francisco@denmark.lit/barracks")); + QCOMPARE(iq.type(), QXmppIq::Get); + QCOMPARE(iq.queryType(), QXmppPubSubIq::ItemsQuery); + QCOMPARE(iq.queryJid(), QString()); + QCOMPARE(iq.queryNode(), QLatin1String("storage:bookmarks")); + serializePacket(iq, xml); +} + +void TestPubSub::testItemsResponse() +{ + const QByteArray xml( + "" + "" + "" + "" + "" + "" + "JC" + "" + "" + "" + "" + "" + ""); + + QXmppPubSubIq iq; + parsePacket(iq, xml); + QCOMPARE(iq.id(), QLatin1String("items1")); + QCOMPARE(iq.to(), QLatin1String("francisco@denmark.lit/barracks")); + QCOMPARE(iq.from(), QLatin1String("pubsub.shakespeare.lit")); + QCOMPARE(iq.type(), QXmppIq::Result); + QCOMPARE(iq.queryType(), QXmppPubSubIq::ItemsQuery); + QCOMPARE(iq.queryJid(), QString()); + QCOMPARE(iq.queryNode(), QLatin1String("storage:bookmarks")); + serializePacket(iq, xml); +} + +void TestPubSub::testPublish() +{ + const QByteArray xml( + "" + "" + "" + "" + "" + "" + "JC" + "" + "" + "" + "" + "" + ""); + + QXmppPubSubIq iq; + parsePacket(iq, xml); + QCOMPARE(iq.id(), QLatin1String("items1")); + QCOMPARE(iq.to(), QLatin1String("pubsub.shakespeare.lit")); + QCOMPARE(iq.from(), QLatin1String("francisco@denmark.lit/barracks")); + QCOMPARE(iq.type(), QXmppIq::Result); + QCOMPARE(iq.queryType(), QXmppPubSubIq::PublishQuery); + QCOMPARE(iq.queryJid(), QString()); + QCOMPARE(iq.queryNode(), QLatin1String("storage:bookmarks")); + serializePacket(iq, xml); +} + +void TestPubSub::testSubscribe() +{ + const QByteArray xml( + "" + "" + "" + "" + ""); + + QXmppPubSubIq iq; + parsePacket(iq, xml); + QCOMPARE(iq.id(), QLatin1String("sub1")); + QCOMPARE(iq.to(), QLatin1String("pubsub.shakespeare.lit")); + QCOMPARE(iq.from(), QLatin1String("francisco@denmark.lit/barracks")); + QCOMPARE(iq.type(), QXmppIq::Set); + QCOMPARE(iq.queryType(), QXmppPubSubIq::SubscribeQuery); + QCOMPARE(iq.queryJid(), QLatin1String("francisco@denmark.lit")); + QCOMPARE(iq.queryNode(), QLatin1String("princely_musings")); + serializePacket(iq, xml); +} + +void TestPubSub::testSubscription() +{ + const QByteArray xml( + "" + "" + "" + "" + ""); + + QXmppPubSubIq iq; + parsePacket(iq, xml); + QCOMPARE(iq.id(), QLatin1String("sub1")); + QCOMPARE(iq.to(), QLatin1String("francisco@denmark.lit/barracks")); + QCOMPARE(iq.from(), QLatin1String("pubsub.shakespeare.lit")); + QCOMPARE(iq.type(), QXmppIq::Result); + QCOMPARE(iq.queryType(), QXmppPubSubIq::SubscriptionQuery); + QCOMPARE(iq.queryJid(), QLatin1String("francisco@denmark.lit")); + QCOMPARE(iq.queryNode(), QLatin1String("princely_musings")); + QCOMPARE(iq.subscriptionId(), QLatin1String("ba49252aaa4f5d320c24d3766f0bdcade78c78d3")); + serializePacket(iq, xml); +} + +void TestPubSub::testSubscriptions() +{ + const QByteArray xml( + "" + "" + "" + "" + ""); + + QXmppPubSubIq iq; + parsePacket(iq, xml); + QCOMPARE(iq.id(), QLatin1String("subscriptions1")); + QCOMPARE(iq.to(), QLatin1String("pubsub.shakespeare.lit")); + QCOMPARE(iq.from(), QLatin1String("francisco@denmark.lit/barracks")); + QCOMPARE(iq.type(), QXmppIq::Get); + QCOMPARE(iq.queryType(), QXmppPubSubIq::SubscriptionsQuery); + QCOMPARE(iq.queryJid(), QString()); + QCOMPARE(iq.queryNode(), QString()); + serializePacket(iq, xml); +} + static void checkVariant(const QVariant &value, const QByteArray &xml) { // serialise @@ -867,6 +1044,9 @@ int main(int argc, char *argv[]) TestJingle testJingle; errors += QTest::qExec(&testJingle); + TestPubSub testPubSub; + errors += QTest::qExec(&testPubSub); + TestXmlRpc testXmlRpc; errors += QTest::qExec(&testXmlRpc); -- cgit v1.2.3