From caeb6f2608ab0f6e769fb93fef14658bfe165378 Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Sat, 27 Apr 2019 20:14:57 +0100 Subject: Implement XEP-0382: Spoiler messages (v0.2.0) This adds parsing and serialization of spoilers in the QXmppMessage class. --- tests/qxmppmessage/tst_qxmppmessage.cpp | 41 +++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'tests/qxmppmessage/tst_qxmppmessage.cpp') diff --git a/tests/qxmppmessage/tst_qxmppmessage.cpp b/tests/qxmppmessage/tst_qxmppmessage.cpp index c026ad86..9e8786d6 100644 --- a/tests/qxmppmessage/tst_qxmppmessage.cpp +++ b/tests/qxmppmessage/tst_qxmppmessage.cpp @@ -49,6 +49,7 @@ private slots: void testOutOfBandUrl(); void testMessageCorrect(); void testMix(); + void testSpoiler(); }; void tst_QXmppMessage::testBasic_data() @@ -112,6 +113,7 @@ void tst_QXmppMessage::testBasic() QCOMPARE(message.isReceiptRequested(), false); QCOMPARE(message.receiptId(), QString()); QCOMPARE(message.xhtml(), QString()); + QVERIFY(!message.isSpoiler()); serializePacket(message, xml); } @@ -643,5 +645,44 @@ void tst_QXmppMessage::testMix() QCOMPARE(message.mixUserNick(), QString("erik")); } +void tst_QXmppMessage::testSpoiler() +{ + // test parsing with hint + const QByteArray xmlWithHint( + "" + "And at the end of the story, both of them die! It is so tragic!" + "Love story end" + ""); + + QXmppMessage messageWithHint; + parsePacket(messageWithHint, xmlWithHint); + QVERIFY(messageWithHint.isSpoiler()); + QCOMPARE(messageWithHint.spoilerHint(), QString("Love story end")); + serializePacket(messageWithHint, xmlWithHint); + + // test parsing without hint + const QByteArray xmlWithoutHint( + "" + "And at the end of the story, both of them die! It is so tragic!" + "" + ""); + + QXmppMessage messageWithoutHint; + parsePacket(messageWithoutHint, xmlWithoutHint); + QVERIFY(messageWithoutHint.isSpoiler()); + QCOMPARE(messageWithoutHint.spoilerHint(), QString("")); + serializePacket(messageWithoutHint, xmlWithoutHint); + + // test setters + QXmppMessage message; + message.setIsSpoiler(true); + QVERIFY(message.isSpoiler()); + + message.setIsSpoiler(false); + message.setSpoilerHint("test hint"); + QCOMPARE(message.spoilerHint(), QString("test hint")); + QVERIFY(message.isSpoiler()); +} + QTEST_MAIN(tst_QXmppMessage) #include "tst_qxmppmessage.moc" -- cgit v1.2.3