diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-06-12 02:11:02 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-06-12 02:11:02 +0200 |
commit | 3fa1766af3fa85067d4b2d48c8410e6c201ae323 (patch) | |
tree | 5662b068088472ad7133d2b91bb0e0ffe1d9b10c /tests/mailtest.cpp | |
parent | ce56e7e0c973d31a900c9c467f639a344ea71bf1 (diff) | |
download | sink-3fa1766af3fa85067d4b2d48c8410e6c201ae323.tar.gz sink-3fa1766af3fa85067d4b2d48c8410e6c201ae323.zip |
Moving of mails between folders
Diffstat (limited to 'tests/mailtest.cpp')
-rw-r--r-- | tests/mailtest.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
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() | |||
220 | VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::CacheIntegrityInspection(folder))); | 220 | VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::CacheIntegrityInspection(folder))); |
221 | } | 221 | } |
222 | 222 | ||
223 | void MailTest::testMoveMail() | ||
224 | { | ||
225 | const auto subject = QString::fromLatin1("Foobar"); | ||
226 | |||
227 | auto folder = Folder::create(mResourceInstanceIdentifier); | ||
228 | folder.setName("folder2"); | ||
229 | VERIFYEXEC(Store::create(folder)); | ||
230 | |||
231 | auto folder1 = Folder::create(mResourceInstanceIdentifier); | ||
232 | folder1.setName("folder3"); | ||
233 | VERIFYEXEC(Store::create(folder1)); | ||
234 | |||
235 | auto message = KMime::Message::Ptr::create(); | ||
236 | message->subject(true)->fromUnicodeString(subject, "utf8"); | ||
237 | message->assemble(); | ||
238 | |||
239 | auto mail = Mail::create(mResourceInstanceIdentifier); | ||
240 | mail.setMimeMessage(message->encodedContent()); | ||
241 | mail.setFolder(folder); | ||
242 | |||
243 | VERIFYEXEC(Store::create(mail)); | ||
244 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); | ||
245 | { | ||
246 | auto job = Store::fetchAll<Mail>(Query::RequestedProperties(QByteArrayList() << Mail::Folder::name << Mail::Subject::name << Mail::MimeMessage::name)) | ||
247 | .then<void, QList<Mail::Ptr>>([=](const QList<Mail::Ptr> &mails) { | ||
248 | QCOMPARE(mails.size(), 1); | ||
249 | auto mail = *mails.first(); | ||
250 | QCOMPARE(mail.getFolder(), folder.identifier()); | ||
251 | Warning() << "path: " << mail.getMimeMessagePath(); | ||
252 | QVERIFY(QFile(mail.getMimeMessagePath()).exists()); | ||
253 | }); | ||
254 | VERIFYEXEC(job); | ||
255 | } | ||
256 | |||
257 | VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::CacheIntegrityInspection(folder))); | ||
258 | |||
259 | mail.setFolder(folder1); | ||
260 | |||
261 | VERIFYEXEC(Store::modify(mail)); | ||
262 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); | ||
263 | { | ||
264 | auto job = Store::fetchAll<Mail>(Query::RequestedProperties(QByteArrayList() << Mail::Folder::name << Mail::Subject::name << Mail::MimeMessage::name)) | ||
265 | .then<void, QList<Mail::Ptr>>([=](const QList<Mail::Ptr> &mails) { | ||
266 | QCOMPARE(mails.size(), 1); | ||
267 | auto mail = *mails.first(); | ||
268 | QCOMPARE(mail.getFolder(), folder1.identifier()); | ||
269 | QVERIFY(QFile(mail.getMimeMessagePath()).exists()); | ||
270 | Trace() << "Mime message path: " << mail.getMimeMessagePath(); | ||
271 | }); | ||
272 | VERIFYEXEC(job); | ||
273 | } | ||
274 | VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::CacheIntegrityInspection(folder))); | ||
275 | VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::CacheIntegrityInspection(folder1))); | ||
276 | } | ||
277 | |||
223 | void MailTest::testMarkMailAsRead() | 278 | void MailTest::testMarkMailAsRead() |
224 | { | 279 | { |
225 | auto folder = Folder::create(mResourceInstanceIdentifier); | 280 | auto folder = Folder::create(mResourceInstanceIdentifier); |