diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-06-14 13:25:21 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-06-15 07:12:13 +0200 |
commit | bd64dd286ddc0c5732b9977f78dc945ac40f5b4f (patch) | |
tree | 0cafbad602dd427bc8859334b412c31b6755b0e1 /tests/mailtest.cpp | |
parent | 8e7528cbbd422b5ae5d571542b9bd4a7d8c119a0 (diff) | |
download | sink-bd64dd286ddc0c5732b9977f78dc945ac40f5b4f.tar.gz sink-bd64dd286ddc0c5732b9977f78dc945ac40f5b4f.zip |
Prepared trash test
Diffstat (limited to 'tests/mailtest.cpp')
-rw-r--r-- | tests/mailtest.cpp | 68 |
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 | |||
445 | void 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))); |