diff options
| author | Melvin Keskin <melvo@olomono.de> | 2021-09-02 23:41:16 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2021-09-03 16:16:15 +0200 |
| commit | 0623aa38f2ead734dddea4cbad899a868f01cb1e (patch) | |
| tree | ce6539732310386d2ba0faf7383c054a4690f3a2 /tests/qxmppmessage/tst_qxmppmessage.cpp | |
| parent | 12c63eddded9f02369bd4e569f62acfdd95cc723 (diff) | |
| download | qxmpp-0623aa38f2ead734dddea4cbad899a868f01cb1e.tar.gz | |
Add QXmppOmemoElement
Co-authored-by: Germán Márquez Mejía <mancho@olomono.de>
Diffstat (limited to 'tests/qxmppmessage/tst_qxmppmessage.cpp')
| -rw-r--r-- | tests/qxmppmessage/tst_qxmppmessage.cpp | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/tests/qxmppmessage/tst_qxmppmessage.cpp b/tests/qxmppmessage/tst_qxmppmessage.cpp index 3b9f4208..fe3340d8 100644 --- a/tests/qxmppmessage/tst_qxmppmessage.cpp +++ b/tests/qxmppmessage/tst_qxmppmessage.cpp @@ -4,6 +4,8 @@ * Authors: * Jeremy Lainé * Manjeet Dahiya + * Germán Márquez Mejía + * Melvin Keskin * * Source: * https://github.com/qxmpp-project/qxmpp @@ -26,6 +28,7 @@ #include "QXmppBitsOfBinaryDataList.h" #include "QXmppMessage.h" #include "QXmppMixInvitation.h" +#include "QXmppOmemoElement.h" #include "QXmppTrustMessageElement.h" #include <optional> @@ -69,6 +72,7 @@ private slots: void testSlashMe(); void testMixInvitation(); void testTrustMessageElement(); + void testOmemoElement(); }; void tst_QXmppMessage::testBasic_data() @@ -1131,5 +1135,85 @@ void tst_QXmppMessage::testTrustMessageElement() QVERIFY(message2.trustMessageElement()); } +void tst_QXmppMessage::testOmemoElement() +{ + const QByteArray xmlIn(QByteArrayLiteral( + "<message id=\"send1\" to=\"juliet@capulet.lit\" from=\"romeo@montague.lit\" type=\"normal\">" + "<store xmlns=\"urn:xmpp:hints\"/>" + "<encrypted xmlns=\"urn:xmpp:omemo:1\">" + "<header sid=\"27183\">" + "<keys jid=\"juliet@capulet.lit\">" + "<key rid=\"31415\">Oy5TSG9vVVV4Wz9wUkUvI1lUXiVLIU5bbGIsUV0wRngK</key>" + "</keys>" + "<keys jid=\"romeo@montague.lit\">" + "<key rid=\"1337\">PTEoSk91VnRZSXBzcFlPXy4jZ3NKcGVZZ2d3YVJbVj8K</key>" + "<key rid=\"12321\" kex=\"true\">a012U0R9WixWKUYhYipucnZOWG06akFOR3Q1NGNOOmUK</key>" + "</keys>" + "</header>" + "<payload>" + "Vk9NPi99bHFWKmErOUVTTkAwW1VcZjJvPlElZWUoOk90Kz03YUF7OHc/WjpaQz9ieFdsZjBsSH1w" + "R1d2Zzt1bEFAMSZqP0dVJj9oaygmcWRPKGU3Kjc8aV4sJSlpSXBqaENCT2NUVFFmaFNXbCxQaHsj" + "OnthQDJyUW9qNjwoZCtpLzpzLGpbKlJRY1NtMVVeRzdsOWRQciNnXV9tajEyWztnKiEhRHs5K2hX" + "ZFloaEZtUENTQWIxM0tcVkxIVWY+aGYoeEk/SldZcyNlTzk2Q2NHW1NqWEhEPmhPXl1WZV5xNE9p" + "WDZuck8zPGE2Rk4vKWJXd3F1YV0mSXA/NVNGNEQsK18mTlJNbl9WcGJXcVE5e1E0dlFAPVQ8THM+" + "QjdcdjZSNDVJclo0QVo6cDBMQDtVcUFnNDpcd1ZXSkcsXz82QjhXLl9NSVBFdipeOmF4NC5YKnNx" + "K2dxMGx1MDkrdnJhWTovUjk1ZCZUUSNTKHIvJUgmTyE4bjJbZlZAPl9IZi8ucSM7a2FAQWUzXUJO" + "LmpALilFWGRqYlh1Siw2MzJqbipsWlZRMG91MGVQVlExLCFeayMuM3dfSn1ONiU8LixZWSx3YUlV" + "bGtIcnVWP2Y0LGwvTzFIQy8qZVVBSVZLS1peSW0xNTRPcXRDIXBkXnhmWyNxQFxHQ19cYXVAO214" + "RWw1P0AmIUAlQjk7ZFBWXW1RbWxoTFE+cUxMbk5UCg==" + "</payload>" + "</encrypted>" + "</message>")); + + // An OMEMO element having its OMEMO envelopes sorted in reverse order is + // needed since they are serialized in the reverse order in which they are + // deserialized. + const QByteArray xmlOut1(QByteArrayLiteral( + "<message id=\"send1\" to=\"juliet@capulet.lit\" from=\"romeo@montague.lit\" type=\"normal\">" + "<store xmlns=\"urn:xmpp:hints\"/>" + "<encrypted xmlns=\"urn:xmpp:omemo:1\">" + "<header sid=\"27183\">" + "<keys jid=\"juliet@capulet.lit\">" + "<key rid=\"31415\">Oy5TSG9vVVV4Wz9wUkUvI1lUXiVLIU5bbGIsUV0wRngK</key>" + "</keys>" + "<keys jid=\"romeo@montague.lit\">" + "<key rid=\"12321\" kex=\"true\">a012U0R9WixWKUYhYipucnZOWG06akFOR3Q1NGNOOmUK</key>" + "<key rid=\"1337\">PTEoSk91VnRZSXBzcFlPXy4jZ3NKcGVZZ2d3YVJbVj8K</key>" + "</keys>" + "</header>" + "<payload>" + "Vk9NPi99bHFWKmErOUVTTkAwW1VcZjJvPlElZWUoOk90Kz03YUF7OHc/WjpaQz9ieFdsZjBsSH1w" + "R1d2Zzt1bEFAMSZqP0dVJj9oaygmcWRPKGU3Kjc8aV4sJSlpSXBqaENCT2NUVFFmaFNXbCxQaHsj" + "OnthQDJyUW9qNjwoZCtpLzpzLGpbKlJRY1NtMVVeRzdsOWRQciNnXV9tajEyWztnKiEhRHs5K2hX" + "ZFloaEZtUENTQWIxM0tcVkxIVWY+aGYoeEk/SldZcyNlTzk2Q2NHW1NqWEhEPmhPXl1WZV5xNE9p" + "WDZuck8zPGE2Rk4vKWJXd3F1YV0mSXA/NVNGNEQsK18mTlJNbl9WcGJXcVE5e1E0dlFAPVQ8THM+" + "QjdcdjZSNDVJclo0QVo6cDBMQDtVcUFnNDpcd1ZXSkcsXz82QjhXLl9NSVBFdipeOmF4NC5YKnNx" + "K2dxMGx1MDkrdnJhWTovUjk1ZCZUUSNTKHIvJUgmTyE4bjJbZlZAPl9IZi8ucSM7a2FAQWUzXUJO" + "LmpALilFWGRqYlh1Siw2MzJqbipsWlZRMG91MGVQVlExLCFeayMuM3dfSn1ONiU8LixZWSx3YUlV" + "bGtIcnVWP2Y0LGwvTzFIQy8qZVVBSVZLS1peSW0xNTRPcXRDIXBkXnhmWyNxQFxHQ19cYXVAO214" + "RWw1P0AmIUAlQjk7ZFBWXW1RbWxoTFE+cUxMbk5UCg==" + "</payload>" + "</encrypted>" + "</message>")); + + const QByteArray xmlOut2(QByteArrayLiteral( + "<message type=\"chat\">" + "<encrypted xmlns=\"urn:xmpp:omemo:1\">" + "<header sid=\"0\"/>" + "<payload/>" + "</encrypted>" + "</message>")); + + QXmppMessage message1; + parsePacket(message1, xmlIn); + QVERIFY(message1.omemoElement()); + serializePacket(message1, xmlOut1); + + QXmppMessage message2; + message2.setOmemoElement(QXmppOmemoElement()); + QVERIFY(message2.omemoElement()); + serializePacket(message2, xmlOut2); +} + QTEST_MAIN(tst_QXmppMessage) #include "tst_qxmppmessage.moc" |
