diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-09-27 21:12:51 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-09-27 21:12:51 +0200 |
| commit | cc1f3ccc6d8e60ce57f7bcb1340563d63f2f06a0 (patch) | |
| tree | cb1407760047522dac6c24564d7d87386e58a5da /tests/qxmpppubsubiq/tst_qxmpppubsubiq.cpp | |
| parent | f4dbb00a035eb4df8a12f5edaf53bb99a2bd435a (diff) | |
| download | qxmpp-cc1f3ccc6d8e60ce57f7bcb1340563d63f2f06a0.tar.gz | |
split pubsub tests
Diffstat (limited to 'tests/qxmpppubsubiq/tst_qxmpppubsubiq.cpp')
| -rw-r--r-- | tests/qxmpppubsubiq/tst_qxmpppubsubiq.cpp | 218 |
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" |
