diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2018-05-18 11:38:29 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2018-05-18 11:38:29 +0200 |
commit | 78d9ca435ff06675da79426e09fe9be32106ce35 (patch) | |
tree | 112de3968faa8ea6f3f6b6db5c5ae477c64c496c /tests | |
parent | 4cb1c1e6103459e54d931b8672674f5f49f8ac2f (diff) | |
download | sink-78d9ca435ff06675da79426e09fe9be32106ce35.tar.gz sink-78d9ca435ff06675da79426e09fe9be32106ce35.zip |
Moved the bogus message test to the imap test.
Maildir will happly store anything.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/mailtest.cpp | 58 | ||||
-rw-r--r-- | tests/mailtest.h | 1 |
2 files changed, 0 insertions, 59 deletions
diff --git a/tests/mailtest.cpp b/tests/mailtest.cpp index 8e20fae..9b70309 100644 --- a/tests/mailtest.cpp +++ b/tests/mailtest.cpp | |||
@@ -475,61 +475,3 @@ void MailTest::testModifyMailToTrash() | |||
475 | VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Mail>(ResourceControl::Inspection::ExistenceInspection(mail, true))); | 475 | VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Mail>(ResourceControl::Inspection::ExistenceInspection(mail, true))); |
476 | } | 476 | } |
477 | 477 | ||
478 | void MailTest::testBogusMessageAppend() | ||
479 | { | ||
480 | auto folder = Folder::create(mResourceInstanceIdentifier); | ||
481 | folder.setName("bogusfolder"); | ||
482 | VERIFYEXEC(Store::create(folder)); | ||
483 | |||
484 | Mail bogusMail; | ||
485 | { | ||
486 | auto mail = Mail::create(mResourceInstanceIdentifier); | ||
487 | mail.setMimeMessage("Bogus message: \0 this doesn't make any sense and contains NUL."); | ||
488 | mail.setFolder(folder); | ||
489 | |||
490 | VERIFYEXEC(Store::create(mail)); | ||
491 | |||
492 | VERIFYEXEC(ResourceControl::flushMessageQueue(mResourceInstanceIdentifier)); | ||
493 | auto mails = Store::read<Mail>(Query().request<Mail::Folder>().request<Mail::Subject>().request<Mail::MimeMessage>()); | ||
494 | QCOMPARE(mails.size(), 1); | ||
495 | bogusMail = mails.at(0); | ||
496 | |||
497 | VERIFYEXEC(ResourceControl::flushReplayQueue(mResourceInstanceIdentifier)); | ||
498 | VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Mail>(ResourceControl::Inspection::ExistenceInspection(mail, false))); | ||
499 | //The cache will be off by one (because we failed to replay) | ||
500 | // VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::CacheIntegrityInspection(folder))); | ||
501 | } | ||
502 | |||
503 | |||
504 | //Ensure we can still append further messages: | ||
505 | { | ||
506 | auto mail = Mail::create(mResourceInstanceIdentifier); | ||
507 | { | ||
508 | auto message = KMime::Message::Ptr::create(); | ||
509 | message->subject(true)->fromUnicodeString("Subject", "utf8"); | ||
510 | message->assemble(); | ||
511 | mail.setMimeMessage(message->encodedContent(true)); | ||
512 | } | ||
513 | mail.setFolder(folder); | ||
514 | VERIFYEXEC(Store::create(mail)); | ||
515 | |||
516 | VERIFYEXEC(ResourceControl::flushMessageQueue(mResourceInstanceIdentifier)); | ||
517 | auto mails = Store::read<Mail>(Query().request<Mail::Folder>().request<Mail::Subject>().request<Mail::MimeMessage>()); | ||
518 | QCOMPARE(mails.size(), 2); | ||
519 | |||
520 | VERIFYEXEC(ResourceControl::flushReplayQueue(mResourceInstanceIdentifier)); | ||
521 | //The mail is still not available, because we'll end up trying to replay the bogus mail again. | ||
522 | VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Mail>(ResourceControl::Inspection::ExistenceInspection(mail, false))); | ||
523 | |||
524 | //Fix the situation by deleting the bogus mail and retrying to sync. | ||
525 | VERIFYEXEC(Store::remove(bogusMail)); | ||
526 | VERIFYEXEC(ResourceControl::flushMessageQueue(mResourceInstanceIdentifier)); | ||
527 | VERIFYEXEC(ResourceControl::flushReplayQueue(mResourceInstanceIdentifier)); | ||
528 | |||
529 | //This will fail because we still try to resync the previous mail | ||
530 | VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Mail>(ResourceControl::Inspection::ExistenceInspection(mail, true))); | ||
531 | //The cache will be off by one (because we failed to replay) | ||
532 | VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::CacheIntegrityInspection(folder))); | ||
533 | } | ||
534 | |||
535 | } | ||
diff --git a/tests/mailtest.h b/tests/mailtest.h index 757da1b..b827188 100644 --- a/tests/mailtest.h +++ b/tests/mailtest.h | |||
@@ -53,7 +53,6 @@ private slots: | |||
53 | void testModifyMailToDraft(); | 53 | void testModifyMailToDraft(); |
54 | 54 | ||
55 | void testModifyMailToTrash(); | 55 | void testModifyMailToTrash(); |
56 | void testBogusMessageAppend(); | ||
57 | }; | 56 | }; |
58 | 57 | ||
59 | } | 58 | } |