summaryrefslogtreecommitdiffstats
path: root/tests/mailsynctest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/mailsynctest.cpp')
-rw-r--r--tests/mailsynctest.cpp38
1 files changed, 37 insertions, 1 deletions
diff --git a/tests/mailsynctest.cpp b/tests/mailsynctest.cpp
index 9c57f0a..8260978 100644
--- a/tests/mailsynctest.cpp
+++ b/tests/mailsynctest.cpp
@@ -344,7 +344,43 @@ void MailSyncTest::testFetchNewRemovedMessages()
344 } 344 }
345} 345}
346 346
347//TODO test flag sync 347void MailSyncTest::testFlagChange()
348{
349 Sink::Query query;
350 query.resources << mResourceInstanceIdentifier;
351 query.request<Mail::Subject>().request<Mail::Important>();
352
353 auto msg = KMime::Message::Ptr::create();
354 msg->subject(true)->fromUnicodeString("Foobar", "utf8");
355 msg->assemble();
356 auto messageIdentifier = createMessage(QStringList() << "test", msg->encodedContent(true));
357
358 Store::synchronize(query).exec().waitForFinished();
359 ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished();
360
361 {
362 auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) {
363 QCOMPARE(mails.size(), 2);
364 QVERIFY(!mails.at(1)->getImportant());
365 });
366 VERIFYEXEC(job);
367 }
368
369 markAsImportant(QStringList() << "test", messageIdentifier);
370
371 // Ensure all local data is processed
372 VERIFYEXEC(Store::synchronize(query));
373 ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished();
374
375 {
376 auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) {
377 QCOMPARE(mails.size(), 2);
378 QVERIFY(mails.at(1)->getImportant());
379 });
380 VERIFYEXEC(job);
381 }
382
383}
348 384
349void MailSyncTest::testFailingSync() 385void MailSyncTest::testFailingSync()
350{ 386{