File indexing completed on 2024-05-12 05:11:09
0001 /* 0002 SPDX-FileCopyrightText: 2007 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "mailserializerplugintest.h" 0008 0009 #include <Akonadi/Item> 0010 #include <KMime/Message> 0011 0012 #include <QDebug> 0013 #include <QTest> 0014 0015 QTEST_GUILESS_MAIN(MailSerializerPluginTest) 0016 0017 using namespace Akonadi; 0018 using namespace KMime; 0019 0020 void MailSerializerPluginTest::testMailPlugin() 0021 { 0022 QByteArray serialized = 0023 "From: sender@test.org\n" 0024 "Subject: Serializer Test\n" 0025 "To: receiver@test.org\n" 0026 "Date: Fri, 22 Jun 2007 17:24:24 +0000\n" 0027 "MIME-Version: 1.0\n" 0028 "Content-Type: text/plain\n" 0029 "\n" 0030 "Body data."; 0031 0032 // deserializing 0033 Item item; 0034 item.setMimeType(QStringLiteral("message/rfc822")); 0035 item.setPayloadFromData(serialized); 0036 0037 QVERIFY(item.hasPayload<KMime::Message::Ptr>()); 0038 auto msg = item.payload<KMime::Message::Ptr>(); 0039 QVERIFY(msg != nullptr); 0040 0041 QCOMPARE(msg->to()->asUnicodeString(), QStringLiteral("receiver@test.org")); 0042 QCOMPARE(msg->body(), QByteArray("Body data.")); 0043 0044 // serializing 0045 QByteArray data = item.payloadData(); 0046 QCOMPARE(data, serialized); 0047 } 0048 0049 void MailSerializerPluginTest::testMessageIntegrity() 0050 { 0051 // A message that will be slightly modified if KMime::Content::assemble() is 0052 // called. We want to avoid this, because it breaks signatures. 0053 QByteArray serialized = 0054 "from: sender@example.com\n" 0055 "to: receiver@example.com\n" 0056 "Subject: Serializer Test\n" 0057 "Date: Thu, 30 Jul 2009 13:46:31 +0300\n" 0058 "MIME-Version: 1.0\n" 0059 "Content-type: text/plain; charset=us-ascii\n" 0060 "\n" 0061 "Bla bla bla."; 0062 0063 // Deserialize. 0064 Item item; 0065 item.setMimeType(QStringLiteral("message/rfc822")); 0066 item.setPayloadFromData(serialized); 0067 0068 QVERIFY(item.hasPayload<KMime::Message::Ptr>()); 0069 auto msg = item.payload<KMime::Message::Ptr>(); 0070 QVERIFY(msg != nullptr); 0071 0072 qDebug() << "original data:" << serialized; 0073 qDebug() << "message content:" << msg->encodedContent(); 0074 QCOMPARE(msg->encodedContent(), serialized); 0075 0076 // Serialize. 0077 QByteArray data = item.payloadData(); 0078 qDebug() << "original data:" << serialized; 0079 qDebug() << "serialized data:" << data; 0080 QCOMPARE(data, serialized); 0081 } 0082 0083 #include "moc_mailserializerplugintest.cpp"