aboutsummaryrefslogtreecommitdiff
path: root/tests/qxmpppubsubiq/tst_qxmpppubsubiq.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-09-27 21:12:51 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-09-27 21:12:51 +0200
commitcc1f3ccc6d8e60ce57f7bcb1340563d63f2f06a0 (patch)
treecb1407760047522dac6c24564d7d87386e58a5da /tests/qxmpppubsubiq/tst_qxmpppubsubiq.cpp
parentf4dbb00a035eb4df8a12f5edaf53bb99a2bd435a (diff)
downloadqxmpp-cc1f3ccc6d8e60ce57f7bcb1340563d63f2f06a0.tar.gz
split pubsub tests
Diffstat (limited to 'tests/qxmpppubsubiq/tst_qxmpppubsubiq.cpp')
-rw-r--r--tests/qxmpppubsubiq/tst_qxmpppubsubiq.cpp218
1 files changed, 218 insertions, 0 deletions
diff --git a/tests/qxmpppubsubiq/tst_qxmpppubsubiq.cpp b/tests/qxmpppubsubiq/tst_qxmpppubsubiq.cpp
new file mode 100644
index 00000000..e3ae8541
--- /dev/null
+++ b/tests/qxmpppubsubiq/tst_qxmpppubsubiq.cpp
@@ -0,0 +1,218 @@
+/*
+ * Copyright (C) 2008-2012 The QXmpp developers
+ *
+ * Author:
+ * Jeremy Lainé
+ *
+ * Source:
+ * http://code.google.com/p/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 "QXmppPubSubIq.h"
+#include "util.h"
+
+class tst_QXmppPubSubIq : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void testItems();
+ void testItemsResponse();
+ void testPublish();
+ void testSubscribe();
+ void testSubscription();
+ void testSubscriptions();
+};
+
+void tst_QXmppPubSubIq::testItems()
+{
+ const QByteArray xml(
+ "<iq"
+ " id=\"items1\""
+ " to=\"pubsub.shakespeare.lit\""
+ " from=\"francisco@denmark.lit/barracks\""
+ " type=\"get\">"
+ "<pubsub xmlns=\"http://jabber.org/protocol/pubsub\">"
+ "<items node=\"storage:bookmarks\"/>"
+ "</pubsub>"
+ "</iq>");
+
+ 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 tst_QXmppPubSubIq::testItemsResponse()
+{
+ const QByteArray xml(
+ "<iq"
+ " id=\"items1\""
+ " to=\"francisco@denmark.lit/barracks\""
+ " from=\"pubsub.shakespeare.lit\""
+ " type=\"result\">"
+ "<pubsub xmlns=\"http://jabber.org/protocol/pubsub\">"
+ "<items node=\"storage:bookmarks\">"
+ "<item id=\"current\">"
+ "<storage xmlns=\"storage:bookmarks\">"
+ "<conference"
+ " autojoin=\"true\""
+ " jid=\"theplay@conference.shakespeare.lit\""
+ " name=\"The Play's the Thing\">"
+ "<nick>JC</nick>"
+ "</conference>"
+ "</storage>"
+ "</item>"
+ "</items>"
+ "</pubsub>"
+ "</iq>");
+
+ 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 tst_QXmppPubSubIq::testPublish()
+{
+ const QByteArray xml(
+ "<iq"
+ " id=\"items1\""
+ " to=\"pubsub.shakespeare.lit\""
+ " from=\"francisco@denmark.lit/barracks\""
+ " type=\"result\">"
+ "<pubsub xmlns=\"http://jabber.org/protocol/pubsub\">"
+ "<publish node=\"storage:bookmarks\">"
+ "<item id=\"current\">"
+ "<storage xmlns=\"storage:bookmarks\">"
+ "<conference"
+ " autojoin=\"true\""
+ " jid=\"theplay@conference.shakespeare.lit\""
+ " name=\"The Play's the Thing\">"
+ "<nick>JC</nick>"
+ "</conference>"
+ "</storage>"
+ "</item>"
+ "</publish>"
+ "</pubsub>"
+ "</iq>");
+
+ 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 tst_QXmppPubSubIq::testSubscribe()
+{
+ const QByteArray xml(
+ "<iq"
+ " id=\"sub1\""
+ " to=\"pubsub.shakespeare.lit\""
+ " from=\"francisco@denmark.lit/barracks\""
+ " type=\"set\">"
+ "<pubsub xmlns=\"http://jabber.org/protocol/pubsub\">"
+ "<subscribe jid=\"francisco@denmark.lit\" node=\"princely_musings\"/>"
+ "</pubsub>"
+ "</iq>");
+
+ 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 tst_QXmppPubSubIq::testSubscription()
+{
+ const QByteArray xml(
+ "<iq"
+ " id=\"sub1\""
+ " to=\"francisco@denmark.lit/barracks\""
+ " from=\"pubsub.shakespeare.lit\""
+ " type=\"result\">"
+ "<pubsub xmlns=\"http://jabber.org/protocol/pubsub\">"
+ "<subscription jid=\"francisco@denmark.lit\""
+ " node=\"princely_musings\""
+ " subid=\"ba49252aaa4f5d320c24d3766f0bdcade78c78d3\""
+ " subscription=\"subscribed\"/>"
+ "</pubsub>"
+ "</iq>");
+
+ 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 tst_QXmppPubSubIq::testSubscriptions()
+{
+ const QByteArray xml(
+ "<iq"
+ " id=\"subscriptions1\""
+ " to=\"pubsub.shakespeare.lit\""
+ " from=\"francisco@denmark.lit/barracks\""
+ " type=\"get\">"
+ "<pubsub xmlns=\"http://jabber.org/protocol/pubsub\">"
+ "<subscriptions/>"
+ "</pubsub>"
+ "</iq>");
+
+ 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);
+}
+
+QTEST_MAIN(tst_QXmppPubSubIq)
+#include "tst_qxmpppubsubiq.moc"