summaryrefslogtreecommitdiffstats
path: root/tests/maildirresourcetest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/maildirresourcetest.cpp')
-rw-r--r--tests/maildirresourcetest.cpp55
1 files changed, 53 insertions, 2 deletions
diff --git a/tests/maildirresourcetest.cpp b/tests/maildirresourcetest.cpp
index 51ea278..1e2d36b 100644
--- a/tests/maildirresourcetest.cpp
+++ b/tests/maildirresourcetest.cpp
@@ -59,8 +59,6 @@ private Q_SLOTS:
59 copyRecursively(TESTDATAPATH "/maildir1", targetPath); 59 copyRecursively(TESTDATAPATH "/maildir1", targetPath);
60 60
61 Akonadi2::Log::setDebugOutputLevel(Akonadi2::Log::Trace); 61 Akonadi2::Log::setDebugOutputLevel(Akonadi2::Log::Trace);
62 auto factory = Akonadi2::ResourceFactory::load("org.kde.maildir");
63 QVERIFY(factory);
64 MaildirResource::removeFromDisk("org.kde.maildir.instance1"); 62 MaildirResource::removeFromDisk("org.kde.maildir.instance1");
65 Akonadi2::ApplicationDomain::AkonadiResource resource; 63 Akonadi2::ApplicationDomain::AkonadiResource resource;
66 resource.setProperty("identifier", "org.kde.maildir.instance1"); 64 resource.setProperty("identifier", "org.kde.maildir.instance1");
@@ -73,6 +71,7 @@ private Q_SLOTS:
73 { 71 {
74 Akonadi2::Store::shutdown(QByteArray("org.kde.maildir.instance1")).exec().waitForFinished(); 72 Akonadi2::Store::shutdown(QByteArray("org.kde.maildir.instance1")).exec().waitForFinished();
75 MaildirResource::removeFromDisk("org.kde.maildir.instance1"); 73 MaildirResource::removeFromDisk("org.kde.maildir.instance1");
74 Akonadi2::Store::start(QByteArray("org.kde.maildir.instance1")).exec().waitForFinished();
76 } 75 }
77 76
78 void init() 77 void init()
@@ -236,6 +235,58 @@ private Q_SLOTS:
236 QCOMPARE(mailModel->rowCount(QModelIndex()), 1); 235 QCOMPARE(mailModel->rowCount(QModelIndex()), 1);
237 } 236 }
238 237
238 void testCreateFolder()
239 {
240 Akonadi2::Query query;
241 query.resources << "org.kde.maildir.instance1";
242 query.syncOnDemand = false;
243 query.processAll = true;
244
245 //Ensure all local data is processed
246 Akonadi2::Store::synchronize(query).exec().waitForFinished();
247
248 Akonadi2::ApplicationDomain::Folder folder("org.kde.maildir.instance1");
249 folder.setProperty("name", "testCreateFolder");
250
251 Akonadi2::Store::create(folder).exec().waitForFinished();
252
253 //Ensure all local data is processed
254 Akonadi2::Store::synchronize(query).exec().waitForFinished();
255
256 auto targetPath = tempDir.path() + "/maildir1/testCreateFolder";
257 QFileInfo file(targetPath);
258 QTRY_VERIFY(file.exists());
259 QVERIFY(file.isDir());
260 }
261
262 void testRemoveFolder()
263 {
264 Akonadi2::Query query;
265 query.resources << "org.kde.maildir.instance1";
266 query.syncOnDemand = false;
267 query.processAll = true;
268
269 auto targetPath = tempDir.path() + "/maildir1/testCreateFolder";
270
271 Akonadi2::ApplicationDomain::Folder folder("org.kde.maildir.instance1");
272 folder.setProperty("name", "testCreateFolder");
273 Akonadi2::Store::create(folder).exec().waitForFinished();
274 Akonadi2::Store::synchronize(query).exec().waitForFinished();
275 QTRY_VERIFY(QFileInfo(targetPath).exists());
276
277 Akonadi2::Query folderQuery;
278 folderQuery.resources << "org.kde.maildir.instance1";
279 folderQuery.propertyFilter.insert("name", "testCreateFolder");
280 auto model = Akonadi2::Store::loadModel<Akonadi2::ApplicationDomain::Folder>(folderQuery);
281 QTRY_VERIFY(model->data(QModelIndex(), Akonadi2::Store::ChildrenFetchedRole).toBool());
282 QCOMPARE(model->rowCount(QModelIndex()), 1);
283 auto createdFolder = model->index(0, 0, QModelIndex()).data(Akonadi2::Store::DomainObjectRole).value<Akonadi2::ApplicationDomain::Folder::Ptr>();
284
285 Akonadi2::Store::remove(*createdFolder).exec().waitForFinished();
286 Akonadi2::Store::synchronize(query).exec().waitForFinished();
287 QTRY_VERIFY(!QFileInfo(targetPath).exists());
288 }
289
239}; 290};
240 291
241QTEST_MAIN(MaildirResourceTest) 292QTEST_MAIN(MaildirResourceTest)