diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-07-21 10:23:08 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-07-21 10:23:08 +0200 |
| commit | 51cadc0c4cac8f8713ec740aab9c8b1099160d55 (patch) | |
| tree | d1608ab48105b8c14278f9ba1499ef1c6d313c34 /tests/message.cpp | |
| parent | 9d273f3481c0796c0ea3a0ef03a8a09c8d2b668a (diff) | |
| download | qxmpp-51cadc0c4cac8f8713ec740aab9c8b1099160d55.tar.gz | |
improve QXmppMessage test coverage
Diffstat (limited to 'tests/message.cpp')
| -rw-r--r-- | tests/message.cpp | 123 |
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 & 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 & 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); } - |
