aboutsummaryrefslogtreecommitdiff
path: root/tests/tests.cpp
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@woboq.com>2012-07-06 17:48:33 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-07-16 16:13:37 +0200
commit1b445c310f9a3978c850c75f4070ba0ad7cb0523 (patch)
tree51fee5fb84e5f296bb5e73cd46e2f0616b149b34 /tests/tests.cpp
parent2c54c28a78bde8bfa40652fe01bf810945bfc027 (diff)
downloadqxmpp-1b445c310f9a3978c850c75f4070ba0ad7cb0523.tar.gz
Introduce QXmppResultSetQuery/Reply to handle XEP-0059
Diffstat (limited to 'tests/tests.cpp')
-rw-r--r--tests/tests.cpp133
1 files changed, 133 insertions, 0 deletions
diff --git a/tests/tests.cpp b/tests/tests.cpp
index 2bf32909..a97a7255 100644
--- a/tests/tests.cpp
+++ b/tests/tests.cpp
@@ -1592,6 +1592,136 @@ void TestXmlRpc::testResponseFault()
serializePacket(iq, xml);
}
+void TestRsm::testQuery_data()
+{
+ QTest::addColumn<QByteArray>("xml");
+ QTest::addColumn<int>("max");
+ QTest::addColumn<int>("index");
+ QTest::addColumn<QString>("before");
+ QTest::addColumn<QString>("after");
+
+ QTest::newRow("Example 3") <<
+ QByteArray("<set xmlns=\"http://jabber.org/protocol/rsm\">"
+ "<max>10</max>"
+ "</set>")
+ << 10 << -1 << QString() << QString();
+
+ QTest::newRow("Example 5") <<
+ QByteArray("<set xmlns=\"http://jabber.org/protocol/rsm\">"
+ "<max>10</max>"
+ "<after>peterpan@neverland.lit</after>"
+ "</set>")
+ << 10 << -1 << QString() << QString("peterpan@neverland.lit");
+
+ QTest::newRow("Example 5") <<
+ QByteArray("<set xmlns=\"http://jabber.org/protocol/rsm\">"
+ "<max>10</max>"
+ "<before>peter@pixyland.org</before>"
+ "</set>")
+ << 10 << -1 << QString("peter@pixyland.org") << QString();
+
+ QTest::newRow("Example 11") <<
+ QByteArray("<set xmlns=\"http://jabber.org/protocol/rsm\">"
+ "<max>10</max>"
+ "<before/>"
+ "</set>")
+ << 10 << -1 << QString("") << QString();
+
+ QTest::newRow("Example 12") <<
+ QByteArray("<set xmlns=\"http://jabber.org/protocol/rsm\">"
+ "<max>10</max>"
+ "<index>371</index>"
+ "</set>")
+ << 10 << 371 << QString() << QString();
+
+
+ QTest::newRow("Example 15") <<
+ QByteArray("<set xmlns=\"http://jabber.org/protocol/rsm\">"
+ "<max>0</max>"
+ "</set>")
+ << 0 << -1 << QString() << QString();
+}
+
+void TestRsm::testQuery()
+{
+ QFETCH(QByteArray, xml);
+ QFETCH(int, max);
+ QFETCH(int, index);
+ QFETCH(QString, before);
+ QFETCH(QString, after);
+
+ QXmppResultSetQuery iq;
+ parsePacket(iq, xml);
+ QCOMPARE(iq.max(), max);
+ QCOMPARE(iq.index(), index);
+ QCOMPARE(iq.before(), before);
+ QCOMPARE(iq.before().isNull(), before.isNull());
+ QCOMPARE(iq.after(), after);
+ QCOMPARE(iq.after().isNull(), after.isNull());
+ serializePacket(iq, xml);
+}
+
+void TestRsm::testReply_data()
+{
+ QTest::addColumn<QByteArray>("xml");
+ QTest::addColumn<int>("count");
+ QTest::addColumn<int>("index");
+ QTest::addColumn<QString>("first");
+ QTest::addColumn<QString>("last");
+
+ QTest::newRow("Example 4") <<
+ QByteArray( "<set xmlns=\"http://jabber.org/protocol/rsm\">"
+ "<first index=\"0\">stpeter@jabber.org</first>"
+ "<last>peterpan@neverland.lit</last>"
+ "<count>800</count>"
+ "</set>")
+ << 800 << 0 << QString("stpeter@jabber.org") << QString("peterpan@neverland.lit");
+
+ QTest::newRow("Example 6") <<
+ QByteArray( "<set xmlns=\"http://jabber.org/protocol/rsm\">"
+ "<first index=\"0\">stpeter@jabber.org</first>"
+ "<last>peterpan@neverland.lit</last>"
+ "<count>800</count>"
+ "</set>")
+ << 800 << 0 << QString("stpeter@jabber.org") << QString("peterpan@neverland.lit");
+ QTest::newRow("Example 4") <<
+ QByteArray( "<set xmlns=\"http://jabber.org/protocol/rsm\">"
+ "<first index=\"10\">peter@pixyland.org</first>"
+ "<last>peter@rabbit.lit</last>"
+ "<count>800</count>"
+ "</set>")
+ << 800 << 10 << QString("peter@pixyland.org") << QString("peter@rabbit.lit");
+
+ QTest::newRow("Example 7") <<
+ QByteArray( "<set xmlns=\"http://jabber.org/protocol/rsm\">"
+ "<count>790</count>"
+ "</set>")
+ << 790 << -1 << QString() << QString();
+}
+
+
+void TestRsm::testReply()
+{
+ QFETCH(QByteArray, xml);
+ QFETCH(int, count);
+ QFETCH(int, index);
+ QFETCH(QString, first);
+ QFETCH(QString, last);
+
+ QXmppResultSetReply iq;
+ parsePacket(iq, xml);
+ QCOMPARE(iq.count(), count);
+ QCOMPARE(iq.index(), index);
+ QCOMPARE(iq.first(), first);
+ QCOMPARE(iq.first().isNull(), first.isNull());
+ QCOMPARE(iq.last(), last);
+ QCOMPARE(iq.last().isNull(), last.isNull());
+ serializePacket(iq, xml);
+}
+
+
+
+
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
@@ -1626,6 +1756,9 @@ int main(int argc, char *argv[])
TestXmlRpc testXmlRpc;
errors += QTest::qExec(&testXmlRpc);
+ TestRsm testRsm;
+ errors += QTest::qExec(&testRsm);
+
if (errors)
{
qWarning() << "Total failed tests:" << errors;