From 12c63eddded9f02369bd4e569f62acfdd95cc723 Mon Sep 17 00:00:00 2001 From: Melvin Keskin Date: Thu, 2 Sep 2021 23:37:24 +0200 Subject: Add QXmppOmemoEnvelope MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Germán Márquez Mejía --- tests/qxmppomemodata/tst_qxmppomemodata.cpp | 75 +++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) (limited to 'tests') diff --git a/tests/qxmppomemodata/tst_qxmppomemodata.cpp b/tests/qxmppomemodata/tst_qxmppomemodata.cpp index 46bc2b44..8a583622 100644 --- a/tests/qxmppomemodata/tst_qxmppomemodata.cpp +++ b/tests/qxmppomemodata/tst_qxmppomemodata.cpp @@ -25,6 +25,7 @@ #include "QXmppOmemoDeviceBundle.h" #include "QXmppOmemoDeviceElement.h" #include "QXmppOmemoDeviceList.h" +#include "QXmppOmemoEnvelope.h" #include "util.h" #include @@ -44,6 +45,10 @@ private slots: void testIsOmemoDeviceBundle_data(); void testIsOmemoDeviceBundle(); void testOmemoDeviceBundle(); + void testIsOmemoEnvelope_data(); + void testIsOmemoEnvelope(); + void testOmemoEnvelope_data(); + void testOmemoEnvelope(); }; void tst_QXmppOmemoData::testIsOmemoDeviceElement_data() @@ -235,5 +240,75 @@ void tst_QXmppOmemoData::testOmemoDeviceBundle() serializePacket(deviceBundle2, xml); } +void tst_QXmppOmemoData::testIsOmemoEnvelope_data() +{ + QTest::addColumn("xml"); + QTest::addColumn("isValid"); + + QTest::newRow("valid") + << QByteArrayLiteral("") + << true; + QTest::newRow("invalidTag") + << QByteArrayLiteral("") + << false; + QTest::newRow("invalidNamespace") + << QByteArrayLiteral("") + << false; +} + +void tst_QXmppOmemoData::testIsOmemoEnvelope() +{ + QFETCH(QByteArray, xml); + QFETCH(bool, isValid); + + QDomDocument doc; + QCOMPARE(doc.setContent(xml, true), true); + const QDomElement element = doc.documentElement(); + QCOMPARE(QXmppOmemoEnvelope::isOmemoEnvelope(element), isValid); +} + +void tst_QXmppOmemoData::testOmemoEnvelope_data() +{ + QTest::addColumn("xml"); + QTest::addColumn("recipientDeviceId"); + QTest::addColumn("isUsedForKeyExchange"); + QTest::addColumn("data"); + + QTest::newRow("keyAndHmac") + << QByteArrayLiteral("PTEoSk91VnRZSXBzcFlPXy4jZ3NKcGVZZ2d3YVJbVj8K") + << uint32_t(1337) + << false + << QByteArrayLiteral("PTEoSk91VnRZSXBzcFlPXy4jZ3NKcGVZZ2d3YVJbVj8K"); + QTest::newRow("keyExchange") + << QByteArrayLiteral("a012U0R9WixWKUYhYipucnZOWG06akFOR3Q1NGNOOmUK") + << uint32_t(12321) + << true + << QByteArrayLiteral("a012U0R9WixWKUYhYipucnZOWG06akFOR3Q1NGNOOmUK"); +} + +void tst_QXmppOmemoData::testOmemoEnvelope() +{ + QFETCH(QByteArray, xml); + QFETCH(uint32_t, recipientDeviceId); + QFETCH(bool, isUsedForKeyExchange); + QFETCH(QByteArray, data); + + QXmppOmemoEnvelope omemoEnvelope1; + parsePacket(omemoEnvelope1, xml); + QCOMPARE(omemoEnvelope1.recipientDeviceId(), recipientDeviceId); + QCOMPARE(omemoEnvelope1.isUsedForKeyExchange(), isUsedForKeyExchange); + QCOMPARE(omemoEnvelope1.data().toBase64(), data); + serializePacket(omemoEnvelope1, xml); + + QXmppOmemoEnvelope omemoEnvelope2; + omemoEnvelope2.setRecipientDeviceId(recipientDeviceId); + omemoEnvelope2.setIsUsedForKeyExchange(isUsedForKeyExchange); + omemoEnvelope2.setData(QByteArray::fromBase64(data)); + QCOMPARE(omemoEnvelope2.recipientDeviceId(), recipientDeviceId); + QCOMPARE(omemoEnvelope2.isUsedForKeyExchange(), isUsedForKeyExchange); + QCOMPARE(omemoEnvelope2.data().toBase64(), data); + serializePacket(omemoEnvelope2, xml); +} + QTEST_MAIN(tst_QXmppOmemoData) #include "tst_qxmppomemodata.moc" -- cgit v1.2.3