summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/imapresource/imapresource.cpp15
-rw-r--r--examples/mailtransportresource/tests/mailtransporttest.cpp4
-rw-r--r--tests/interresourcemovetest.cpp2
-rw-r--r--tests/mailsynctest.cpp2
-rw-r--r--tests/mailtest.cpp18
-rw-r--r--tests/mailthreadtest.cpp6
6 files changed, 28 insertions, 19 deletions
diff --git a/examples/imapresource/imapresource.cpp b/examples/imapresource/imapresource.cpp
index 945962f..25d9534 100644
--- a/examples/imapresource/imapresource.cpp
+++ b/examples/imapresource/imapresource.cpp
@@ -197,7 +197,7 @@ public:
197 197
198 auto mail = Sink::ApplicationDomain::Mail::create(mResourceInstanceIdentifier); 198 auto mail = Sink::ApplicationDomain::Mail::create(mResourceInstanceIdentifier);
199 mail.setFolder(folderLocalId); 199 mail.setFolder(folderLocalId);
200 mail.setMimeMessage(message.msg->encodedContent()); 200 mail.setMimeMessage(message.msg->encodedContent(true));
201 mail.setExtractedFullPayloadAvailable(message.fullPayload); 201 mail.setExtractedFullPayloadAvailable(message.fullPayload);
202 setFlags(mail, message.flags); 202 setFlags(mail, message.flags);
203 203
@@ -608,6 +608,15 @@ public:
608 } 608 }
609 return KAsync::error<void>("Nothing to do"); 609 return KAsync::error<void>("Nothing to do");
610 } 610 }
611 static QByteArray ensureCRLF(const QByteArray &data) {
612 auto index = data.indexOf('\n');
613 if (index > 0 && data.at(index - 1) == '\r') { //First line is LF-only terminated
614 //Convert back and forth in case there's a mix. We don't want to expand CRLF into CRCRLF.
615 return KMime::LFtoCRLF(KMime::CRLFtoLF(data));
616 } else {
617 return data;
618 }
619 }
611 620
612 KAsync::Job<QByteArray> replay(const ApplicationDomain::Mail &mail, Sink::Operation operation, const QByteArray &oldRemoteId, const QList<QByteArray> &changedProperties) Q_DECL_OVERRIDE 621 KAsync::Job<QByteArray> replay(const ApplicationDomain::Mail &mail, Sink::Operation operation, const QByteArray &oldRemoteId, const QList<QByteArray> &changedProperties) Q_DECL_OVERRIDE
613 { 622 {
@@ -616,7 +625,7 @@ public:
616 KAsync::Job<QByteArray> job = KAsync::null<QByteArray>(); 625 KAsync::Job<QByteArray> job = KAsync::null<QByteArray>();
617 if (operation == Sink::Operation_Creation) { 626 if (operation == Sink::Operation_Creation) {
618 const QString mailbox = syncStore().resolveLocalId(ENTITY_TYPE_FOLDER, mail.getFolder()); 627 const QString mailbox = syncStore().resolveLocalId(ENTITY_TYPE_FOLDER, mail.getFolder());
619 const QByteArray content = mail.getMimeMessage(); 628 const auto content = ensureCRLF(mail.getMimeMessage());
620 const auto flags = getFlags(mail); 629 const auto flags = getFlags(mail);
621 const QDateTime internalDate = mail.getDate(); 630 const QDateTime internalDate = mail.getDate();
622 job = login.then(imap->append(mailbox, content, flags, internalDate)) 631 job = login.then(imap->append(mailbox, content, flags, internalDate))
@@ -651,7 +660,7 @@ public:
651 if (messageChanged || messageMoved) { 660 if (messageChanged || messageMoved) {
652 const auto folderId = folderIdFromMailRid(oldRemoteId); 661 const auto folderId = folderIdFromMailRid(oldRemoteId);
653 const QString oldMailbox = syncStore().resolveLocalId(ENTITY_TYPE_FOLDER, folderId); 662 const QString oldMailbox = syncStore().resolveLocalId(ENTITY_TYPE_FOLDER, folderId);
654 const QByteArray content = mail.getMimeMessage(); 663 const auto content = ensureCRLF(mail.getMimeMessage());
655 const QDateTime internalDate = mail.getDate(); 664 const QDateTime internalDate = mail.getDate();
656 SinkTrace() << "Replacing message. Old mailbox: " << oldMailbox << "New mailbox: " << mailbox << "Flags: " << flags << "Content: " << content; 665 SinkTrace() << "Replacing message. Old mailbox: " << oldMailbox << "New mailbox: " << mailbox << "Flags: " << flags << "Content: " << content;
657 KIMAP2::ImapSet set; 666 KIMAP2::ImapSet set;
diff --git a/examples/mailtransportresource/tests/mailtransporttest.cpp b/examples/mailtransportresource/tests/mailtransporttest.cpp
index e4cc447..2a831ed 100644
--- a/examples/mailtransportresource/tests/mailtransporttest.cpp
+++ b/examples/mailtransportresource/tests/mailtransporttest.cpp
@@ -64,7 +64,7 @@ private slots:
64 message->assemble(); 64 message->assemble();
65 65
66 auto mail = ApplicationDomain::Mail::create(mResourceInstanceIdentifier); 66 auto mail = ApplicationDomain::Mail::create(mResourceInstanceIdentifier);
67 mail.setMimeMessage(message->encodedContent()); 67 mail.setMimeMessage(message->encodedContent(true));
68 68
69 VERIFYEXEC(Store::create(mail)); 69 VERIFYEXEC(Store::create(mail));
70 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); 70 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier));
@@ -92,7 +92,7 @@ private slots:
92 message->assemble(); 92 message->assemble();
93 93
94 auto mail = ApplicationDomain::Mail::create(mResourceInstanceIdentifier); 94 auto mail = ApplicationDomain::Mail::create(mResourceInstanceIdentifier);
95 mail.setMimeMessage(message->encodedContent()); 95 mail.setMimeMessage(message->encodedContent(true));
96 96
97 VERIFYEXEC(Store::create(mail)); 97 VERIFYEXEC(Store::create(mail));
98 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); 98 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier));
diff --git a/tests/interresourcemovetest.cpp b/tests/interresourcemovetest.cpp
index 3ac6ad4..5438bc7 100644
--- a/tests/interresourcemovetest.cpp
+++ b/tests/interresourcemovetest.cpp
@@ -48,7 +48,7 @@ class InterResourceMoveTest : public QObject
48 m.subject(true)->fromUnicodeString(subject, "utf8"); 48 m.subject(true)->fromUnicodeString(subject, "utf8");
49 m.messageID(true)->setIdentifier(uid); 49 m.messageID(true)->setIdentifier(uid);
50 m.assemble(); 50 m.assemble();
51 return m.encodedContent(); 51 return m.encodedContent(true);
52 } 52 }
53 53
54private slots: 54private slots:
diff --git a/tests/mailsynctest.cpp b/tests/mailsynctest.cpp
index 5d51fbc..27b29a5 100644
--- a/tests/mailsynctest.cpp
+++ b/tests/mailsynctest.cpp
@@ -275,7 +275,7 @@ void MailSyncTest::testListMails()
275 QVERIFY(!data.isEmpty()); 275 QVERIFY(!data.isEmpty());
276 276
277 KMime::Message m; 277 KMime::Message m;
278 m.setContent(data); 278 m.setContent(KMime::CRLFtoLF(data));
279 m.parse(); 279 m.parse();
280 QCOMPARE(mail->getSubject(), m.subject(true)->asUnicodeString()); 280 QCOMPARE(mail->getSubject(), m.subject(true)->asUnicodeString());
281 QVERIFY(!mail->getFolder().isEmpty()); 281 QVERIFY(!mail->getFolder().isEmpty());
diff --git a/tests/mailtest.cpp b/tests/mailtest.cpp
index e1361e4..cbb56d5 100644
--- a/tests/mailtest.cpp
+++ b/tests/mailtest.cpp
@@ -152,7 +152,7 @@ void MailTest::testCreateModifyDeleteMail()
152 message->assemble(); 152 message->assemble();
153 153
154 auto mail = Mail::create(mResourceInstanceIdentifier); 154 auto mail = Mail::create(mResourceInstanceIdentifier);
155 mail.setMimeMessage(message->encodedContent()); 155 mail.setMimeMessage(message->encodedContent(true));
156 mail.setFolder(folder); 156 mail.setFolder(folder);
157 157
158 VERIFYEXEC(Store::create(mail)); 158 VERIFYEXEC(Store::create(mail));
@@ -166,7 +166,7 @@ void MailTest::testCreateModifyDeleteMail()
166 QCOMPARE(mail.getFolder(), folder.identifier()); 166 QCOMPARE(mail.getFolder(), folder.identifier());
167 QVERIFY(QFile(mail.getMimeMessagePath()).exists()); 167 QVERIFY(QFile(mail.getMimeMessagePath()).exists());
168 KMime::Message m; 168 KMime::Message m;
169 m.setContent(mail.getMimeMessage()); 169 m.setContent(KMime::CRLFtoLF(mail.getMimeMessage()));
170 m.parse(); 170 m.parse();
171 QCOMPARE(m.subject(true)->asUnicodeString(), subject); 171 QCOMPARE(m.subject(true)->asUnicodeString(), subject);
172 }); 172 });
@@ -182,7 +182,7 @@ void MailTest::testCreateModifyDeleteMail()
182 auto message2 = KMime::Message::Ptr::create(); 182 auto message2 = KMime::Message::Ptr::create();
183 message2->subject(true)->fromUnicodeString(subject2, "utf8"); 183 message2->subject(true)->fromUnicodeString(subject2, "utf8");
184 message2->assemble(); 184 message2->assemble();
185 mail.setMimeMessage(message2->encodedContent()); 185 mail.setMimeMessage(message2->encodedContent(true));
186 186
187 VERIFYEXEC(Store::modify(mail)); 187 VERIFYEXEC(Store::modify(mail));
188 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); 188 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier));
@@ -195,7 +195,7 @@ void MailTest::testCreateModifyDeleteMail()
195 QCOMPARE(mail.getFolder(), folder.identifier()); 195 QCOMPARE(mail.getFolder(), folder.identifier());
196 QVERIFY(QFile(mail.getMimeMessagePath()).exists()); 196 QVERIFY(QFile(mail.getMimeMessagePath()).exists());
197 KMime::Message m; 197 KMime::Message m;
198 m.setContent(mail.getMimeMessage()); 198 m.setContent(KMime::CRLFtoLF(mail.getMimeMessage()));
199 m.parse(); 199 m.parse();
200 QCOMPARE(m.subject(true)->asUnicodeString(), subject2); 200 QCOMPARE(m.subject(true)->asUnicodeString(), subject2);
201 }); 201 });
@@ -237,7 +237,7 @@ void MailTest::testMoveMail()
237 message->assemble(); 237 message->assemble();
238 238
239 auto mail = Mail::create(mResourceInstanceIdentifier); 239 auto mail = Mail::create(mResourceInstanceIdentifier);
240 mail.setMimeMessage(message->encodedContent()); 240 mail.setMimeMessage(message->encodedContent(true));
241 mail.setFolder(folder); 241 mail.setFolder(folder);
242 242
243 VERIFYEXEC(Store::create(mail)); 243 VERIFYEXEC(Store::create(mail));
@@ -289,7 +289,7 @@ void MailTest::testMarkMailAsRead()
289 message->assemble(); 289 message->assemble();
290 290
291 auto mail = Mail::create(mResourceInstanceIdentifier); 291 auto mail = Mail::create(mResourceInstanceIdentifier);
292 mail.setMimeMessage(message->encodedContent()); 292 mail.setMimeMessage(message->encodedContent(true));
293 mail.setFolder(folder); 293 mail.setFolder(folder);
294 mail.setUnread(true); 294 mail.setUnread(true);
295 VERIFYEXEC(Store::create(mail)); 295 VERIFYEXEC(Store::create(mail));
@@ -341,7 +341,7 @@ void MailTest::testCreateDraft()
341 message->assemble(); 341 message->assemble();
342 342
343 auto mail = ApplicationDomain::Mail::create(mResourceInstanceIdentifier); 343 auto mail = ApplicationDomain::Mail::create(mResourceInstanceIdentifier);
344 mail.setMimeMessage(message->encodedContent()); 344 mail.setMimeMessage(message->encodedContent(true));
345 mail.setDraft(true); 345 mail.setDraft(true);
346 346
347 VERIFYEXEC(Store::create(mail)); 347 VERIFYEXEC(Store::create(mail));
@@ -391,7 +391,7 @@ void MailTest::testModifyMailToDraft()
391 message->assemble(); 391 message->assemble();
392 392
393 auto mail = ApplicationDomain::Mail::create(mResourceInstanceIdentifier); 393 auto mail = ApplicationDomain::Mail::create(mResourceInstanceIdentifier);
394 mail.setMimeMessage(message->encodedContent()); 394 mail.setMimeMessage(message->encodedContent(true));
395 mail.setDraft(false); 395 mail.setDraft(false);
396 mail.setFolder(folder); 396 mail.setFolder(folder);
397 397
@@ -438,7 +438,7 @@ void MailTest::testModifyMailToTrash()
438 message->assemble(); 438 message->assemble();
439 439
440 auto mail = ApplicationDomain::Mail::create(mResourceInstanceIdentifier); 440 auto mail = ApplicationDomain::Mail::create(mResourceInstanceIdentifier);
441 mail.setMimeMessage(message->encodedContent()); 441 mail.setMimeMessage(message->encodedContent(true));
442 mail.setTrash(false); 442 mail.setTrash(false);
443 mail.setFolder(folder); 443 mail.setFolder(folder);
444 444
diff --git a/tests/mailthreadtest.cpp b/tests/mailthreadtest.cpp
index 02b29f6..741eb78 100644
--- a/tests/mailthreadtest.cpp
+++ b/tests/mailthreadtest.cpp
@@ -117,7 +117,7 @@ void MailThreadTest::testIndexInMixedOrder()
117 117
118 { 118 {
119 auto mail = Mail::create(mResourceInstanceIdentifier); 119 auto mail = Mail::create(mResourceInstanceIdentifier);
120 mail.setMimeMessage(message3->encodedContent()); 120 mail.setMimeMessage(message3->encodedContent(true));
121 mail.setFolder(folder); 121 mail.setFolder(folder);
122 VERIFYEXEC(Store::create(mail)); 122 VERIFYEXEC(Store::create(mail));
123 } 123 }
@@ -140,7 +140,7 @@ void MailThreadTest::testIndexInMixedOrder()
140 140
141 { 141 {
142 auto mail = Mail::create(mResourceInstanceIdentifier); 142 auto mail = Mail::create(mResourceInstanceIdentifier);
143 mail.setMimeMessage(message2->encodedContent()); 143 mail.setMimeMessage(message2->encodedContent(true));
144 mail.setFolder(folder); 144 mail.setFolder(folder);
145 VERIFYEXEC(Store::create(mail)); 145 VERIFYEXEC(Store::create(mail));
146 } 146 }
@@ -156,7 +156,7 @@ void MailThreadTest::testIndexInMixedOrder()
156 156
157 { 157 {
158 auto mail = Mail::create(mResourceInstanceIdentifier); 158 auto mail = Mail::create(mResourceInstanceIdentifier);
159 mail.setMimeMessage(message1->encodedContent()); 159 mail.setMimeMessage(message1->encodedContent(true));
160 mail.setFolder(folder); 160 mail.setFolder(folder);
161 VERIFYEXEC(Store::create(mail)); 161 VERIFYEXEC(Store::create(mail));
162 } 162 }