aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2019-09-04 20:26:48 +0200
committerLNJ <lnj@kaidan.im>2019-09-08 13:31:40 +0200
commit35256b7d95374717905f8ac8d4d524c4b691389e (patch)
tree55074a75a34eb4a2eaa051e8afe7b4779ab50431 /tests
parente7394afc6730b16673f4173fcbc55d54a810a80b (diff)
downloadqxmpp-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.cpp51
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"