summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/mailtest.cpp55
-rw-r--r--tests/mailtest.h1
2 files changed, 56 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
223void 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
223void MailTest::testMarkMailAsRead() 278void MailTest::testMarkMailAsRead()
224{ 279{
225 auto folder = Folder::create(mResourceInstanceIdentifier); 280 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:
64 64
65 void testCreateModifyDeleteFolder(); 65 void testCreateModifyDeleteFolder();
66 void testCreateModifyDeleteMail(); 66 void testCreateModifyDeleteMail();
67 void testMoveMail();
67 void testMarkMailAsRead(); 68 void testMarkMailAsRead();
68 void testCreateDraft(); 69 void testCreateDraft();
69}; 70};