summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--framework/src/domain/mime/mimetreeparser/tests/CMakeLists.txt2
-rw-r--r--framework/src/domain/mime/mimetreeparser/tests/mimetreeparsertest.cpp (renamed from framework/src/domain/mime/mimetreeparser/tests/interfacetest.cpp)2
-rw-r--r--framework/src/domain/mime/tests/mailtemplatetest.cpp49
3 files changed, 51 insertions, 2 deletions
diff --git a/framework/src/domain/mime/mimetreeparser/tests/CMakeLists.txt b/framework/src/domain/mime/mimetreeparser/tests/CMakeLists.txt
index edc037bc..88f7c47a 100644
--- a/framework/src/domain/mime/mimetreeparser/tests/CMakeLists.txt
+++ b/framework/src/domain/mime/mimetreeparser/tests/CMakeLists.txt
@@ -11,7 +11,7 @@ include(ECMAddTests)
11find_package(Gpgmepp 1.7.1 CONFIG) 11find_package(Gpgmepp 1.7.1 CONFIG)
12find_package(QGpgme 1.7.1 CONFIG) 12find_package(QGpgme 1.7.1 CONFIG)
13 13
14add_executable(mimetreeparsertest interfacetest.cpp) 14add_executable(mimetreeparsertest mimetreeparsertest.cpp)
15add_gpg_crypto_test(mimetreeparsertest mimetreeparsertest) 15add_gpg_crypto_test(mimetreeparsertest mimetreeparsertest)
16target_link_libraries(mimetreeparsertest 16target_link_libraries(mimetreeparsertest
17 kube_otp 17 kube_otp
diff --git a/framework/src/domain/mime/mimetreeparser/tests/interfacetest.cpp b/framework/src/domain/mime/mimetreeparser/tests/mimetreeparsertest.cpp
index 69509715..961dbf9a 100644
--- a/framework/src/domain/mime/mimetreeparser/tests/interfacetest.cpp
+++ b/framework/src/domain/mime/mimetreeparser/tests/mimetreeparsertest.cpp
@@ -374,4 +374,4 @@ private slots:
374}; 374};
375 375
376QTEST_GUILESS_MAIN(InterfaceTest) 376QTEST_GUILESS_MAIN(InterfaceTest)
377#include "interfacetest.moc" 377#include "mimetreeparsertest.moc"
diff --git a/framework/src/domain/mime/tests/mailtemplatetest.cpp b/framework/src/domain/mime/tests/mailtemplatetest.cpp
index 8d044608..6338cd58 100644
--- a/framework/src/domain/mime/tests/mailtemplatetest.cpp
+++ b/framework/src/domain/mime/tests/mailtemplatetest.cpp
@@ -248,6 +248,55 @@ private slots:
248 QCOMPARE(origMsg->subject(false)->asUnicodeString(), {"A random subject with alternative contenttype"}); 248 QCOMPARE(origMsg->subject(false)->asUnicodeString(), {"A random subject with alternative contenttype"});
249 } 249 }
250 250
251 void testEncryptedForwardAsAttachment()
252 {
253 auto msg = readMail("openpgp-encrypted.mbox");
254 KMime::Message::Ptr result;
255 MailTemplates::forward(msg, [&](const KMime::Message::Ptr &r) { result = r; });
256 QTRY_VERIFY(result);
257 QCOMPARE(result->subject(false)->asUnicodeString(), {"FW: OpenPGP encrypted"});
258 QCOMPARE(result->to()->addresses(), {});
259 QCOMPARE(result->cc()->addresses(), {});
260
261 auto attachments = result->attachments();
262 QCOMPARE(attachments.size(), 1);
263 auto attachment = attachments[0];
264 QCOMPARE(attachment->contentDisposition(false)->disposition(), KMime::Headers::CDinline);
265 QCOMPARE(attachment->contentDisposition(false)->filename(), {"OpenPGP encrypted.eml"});
266 QVERIFY(attachment->bodyIsMessage());
267
268 attachment->parse();
269 auto origMsg = attachment->bodyAsMessage();
270 QCOMPARE(origMsg->subject(false)->asUnicodeString(), {"OpenPGP encrypted"});
271 }
272
273 void testEncryptedWithAttachmentsForwardAsAttachment()
274 {
275 auto msg = readMail("openpgp-encrypted-two-attachments.mbox");
276 KMime::Message::Ptr result;
277 MailTemplates::forward(msg, [&](const KMime::Message::Ptr &r) { result = r; });
278 QTRY_VERIFY(result);
279 QCOMPARE(result->subject(false)->asUnicodeString(), {"FW: OpenPGP encrypted with 2 text attachments"});
280 QCOMPARE(result->to()->addresses(), {});
281 QCOMPARE(result->cc()->addresses(), {});
282
283 auto attachments = result->attachments();
284 QCOMPARE(attachments.size(), 1);
285 auto attachment = attachments[0];
286 QCOMPARE(attachment->contentDisposition(false)->disposition(), KMime::Headers::CDinline);
287 QCOMPARE(attachment->contentDisposition(false)->filename(), {"OpenPGP encrypted with 2 text attachments.eml"});
288 QVERIFY(attachment->bodyIsMessage());
289
290 attachment->parse();
291 auto origMsg = attachment->bodyAsMessage();
292 QCOMPARE(origMsg->subject(false)->asUnicodeString(), {"OpenPGP encrypted with 2 text attachments"});
293
294 auto attattachments = origMsg->attachments();
295 QCOMPARE(attattachments.size(), 2);
296 QCOMPARE(attattachments[0]->contentDisposition(false)->filename(), {"attachment1.txt"});
297 QCOMPARE(attattachments[1]->contentDisposition(false)->filename(), {"attachment2.txt"});
298 }
299
251 void testCreatePlainMail() 300 void testCreatePlainMail()
252 { 301 {
253 QStringList to = {{"to@example.org"}}; 302 QStringList to = {{"to@example.org"}};