diff options
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); |