summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-05-24 11:10:07 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-05-24 11:10:07 +0200
commit3e443520eaa3559c9f74134007f407b569f22443 (patch)
tree58ae2b52b6481e58ba376d2972d16efd0cbbfba1
parentb23948efa2484ac1a37afdb0d077296f6c7f7e0f (diff)
downloadsink-3e443520eaa3559c9f74134007f407b569f22443.tar.gz
sink-3e443520eaa3559c9f74134007f407b569f22443.zip
Adapt mailtest for the maildirresource
-rw-r--r--examples/maildirresource/CMakeLists.txt1
-rw-r--r--examples/maildirresource/tests/CMakeLists.txt11
-rw-r--r--examples/maildirresource/tests/maildirmailtest.cpp45
-rw-r--r--tests/mailtest.cpp30
4 files changed, 82 insertions, 5 deletions
diff --git a/examples/maildirresource/CMakeLists.txt b/examples/maildirresource/CMakeLists.txt
index efaa266..e5bfdb6 100644
--- a/examples/maildirresource/CMakeLists.txt
+++ b/examples/maildirresource/CMakeLists.txt
@@ -13,3 +13,4 @@ target_link_libraries(${PROJECT_NAME} sink maildir KF5::Mime)
13install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${SINK_RESOURCE_PLUGINS_PATH}) 13install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${SINK_RESOURCE_PLUGINS_PATH})
14 14
15add_subdirectory(libmaildir) 15add_subdirectory(libmaildir)
16add_subdirectory(tests)
diff --git a/examples/maildirresource/tests/CMakeLists.txt b/examples/maildirresource/tests/CMakeLists.txt
new file mode 100644
index 0000000..ffe9286
--- /dev/null
+++ b/examples/maildirresource/tests/CMakeLists.txt
@@ -0,0 +1,11 @@
1set(CMAKE_AUTOMOC ON)
2include_directories(
3 ${CMAKE_CURRENT_BINARY_DIR}
4)
5
6include(SinkTest)
7
8auto_tests (
9 maildirmailtest
10)
11target_link_libraries(maildirmailtest sink_resource_maildir)
diff --git a/examples/maildirresource/tests/maildirmailtest.cpp b/examples/maildirresource/tests/maildirmailtest.cpp
new file mode 100644
index 0000000..caaf552
--- /dev/null
+++ b/examples/maildirresource/tests/maildirmailtest.cpp
@@ -0,0 +1,45 @@
1#include <QtTest>
2
3#include <tests/mailtest.h>
4#include "../maildirresource.h"
5
6#include "common/test.h"
7#include "common/domain/applicationdomaintype.h"
8
9using namespace Sink;
10using namespace Sink::ApplicationDomain;
11
12/**
13 * Test of complete system using the maildir resource.
14 *
15 * This test requires the maildir resource installed.
16 */
17class MaildirMailTest : public Sink::MailTest
18{
19 Q_OBJECT
20
21 QTemporaryDir tempDir;
22 QString targetPath;
23
24protected:
25 void resetTestEnvironment() Q_DECL_OVERRIDE
26 {
27 targetPath = tempDir.path() + "/maildir1/";
28 }
29
30 Sink::ApplicationDomain::SinkResource createResource() Q_DECL_OVERRIDE
31 {
32 auto resource = ApplicationDomain::MaildirResource::create("account1");
33 resource.setProperty("path", targetPath);
34 return resource;
35 }
36
37 void removeResourceFromDisk(const QByteArray &identifier) Q_DECL_OVERRIDE
38 {
39 ::MaildirResource::removeFromDisk(identifier);
40 }
41};
42
43QTEST_MAIN(MaildirMailTest)
44
45#include "maildirmailtest.moc"
diff --git a/tests/mailtest.cpp b/tests/mailtest.cpp
index 79a077c..c3b33bc 100644
--- a/tests/mailtest.cpp
+++ b/tests/mailtest.cpp
@@ -60,6 +60,16 @@ void MailTest::init()
60 60
61void MailTest::testCreateModifyDeleteFolder() 61void MailTest::testCreateModifyDeleteFolder()
62{ 62{
63 int baseCount = 0;
64 //First figure out how many folders we have by default
65 {
66 auto job = Store::fetchAll<Folder>(Query())
67 .then<void, QList<Folder::Ptr>>([&](const QList<Folder::Ptr> &folders) {
68 baseCount = folders.size();
69 });
70 VERIFYEXEC(job);
71 }
72
63 QString name = "name"; 73 QString name = "name";
64 QByteArray icon = "icon"; 74 QByteArray icon = "icon";
65 75
@@ -72,8 +82,13 @@ void MailTest::testCreateModifyDeleteFolder()
72 { 82 {
73 auto job = Store::fetchAll<Folder>(Query::RequestedProperties(QByteArrayList() << Folder::Name::name << Folder::Icon::name)) 83 auto job = Store::fetchAll<Folder>(Query::RequestedProperties(QByteArrayList() << Folder::Name::name << Folder::Icon::name))
74 .then<void, QList<Folder::Ptr>>([=](const QList<Folder::Ptr> &folders) { 84 .then<void, QList<Folder::Ptr>>([=](const QList<Folder::Ptr> &folders) {
75 QCOMPARE(folders.size(), 1); 85 QCOMPARE(folders.size(), baseCount + 1);
76 auto folder = *folders.first(); 86 QHash<QString, Folder::Ptr> foldersByName;
87 for (const auto &folder : folders) {
88 foldersByName.insert(folder->getName(), folder);
89 }
90 QVERIFY(foldersByName.contains(name));
91 auto folder = *foldersByName.value(name);
77 QCOMPARE(folder.getName(), name); 92 QCOMPARE(folder.getName(), name);
78 QCOMPARE(folder.getIcon(), icon); 93 QCOMPARE(folder.getIcon(), icon);
79 }); 94 });
@@ -90,8 +105,13 @@ void MailTest::testCreateModifyDeleteFolder()
90 { 105 {
91 auto job = Store::fetchAll<Folder>(Query::RequestedProperties(QByteArrayList() << Folder::Name::name << Folder::Icon::name)) 106 auto job = Store::fetchAll<Folder>(Query::RequestedProperties(QByteArrayList() << Folder::Name::name << Folder::Icon::name))
92 .then<void, QList<Folder::Ptr>>([=](const QList<Folder::Ptr> &folders) { 107 .then<void, QList<Folder::Ptr>>([=](const QList<Folder::Ptr> &folders) {
93 QCOMPARE(folders.size(), 1); 108 QCOMPARE(folders.size(), baseCount + 1);
94 auto folder = *folders.first(); 109 QHash<QString, Folder::Ptr> foldersByName;
110 for (const auto &folder : folders) {
111 foldersByName.insert(folder->getName(), folder);
112 }
113 QVERIFY(foldersByName.contains(name2));
114 auto folder = *foldersByName.value(name2);
95 QCOMPARE(folder.getName(), name2); 115 QCOMPARE(folder.getName(), name2);
96 QCOMPARE(folder.getIcon(), icon2); 116 QCOMPARE(folder.getIcon(), icon2);
97 }); 117 });
@@ -103,7 +123,7 @@ void MailTest::testCreateModifyDeleteFolder()
103 { 123 {
104 auto job = Store::fetchAll<Folder>(Query::RequestedProperties(QByteArrayList() << Folder::Name::name << Folder::Icon::name)) 124 auto job = Store::fetchAll<Folder>(Query::RequestedProperties(QByteArrayList() << Folder::Name::name << Folder::Icon::name))
105 .then<void, QList<Folder::Ptr>>([=](const QList<Folder::Ptr> &folders) { 125 .then<void, QList<Folder::Ptr>>([=](const QList<Folder::Ptr> &folders) {
106 QCOMPARE(folders.size(), 0); 126 QCOMPARE(folders.size(), baseCount);
107 }); 127 });
108 VERIFYEXEC(job); 128 VERIFYEXEC(job);
109 } 129 }