aboutsummaryrefslogtreecommitdiff
path: root/tests/message.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-07-21 10:23:08 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-07-21 10:23:08 +0200
commit51cadc0c4cac8f8713ec740aab9c8b1099160d55 (patch)
treed1608ab48105b8c14278f9ba1499ef1c6d313c34 /tests/message.cpp
parent9d273f3481c0796c0ea3a0ef03a8a09c8d2b668a (diff)
downloadqxmpp-51cadc0c4cac8f8713ec740aab9c8b1099160d55.tar.gz
improve QXmppMessage test coverage
Diffstat (limited to 'tests/message.cpp')
-rw-r--r--tests/message.cpp123
1 files changed, 85 insertions, 38 deletions
diff --git a/tests/message.cpp b/tests/message.cpp
index 94ff9155..8671edba 100644
--- a/tests/message.cpp
+++ b/tests/message.cpp
@@ -26,19 +26,45 @@
#include "message.h"
#include "tests.h"
-void tst_QXmppMessage::testMessage()
+void tst_QXmppMessage::testBasic_data()
{
- const QByteArray xml(
- "<message to=\"foo@example.com/QXmpp\" from=\"bar@example.com/QXmpp\" type=\"normal\"/>");
+ QTest::addColumn<QByteArray>("xml");
+ QTest::addColumn<int>("type");
+ QTest::addColumn<QString>("body");
+ QTest::addColumn<QString>("subject");
+ QTest::addColumn<QString>("thread");
+
+ QTest::newRow("minimal")
+ << QByteArray("<message to=\"foo@example.com/QXmpp\" from=\"bar@example.com/QXmpp\" type=\"normal\"/>")
+ << int(QXmppMessage::Normal)
+ << QString() << QString() << QString();
+
+ QTest::newRow("full")
+ << QByteArray("<message to=\"foo@example.com/QXmpp\" from=\"bar@example.com/QXmpp\" type=\"normal\">"
+ "<subject>test subject</subject>"
+ "<body>test body &amp; stuff</body>"
+ "<thread>test thread</thread>"
+ "</message>")
+ << int(QXmppMessage::Normal)
+ << "test body & stuff" << "test subject" << "test thread";
+}
+
+void tst_QXmppMessage::testBasic()
+{
+ QFETCH(QByteArray, xml);
+ QFETCH(int, type);
+ QFETCH(QString, body);
+ QFETCH(QString, subject);
+ QFETCH(QString, thread);
QXmppMessage message;
parsePacket(message, xml);
QCOMPARE(message.to(), QString("foo@example.com/QXmpp"));
QCOMPARE(message.from(), QString("bar@example.com/QXmpp"));
- QCOMPARE(message.type(), QXmppMessage::Normal);
- QCOMPARE(message.body(), QString());
- QCOMPARE(message.subject(), QString());
- QCOMPARE(message.thread(), QString());
+ QCOMPARE(int(message.type()), type);
+ QCOMPARE(message.body(), body);
+ QCOMPARE(message.subject(), subject);
+ QCOMPARE(message.thread(), thread);
QCOMPARE(message.state(), QXmppMessage::None);
QCOMPARE(message.isAttentionRequested(), false);
QCOMPARE(message.isReceiptRequested(), false);
@@ -119,51 +145,72 @@ void tst_QXmppMessage::testMessageReceipt()
QCOMPARE(old.receiptId(), QString("richard2-4.1.247"));
}
-void tst_QXmppMessage::testMessageFull()
+void tst_QXmppMessage::testDelay_data()
{
- const QByteArray xml(
- "<message to=\"foo@example.com/QXmpp\" from=\"bar@example.com/QXmpp\" type=\"normal\">"
- "<subject>test subject</subject>"
- "<body>test body &amp; stuff</body>"
- "<thread>test thread</thread>"
- "<composing xmlns=\"http://jabber.org/protocol/chatstates\"/>"
- "</message>");
+ QTest::addColumn<QByteArray>("xml");
+ QTest::addColumn<QDateTime>("stamp");
- QXmppMessage message;
- parsePacket(message, xml);
- QCOMPARE(message.to(), QString("foo@example.com/QXmpp"));
- QCOMPARE(message.from(), QString("bar@example.com/QXmpp"));
- QCOMPARE(message.type(), QXmppMessage::Normal);
- QCOMPARE(message.body(), QString("test body & stuff"));
- QCOMPARE(message.subject(), QString("test subject"));
- QCOMPARE(message.thread(), QString("test thread"));
- QCOMPARE(message.state(), QXmppMessage::Composing);
- serializePacket(message, xml);
+ QTest::newRow("delay")
+ << QByteArray("<message type=\"normal\">"
+ "<delay xmlns=\"urn:xmpp:delay\" stamp=\"2010-06-29T08:23:06Z\"/>"
+ "</message>")
+ << QDateTime(QDate(2010, 06, 29), QTime(8, 23, 6), Qt::UTC);
+
+ QTest::newRow("legacy")
+ << QByteArray("<message type=\"normal\">"
+ "<x xmlns=\"jabber:x:delay\" stamp=\"20100629T08:23:06\"/>"
+ "</message>")
+ << QDateTime(QDate(2010, 06, 29), QTime(8, 23, 6), Qt::UTC);
}
-void tst_QXmppMessage::testMessageDelay()
+void tst_QXmppMessage::testDelay()
{
- const QByteArray xml(
- "<message to=\"foo@example.com/QXmpp\" from=\"bar@example.com/QXmpp\" type=\"normal\">"
- "<delay xmlns=\"urn:xmpp:delay\" stamp=\"2010-06-29T08:23:06Z\"/>"
- "</message>");
+ QFETCH(QByteArray, xml);
+ QFETCH(QDateTime, stamp);
QXmppMessage message;
parsePacket(message, xml);
- QCOMPARE(message.stamp(), QDateTime(QDate(2010, 06, 29), QTime(8, 23, 6), Qt::UTC));
+ QCOMPARE(message.stamp(), stamp);
serializePacket(message, xml);
}
-void tst_QXmppMessage::testMessageLegacyDelay()
+void tst_QXmppMessage::testState_data()
{
- const QByteArray xml(
- "<message to=\"foo@example.com/QXmpp\" from=\"bar@example.com/QXmpp\" type=\"normal\">"
- "<x xmlns=\"jabber:x:delay\" stamp=\"20100629T08:23:06\"/>"
- "</message>");
+ QTest::addColumn<QByteArray>("xml");
+ QTest::addColumn<int>("state");
+
+ QTest::newRow("none")
+ << QByteArray("<message type=\"normal\"/>")
+ << int(QXmppMessage::None);
+
+ QTest::newRow("active")
+ << QByteArray("<message type=\"normal\"><active xmlns=\"http://jabber.org/protocol/chatstates\"/></message>")
+ << int(QXmppMessage::Active);
+
+ QTest::newRow("inactive")
+ << QByteArray("<message type=\"normal\"><inactive xmlns=\"http://jabber.org/protocol/chatstates\"/></message>")
+ << int(QXmppMessage::Inactive);
+
+ QTest::newRow("gone")
+ << QByteArray("<message type=\"normal\"><gone xmlns=\"http://jabber.org/protocol/chatstates\"/></message>")
+ << int(QXmppMessage::Gone);
+
+ QTest::newRow("composing")
+ << QByteArray("<message type=\"normal\"><composing xmlns=\"http://jabber.org/protocol/chatstates\"/></message>")
+ << int(QXmppMessage::Composing);
+
+ QTest::newRow("paused")
+ << QByteArray("<message type=\"normal\"><paused xmlns=\"http://jabber.org/protocol/chatstates\"/></message>")
+ << int(QXmppMessage::Paused);
+}
+
+void tst_QXmppMessage::testState()
+{
+ QFETCH(QByteArray, xml);
+ QFETCH(int, state);
QXmppMessage message;
parsePacket(message, xml);
- QCOMPARE(message.stamp(), QDateTime(QDate(2010, 06, 29), QTime(8, 23, 6), Qt::UTC));
+ QCOMPARE(int(message.state()), state);
serializePacket(message, xml);
}
-