summaryrefslogtreecommitdiffstats
path: root/tests/mailtest.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-06-14 13:25:21 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-06-15 07:12:13 +0200
commitbd64dd286ddc0c5732b9977f78dc945ac40f5b4f (patch)
tree0cafbad602dd427bc8859334b412c31b6755b0e1 /tests/mailtest.cpp
parent8e7528cbbd422b5ae5d571542b9bd4a7d8c119a0 (diff)
downloadsink-bd64dd286ddc0c5732b9977f78dc945ac40f5b4f.tar.gz
sink-bd64dd286ddc0c5732b9977f78dc945ac40f5b4f.zip
Prepared trash test
Diffstat (limited to 'tests/mailtest.cpp')
-rw-r--r--tests/mailtest.cpp68
1 files changed, 66 insertions, 2 deletions
diff --git a/tests/mailtest.cpp b/tests/mailtest.cpp
index 4e36517..6dfe901 100644
--- a/tests/mailtest.cpp
+++ b/tests/mailtest.cpp
@@ -402,6 +402,70 @@ void MailTest::testModifyMailToDraft()
402 VERIFYEXEC(Store::create(mail)); 402 VERIFYEXEC(Store::create(mail));
403 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); 403 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier));
404 404
405 auto modifiedMail = Store::readOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail).request<Mail::MimeMessage>().request<Mail::Folder>());
406 // ApplicationDomain::Mail modifiedMail;
407 // {
408 // auto job = Store::fetchOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail.identifier()) + Query::RequestedProperties(QByteArrayList() << Mail::MimeMessage::name << Mail::Folder::name))
409 // .then<void, ApplicationDomain::Mail>([&](const ApplicationDomain::Mail &mail) {
410 // modifiedMail = mail;
411 // });
412 // VERIFYEXEC(job);
413 // }
414 modifiedMail.setDraft(true);
415 VERIFYEXEC(Store::modify(modifiedMail));
416 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier));
417 VERIFYEXEC(ResourceControl::flushReplayQueue(QByteArrayList() << mResourceInstanceIdentifier));
418
419 QByteArray folderIdentifier;
420 auto job = Store::fetchOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail.identifier()) + Query::RequestedProperties(QByteArrayList() << Mail::MimeMessage::name << Mail::Folder::name))
421 .then<void, ApplicationDomain::Mail>([&](const ApplicationDomain::Mail &mail) {
422 folderIdentifier = mail.getProperty("folder").toByteArray();
423 QVERIFY(!folderIdentifier.isEmpty());
424 });
425 VERIFYEXEC(job);
426
427 //Ensure the folder is also existing
428 {
429 ApplicationDomain::Folder folder;
430 Query query;
431 query.ids << folderIdentifier;
432 query.request<Folder::SpecialPurpose>();
433 auto job = Store::fetchAll<ApplicationDomain::Folder>(Query::IdentityFilter(folderIdentifier))
434 .then<void, QList<ApplicationDomain::Folder::Ptr> >([&](const QList<ApplicationDomain::Folder::Ptr> &folders) {
435 QCOMPARE(folders.size(), 1);
436 folder = *folders.first();
437 QVERIFY(folder.getSpecialPurpose().contains("drafts"));
438 });
439 VERIFYEXEC(job);
440 VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::ExistenceInspection(folder, true)));
441 }
442 VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Mail>(ResourceControl::Inspection::ExistenceInspection(mail, true)));
443}
444
445void MailTest::testModifyMailToTrash()
446{
447 if (!mCapabilities.contains(ResourceCapabilities::Mail::trash)) {
448 QSKIP("Resource doesn't have the trash capability");
449 }
450
451 auto folder = Folder::create(mResourceInstanceIdentifier);
452 folder.setName("sdljldskjf");
453 VERIFYEXEC(Store::create(folder));
454
455 auto message = KMime::Message::Ptr::create();
456 message->subject(true)->fromUnicodeString(QString::fromLatin1("Foobar"), "utf8");
457 message->assemble();
458
459 auto mail = ApplicationDomain::Mail::create(mResourceInstanceIdentifier);
460 mail.setMimeMessage(message->encodedContent());
461 mail.setTrash(false);
462 mail.setFolder(folder);
463
464 VERIFYEXEC(Store::create(mail));
465 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier));
466
467 // auto modifiedMail = Store::read<ApplicationDomain::Mail>(Query::IdentityFilter(mail).request<Mail::MimeMessage>().request<Mail::Folder>()).value();
468
405 ApplicationDomain::Mail modifiedMail; 469 ApplicationDomain::Mail modifiedMail;
406 { 470 {
407 auto job = Store::fetchOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail.identifier()) + Query::RequestedProperties(QByteArrayList() << Mail::MimeMessage::name << Mail::Folder::name)) 471 auto job = Store::fetchOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail.identifier()) + Query::RequestedProperties(QByteArrayList() << Mail::MimeMessage::name << Mail::Folder::name))
@@ -410,7 +474,7 @@ void MailTest::testModifyMailToDraft()
410 }); 474 });
411 VERIFYEXEC(job); 475 VERIFYEXEC(job);
412 } 476 }
413 modifiedMail.setDraft(true); 477 modifiedMail.setTrash(true);
414 VERIFYEXEC(Store::modify(modifiedMail)); 478 VERIFYEXEC(Store::modify(modifiedMail));
415 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); 479 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier));
416 VERIFYEXEC(ResourceControl::flushReplayQueue(QByteArrayList() << mResourceInstanceIdentifier)); 480 VERIFYEXEC(ResourceControl::flushReplayQueue(QByteArrayList() << mResourceInstanceIdentifier));
@@ -433,7 +497,7 @@ void MailTest::testModifyMailToDraft()
433 .then<void, QList<ApplicationDomain::Folder::Ptr> >([&](const QList<ApplicationDomain::Folder::Ptr> &folders) { 497 .then<void, QList<ApplicationDomain::Folder::Ptr> >([&](const QList<ApplicationDomain::Folder::Ptr> &folders) {
434 QCOMPARE(folders.size(), 1); 498 QCOMPARE(folders.size(), 1);
435 folder = *folders.first(); 499 folder = *folders.first();
436 QVERIFY(folder.getSpecialPurpose().contains("drafts")); 500 QVERIFY(folder.getSpecialPurpose().contains("trash"));
437 }); 501 });
438 VERIFYEXEC(job); 502 VERIFYEXEC(job);
439 VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::ExistenceInspection(folder, true))); 503 VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::ExistenceInspection(folder, true)));