From 3fa1766af3fa85067d4b2d48c8410e6c201ae323 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Sun, 12 Jun 2016 02:11:02 +0200 Subject: Moving of mails between folders --- tests/mailtest.cpp | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/mailtest.h | 1 + 2 files changed, 56 insertions(+) (limited to 'tests') diff --git a/tests/mailtest.cpp b/tests/mailtest.cpp index 70d60bb..2fcad93 100644 --- a/tests/mailtest.cpp +++ b/tests/mailtest.cpp @@ -220,6 +220,61 @@ void MailTest::testCreateModifyDeleteMail() VERIFYEXEC(ResourceControl::inspect(ResourceControl::Inspection::CacheIntegrityInspection(folder))); } +void MailTest::testMoveMail() +{ + const auto subject = QString::fromLatin1("Foobar"); + + auto folder = Folder::create(mResourceInstanceIdentifier); + folder.setName("folder2"); + VERIFYEXEC(Store::create(folder)); + + auto folder1 = Folder::create(mResourceInstanceIdentifier); + folder1.setName("folder3"); + VERIFYEXEC(Store::create(folder1)); + + auto message = KMime::Message::Ptr::create(); + message->subject(true)->fromUnicodeString(subject, "utf8"); + message->assemble(); + + auto mail = Mail::create(mResourceInstanceIdentifier); + mail.setMimeMessage(message->encodedContent()); + mail.setFolder(folder); + + VERIFYEXEC(Store::create(mail)); + VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); + { + auto job = Store::fetchAll(Query::RequestedProperties(QByteArrayList() << Mail::Folder::name << Mail::Subject::name << Mail::MimeMessage::name)) + .then>([=](const QList &mails) { + QCOMPARE(mails.size(), 1); + auto mail = *mails.first(); + QCOMPARE(mail.getFolder(), folder.identifier()); + Warning() << "path: " << mail.getMimeMessagePath(); + QVERIFY(QFile(mail.getMimeMessagePath()).exists()); + }); + VERIFYEXEC(job); + } + + VERIFYEXEC(ResourceControl::inspect(ResourceControl::Inspection::CacheIntegrityInspection(folder))); + + mail.setFolder(folder1); + + VERIFYEXEC(Store::modify(mail)); + VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); + { + auto job = Store::fetchAll(Query::RequestedProperties(QByteArrayList() << Mail::Folder::name << Mail::Subject::name << Mail::MimeMessage::name)) + .then>([=](const QList &mails) { + QCOMPARE(mails.size(), 1); + auto mail = *mails.first(); + QCOMPARE(mail.getFolder(), folder1.identifier()); + QVERIFY(QFile(mail.getMimeMessagePath()).exists()); + Trace() << "Mime message path: " << mail.getMimeMessagePath(); + }); + VERIFYEXEC(job); + } + VERIFYEXEC(ResourceControl::inspect(ResourceControl::Inspection::CacheIntegrityInspection(folder))); + VERIFYEXEC(ResourceControl::inspect(ResourceControl::Inspection::CacheIntegrityInspection(folder1))); +} + void MailTest::testMarkMailAsRead() { auto folder = Folder::create(mResourceInstanceIdentifier); diff --git a/tests/mailtest.h b/tests/mailtest.h index 43d4f75..3ba7f63 100644 --- a/tests/mailtest.h +++ b/tests/mailtest.h @@ -64,6 +64,7 @@ private slots: void testCreateModifyDeleteFolder(); void testCreateModifyDeleteMail(); + void testMoveMail(); void testMarkMailAsRead(); void testCreateDraft(); }; -- cgit v1.2.3