diff options
| author | Linus Jahn <lnj@kaidan.im> | 2019-04-28 22:11:25 +0200 |
|---|---|---|
| committer | LNJ <lnj@kaidan.im> | 2019-09-06 21:18:51 +0200 |
| commit | e7394afc6730b16673f4173fcbc55d54a810a80b (patch) | |
| tree | 854b917a079c385e780a72f9465403b70d53dc57 /tests | |
| parent | a0925867901052d97fe84c2fcf31c720e0443546 (diff) | |
| download | qxmpp-e7394afc6730b16673f4173fcbc55d54a810a80b.tar.gz | |
Implement XEP-0380: Explicit Message Encryption
This adds parsing and serialization for XEP-0380: Explicit Message
Encryption in version 0.3.0.
https://xmpp.org/extensions/xep-0380.html
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/qxmppmessage/tst_qxmppmessage.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/qxmppmessage/tst_qxmppmessage.cpp b/tests/qxmppmessage/tst_qxmppmessage.cpp index 9441acef..5fe4b964 100644 --- a/tests/qxmppmessage/tst_qxmppmessage.cpp +++ b/tests/qxmppmessage/tst_qxmppmessage.cpp @@ -50,6 +50,7 @@ private slots: void testMessageCorrect(); void testMessageAttaching(); void testMix(); + void testEme(); void testSpoiler(); }; @@ -114,6 +115,7 @@ void tst_QXmppMessage::testBasic() QCOMPARE(message.isReceiptRequested(), false); QCOMPARE(message.receiptId(), QString()); QCOMPARE(message.xhtml(), QString()); + QCOMPARE(message.encryptionMethod(), QXmppMessage::NoEncryption); QVERIFY(!message.isSpoiler()); serializePacket(message, xml); } @@ -663,6 +665,50 @@ void tst_QXmppMessage::testMix() QCOMPARE(message.mixUserNick(), QString("erik")); } +void tst_QXmppMessage::testEme() +{ + // test standard encryption: OMEMO + const QByteArray xmlOmemo( + "<message to=\"foo@example.com/QXmpp\" from=\"bar@example.com/QXmpp\" type=\"normal\">" + "<body>This message is encrypted with OMEMO, but your client doesn't seem to support that.</body>" + "<encryption xmlns=\"urn:xmpp:eme:0\" namespace=\"eu.siacs.conversations.axolotl\"/>" + "</message>"); + + QXmppMessage messageOmemo; + parsePacket(messageOmemo, xmlOmemo); + QCOMPARE(messageOmemo.encryptionMethodNs(), QString("eu.siacs.conversations.axolotl")); + QCOMPARE(messageOmemo.encryptionMethod(), QXmppMessage::OMEMO); + QCOMPARE(messageOmemo.encryptionName(), QString("OMEMO")); + serializePacket(messageOmemo, xmlOmemo); + + // test custom encryption + const QByteArray xmlCustom( + "<message to=\"foo@example.com/QXmpp\" from=\"bar@example.com/QXmpp\" type=\"normal\">" + "<body>This message is encrypted with CustomCrypt, but your client doesn't seem to support that.</body>" + "<encryption xmlns=\"urn:xmpp:eme:0\" namespace=\"im:example:customcrypt:1\" name=\"CustomCrypt\"/>" + "</message>"); + + QXmppMessage messageCustom; + parsePacket(messageCustom, xmlCustom); + QCOMPARE(messageCustom.encryptionMethodNs(), QString("im:example:customcrypt:1")); + QCOMPARE(messageCustom.encryptionMethod(), QXmppMessage::UnknownEncryption); + QCOMPARE(messageCustom.encryptionName(), QString("CustomCrypt")); + serializePacket(messageCustom, xmlCustom); + + // test setters/getters + QXmppMessage message; + message.setEncryptionMethod(QXmppMessage::LegacyOpenPGP); + QCOMPARE(message.encryptionMethod(), QXmppMessage::LegacyOpenPGP); + QCOMPARE(message.encryptionMethodNs(), QString("jabber:x:encrypted")); + QCOMPARE(message.encryptionName(), QString("Legacy OpenPGP")); + + message.setEncryptionMethodNs("fancyorg:encryption:fancycrypt:0"); + message.setEncryptionName("FancyCrypt"); + QCOMPARE(message.encryptionMethod(), QXmppMessage::UnknownEncryption); + QCOMPARE(message.encryptionMethodNs(), QString("fancyorg:encryption:fancycrypt:0")); + QCOMPARE(message.encryptionName(), QString("FancyCrypt")); +} + void tst_QXmppMessage::testSpoiler() { // test parsing with hint |
