summaryrefslogtreecommitdiffstats
path: root/tests/mailsynctest.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-06-10 15:49:48 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-06-10 15:49:48 +0200
commit638e75d6f3d00fb473fd45e325fcfb34c6340c65 (patch)
tree4db057d7dff07c9e03cf5a732c660e705c17327a /tests/mailsynctest.cpp
parentce0feb3ef62c9438b0aedd601461cbb340faa021 (diff)
downloadsink-638e75d6f3d00fb473fd45e325fcfb34c6340c65.tar.gz
sink-638e75d6f3d00fb473fd45e325fcfb34c6340c65.zip
Create the drafts folder if necessary and merge it with the source
version
Diffstat (limited to 'tests/mailsynctest.cpp')
-rw-r--r--tests/mailsynctest.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/tests/mailsynctest.cpp b/tests/mailsynctest.cpp
index 6c91381..ff56030 100644
--- a/tests/mailsynctest.cpp
+++ b/tests/mailsynctest.cpp
@@ -80,7 +80,7 @@ void MailSyncTest::testListFolders()
80 80
81 Sink::Query query; 81 Sink::Query query;
82 query.resources << mResourceInstanceIdentifier; 82 query.resources << mResourceInstanceIdentifier;
83 query.request<Folder::Name>(); 83 query.request<Folder::Name>().request<Folder::SpecialPurpose>();
84 84
85 // Ensure all local data is processed 85 // Ensure all local data is processed
86 VERIFYEXEC(Store::synchronize(query)); 86 VERIFYEXEC(Store::synchronize(query));
@@ -88,16 +88,21 @@ void MailSyncTest::testListFolders()
88 88
89 auto job = Store::fetchAll<Folder>(query).then<void, QList<Folder::Ptr>>([=](const QList<Folder::Ptr> &folders) { 89 auto job = Store::fetchAll<Folder>(query).then<void, QList<Folder::Ptr>>([=](const QList<Folder::Ptr> &folders) {
90 QStringList names; 90 QStringList names;
91 QHash<QByteArray, QByteArray> specialPurposeFolders;
91 for (const auto &folder : folders) { 92 for (const auto &folder : folders) {
92 names << folder->getName(); 93 names << folder->getName();
94 for (const auto &purpose : folder->getSpecialPurpose()) {
95 specialPurposeFolders.insert(purpose, folder->identifier());
96 }
93 } 97 }
94 //Workaround for maildir 98 //Workaround for maildir
95 if (names.contains("maildir1")) { 99 if (names.contains("maildir1")) {
96 names.removeAll("maildir1"); 100 names.removeAll("maildir1");
97 } 101 }
98 if (mCapabilities.contains(ResourceCapabilities::Mail::drafts)) { 102 if (mCapabilities.contains(ResourceCapabilities::Mail::drafts)) {
99 QVERIFY(names.contains("drafts")); 103 QVERIFY(names.contains("Drafts"));
100 names.removeAll("drafts"); 104 names.removeAll("Drafts");
105 QVERIFY(specialPurposeFolders.contains("drafts"));
101 } 106 }
102 QCOMPARE(names.size(), 2); 107 QCOMPARE(names.size(), 2);
103 QVERIFY(names.contains("INBOX")); 108 QVERIFY(names.contains("INBOX"));
@@ -183,8 +188,8 @@ void MailSyncTest::testListFolderHierarchy()
183 names.removeAll("maildir1"); 188 names.removeAll("maildir1");
184 } 189 }
185 if (mCapabilities.contains(ResourceCapabilities::Mail::drafts)) { 190 if (mCapabilities.contains(ResourceCapabilities::Mail::drafts)) {
186 QVERIFY(names.contains("drafts")); 191 QVERIFY(names.contains("Drafts"));
187 names.removeAll("drafts"); 192 names.removeAll("Drafts");
188 } 193 }
189 QCOMPARE(names.size(), 3); 194 QCOMPARE(names.size(), 3);
190 QCOMPARE(map.value("sub")->getParent(), map.value("test")->identifier()); 195 QCOMPARE(map.value("sub")->getParent(), map.value("test")->identifier());
@@ -195,7 +200,7 @@ void MailSyncTest::testListFolderHierarchy()
195void MailSyncTest::testListNewSubFolder() 200void MailSyncTest::testListNewSubFolder()
196{ 201{
197 if (!mCapabilities.contains(ResourceCapabilities::Mail::folderhierarchy)) { 202 if (!mCapabilities.contains(ResourceCapabilities::Mail::folderhierarchy)) {
198 QSKIP("Missing capability folder.hierarchy"); 203 QSKIP("Missing capability mail.folderhierarchy");
199 } 204 }
200 Sink::Query query; 205 Sink::Query query;
201 query.resources << mResourceInstanceIdentifier; 206 query.resources << mResourceInstanceIdentifier;