void TestPubSub::testPublish() { const QByteArray xml( "<iq" " id=\"items1\"" " to=\"pubsub.shakespeare.lit\"" " from=\"[email protected]/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=\"[email protected]\"" " 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("[email protected]/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::testSubscription() { const QByteArray xml( "<iq" " id=\"sub1\"" " to=\"[email protected]/barracks\"" " from=\"pubsub.shakespeare.lit\"" " type=\"result\">" "<pubsub xmlns=\"http://jabber.org/protocol/pubsub\">" "<subscription jid=\"[email protected]\"" " node=\"princely_musings\"" " subid=\"ba49252aaa4f5d320c24d3766f0bdcade78c78d3\"" " subscription=\"subscribed\"/>" "</pubsub>" "</iq>"); QXmppPubSubIq iq; parsePacket(iq, xml); QCOMPARE(iq.id(), QLatin1String("sub1")); QCOMPARE(iq.to(), QLatin1String("[email protected]/barracks")); QCOMPARE(iq.from(), QLatin1String("pubsub.shakespeare.lit")); QCOMPARE(iq.type(), QXmppIq::Result); QCOMPARE(iq.queryType(), QXmppPubSubIq::SubscriptionQuery); QCOMPARE(iq.queryJid(), QLatin1String("*****@*****.**")); QCOMPARE(iq.queryNode(), QLatin1String("princely_musings")); QCOMPARE(iq.subscriptionId(), QLatin1String("ba49252aaa4f5d320c24d3766f0bdcade78c78d3")); serializePacket(iq, xml); }
bool QXmppPubSubManager::handleStanza(const QDomElement &stanza) { if (stanza.tagName() == "iq" && QXmppPubSubIq::isPubSubIq(stanza)) { QXmppPubSubIq iq; iq.parse(stanza); if (iq.type() == QXmppIq::Result || iq.type() == QXmppIq::Error) { if (iq.queryType() == QXmppPubSubIq::ItemsQuery) { emit itemsReceived(iq.from(), iq.queryNode(), iq.items()); } return true; } } return false; }
void TestPubSub::testSubscriptions() { const QByteArray xml( "<iq" " id=\"subscriptions1\"" " to=\"pubsub.shakespeare.lit\"" " from=\"[email protected]/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("[email protected]/barracks")); QCOMPARE(iq.type(), QXmppIq::Get); QCOMPARE(iq.queryType(), QXmppPubSubIq::SubscriptionsQuery); QCOMPARE(iq.queryJid(), QString()); QCOMPARE(iq.queryNode(), QString()); serializePacket(iq, xml); }