diff options
| author | Linus Jahn <lnj@kaidan.im> | 2019-09-04 20:26:48 +0200 |
|---|---|---|
| committer | LNJ <lnj@kaidan.im> | 2019-09-08 13:31:40 +0200 |
| commit | 35256b7d95374717905f8ac8d4d524c4b691389e (patch) | |
| tree | 55074a75a34eb4a2eaa051e8afe7b4779ab50431 /tests | |
| parent | e7394afc6730b16673f4173fcbc55d54a810a80b (diff) | |
| download | qxmpp-35256b7d95374717905f8ac8d4d524c4b691389e.tar.gz | |
Implement XEP-0334: Message Processing Hints
This implements parsing and serialization of XEP-0334: Message
Processing Hints in version 0.3.0.
https://xmpp.org/extensions/xep-0334.html
Co-authored-by: Juan Aragon <jaaragont@gmail.com>
Co-authored-by: Sam Truscott <sam@wumpus.co.uk>
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/qxmppmessage/tst_qxmppmessage.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/qxmppmessage/tst_qxmppmessage.cpp b/tests/qxmppmessage/tst_qxmppmessage.cpp index 5fe4b964..a57ffab2 100644 --- a/tests/qxmppmessage/tst_qxmppmessage.cpp +++ b/tests/qxmppmessage/tst_qxmppmessage.cpp @@ -52,6 +52,7 @@ private slots: void testMix(); void testEme(); void testSpoiler(); + void testProcessingHints(); }; void tst_QXmppMessage::testBasic_data() @@ -117,6 +118,10 @@ void tst_QXmppMessage::testBasic() QCOMPARE(message.xhtml(), QString()); QCOMPARE(message.encryptionMethod(), QXmppMessage::NoEncryption); QVERIFY(!message.isSpoiler()); + QVERIFY(!message.hasHint(QXmppMessage::NoPermanentStore)); + QVERIFY(!message.hasHint(QXmppMessage::NoStore)); + QVERIFY(!message.hasHint(QXmppMessage::NoCopy)); + QVERIFY(!message.hasHint(QXmppMessage::Store)); serializePacket(message, xml); } @@ -748,5 +753,51 @@ void tst_QXmppMessage::testSpoiler() QVERIFY(message.isSpoiler()); } +void tst_QXmppMessage::testProcessingHints() +{ + const QByteArray xml( + "<message to=\"juliet@capulet.lit/laptop\" " + "from=\"romeo@montague.lit/laptop\" " + "type=\"chat\">" + "<body>V unir avtug'f pybnx gb uvqr zr sebz gurve fvtug</body>" + "<no-permanent-store xmlns=\"urn:xmpp:hints\"/>" + "<no-store xmlns=\"urn:xmpp:hints\"/>" + "<no-copy xmlns=\"urn:xmpp:hints\"/>" + "<store xmlns=\"urn:xmpp:hints\"/>" + "</message>" + ); + + // test parsing + QXmppMessage message; + parsePacket(message, xml); + QVERIFY(message.hasHint(QXmppMessage::NoPermanentStore)); + QVERIFY(message.hasHint(QXmppMessage::NoStore)); + QVERIFY(message.hasHint(QXmppMessage::NoCopy)); + QVERIFY(message.hasHint(QXmppMessage::Store)); + + // test serialization + QXmppMessage message2; + message2.setType(QXmppMessage::Chat); + message2.setFrom(QString("romeo@montague.lit/laptop")); + message2.setTo(QString("juliet@capulet.lit/laptop")); + message2.setBody(QString("V unir avtug'f pybnx gb uvqr zr sebz gurve fvtug")); + message2.addHint(QXmppMessage::NoPermanentStore); + message2.addHint(QXmppMessage::NoStore); + message2.addHint(QXmppMessage::NoCopy); + message2.addHint(QXmppMessage::Store); + serializePacket(message2, xml); + + // test remove hint + message2.removeHint(QXmppMessage::NoCopy); + QVERIFY(!message2.hasHint(QXmppMessage::NoCopy)); + + // test remove all hints + message2.removeAllHints(); + QVERIFY(!message2.hasHint(QXmppMessage::NoPermanentStore)); + QVERIFY(!message2.hasHint(QXmppMessage::NoStore)); + QVERIFY(!message2.hasHint(QXmppMessage::NoCopy)); + QVERIFY(!message2.hasHint(QXmppMessage::Store)); +} + QTEST_MAIN(tst_QXmppMessage) #include "tst_qxmppmessage.moc" |
