akondi-mime5/akonadi-mime5/autotests/mailserializerplugintest.cpp
Ward from fusion-voyager-3 a8e7e301c1
Some checks failed
PikaOS Package Build & Release (Canary) (amd64-v3) / build (push) Failing after 12s
fixx akondi
2024-08-05 17:19:50 +03:00

82 lines
2.3 KiB
C++

/*
SPDX-FileCopyrightText: 2007 Volker Krause <vkrause@kde.org>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
#include "mailserializerplugintest.h"
#include <Akonadi/Item>
#include <KMime/Message>
#include <QDebug>
#include <QTest>
QTEST_GUILESS_MAIN(MailSerializerPluginTest)
using namespace Akonadi;
using namespace KMime;
void MailSerializerPluginTest::testMailPlugin()
{
QByteArray serialized =
"From: sender@test.org\n"
"Subject: Serializer Test\n"
"To: receiver@test.org\n"
"Date: Fri, 22 Jun 2007 17:24:24 +0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain\n"
"\n"
"Body data.";
// deserializing
Item item;
item.setMimeType(QStringLiteral("message/rfc822"));
item.setPayloadFromData(serialized);
QVERIFY(item.hasPayload<KMime::Message::Ptr>());
auto msg = item.payload<KMime::Message::Ptr>();
QVERIFY(msg != nullptr);
QCOMPARE(msg->to()->asUnicodeString(), QStringLiteral("receiver@test.org"));
QCOMPARE(msg->body(), QByteArray("Body data."));
// serializing
QByteArray data = item.payloadData();
QCOMPARE(data, serialized);
}
void MailSerializerPluginTest::testMessageIntegrity()
{
// A message that will be slightly modified if KMime::Content::assemble() is
// called. We want to avoid this, because it breaks signatures.
QByteArray serialized =
"from: sender@example.com\n"
"to: receiver@example.com\n"
"Subject: Serializer Test\n"
"Date: Thu, 30 Jul 2009 13:46:31 +0300\n"
"MIME-Version: 1.0\n"
"Content-type: text/plain; charset=us-ascii\n"
"\n"
"Bla bla bla.";
// Deserialize.
Item item;
item.setMimeType(QStringLiteral("message/rfc822"));
item.setPayloadFromData(serialized);
QVERIFY(item.hasPayload<KMime::Message::Ptr>());
auto msg = item.payload<KMime::Message::Ptr>();
QVERIFY(msg != nullptr);
qDebug() << "original data:" << serialized;
qDebug() << "message content:" << msg->encodedContent();
QCOMPARE(msg->encodedContent(), serialized);
// Serialize.
QByteArray data = item.payloadData();
qDebug() << "original data:" << serialized;
qDebug() << "serialized data:" << data;
QCOMPARE(data, serialized);
}