summaryrefslogtreecommitdiffstats
path: root/framework/src
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-12-29 12:29:36 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-12-29 12:29:36 +0100
commit0e08f78c9028ab16933b75a1fd0729a73a996af6 (patch)
tree126a3f3d9d056fdf6896d35819014ce2a734c285 /framework/src
parent07ab76cf151884898a73e6e293615b542194bbf0 (diff)
downloadkube-0e08f78c9028ab16933b75a1fd0729a73a996af6.tar.gz
kube-0e08f78c9028ab16933b75a1fd0729a73a996af6.zip
Maillistmodeltest
Diffstat (limited to 'framework/src')
-rw-r--r--framework/src/tests/CMakeLists.txt9
-rw-r--r--framework/src/tests/maillistmodeltest.cpp67
2 files changed, 76 insertions, 0 deletions
diff --git a/framework/src/tests/CMakeLists.txt b/framework/src/tests/CMakeLists.txt
index fb2e2ead..a98bed83 100644
--- a/framework/src/tests/CMakeLists.txt
+++ b/framework/src/tests/CMakeLists.txt
@@ -13,3 +13,12 @@ target_link_libraries(folderlistmodeltest
13 Qt5::Gui 13 Qt5::Gui
14 kubeframework 14 kubeframework
15) 15)
16
17add_executable(maillistmodeltest maillistmodeltest.cpp)
18add_test(maillistmodeltest maillistmodeltest)
19target_link_libraries(maillistmodeltest
20 Qt5::Core
21 Qt5::Test
22 Qt5::Gui
23 kubeframework
24)
diff --git a/framework/src/tests/maillistmodeltest.cpp b/framework/src/tests/maillistmodeltest.cpp
new file mode 100644
index 00000000..1df0556c
--- /dev/null
+++ b/framework/src/tests/maillistmodeltest.cpp
@@ -0,0 +1,67 @@
1#include <QTest>
2#include <QDebug>
3#include <QStandardItemModel>
4#include <sink/test.h>
5#include <sink/store.h>
6#include <sink/resourcecontrol.h>
7#include "maillistmodel.h"
8#include "mailtemplates.h"
9
10class MaillistModelTest : public QObject
11{
12 Q_OBJECT
13private slots:
14
15 void initTestCase()
16 {
17 Sink::Test::initTest();
18 }
19
20 void testMailListModel()
21 {
22 Sink::ApplicationDomain::DummyResource::create("account1");
23
24 using namespace Sink::ApplicationDomain;
25 auto account = ApplicationDomainType::createEntity<SinkAccount>();
26 Sink::Store::create(account).exec().waitForFinished();
27
28 auto resource = Sink::ApplicationDomain::DummyResource::create(account.identifier());
29 Sink::Store::create(resource).exec().waitForFinished();
30
31 auto folder1 = ApplicationDomainType::createEntity<Folder>(resource.identifier());
32 Sink::Store::create(folder1).exec().waitForFinished();
33
34 auto folder2 = ApplicationDomainType::createEntity<Folder>(resource.identifier());
35 Sink::Store::create(folder2).exec().waitForFinished();
36
37
38 auto mail1 = ApplicationDomainType::createEntity<Mail>(resource.identifier());
39 mail1.setFolder(folder1);
40 KMime::Types::Mailbox from;
41 from.fromUnicodeString("from@example.org");
42 auto message = MailTemplates::createMessage({}, {"foo@test.com"}, {}, {}, from, "Subject", "Body", false, {}, {}, {});
43 mail1.setMimeMessage(message->encodedContent(true));
44 Sink::Store::create(mail1).exec().waitForFinished();
45
46 auto mail2 = ApplicationDomainType::createEntity<Mail>(resource.identifier());
47 mail2.setFolder(folder2);
48 Sink::Store::create(mail2).exec().waitForFinished();
49
50 Sink::ResourceControl::flushMessageQueue(resource.identifier()).exec().waitForFinished();
51
52 MailListModel model;
53 model.setParentFolder(QVariant::fromValue(Folder::Ptr::create(folder1)));
54 QTRY_COMPARE(model.rowCount({}), 1);
55
56 {
57 auto idx = model.index(0, 0, {});
58 auto mail = idx.data(MailListModel::DomainObject).value<Mail::Ptr>();
59 QVERIFY(mail);
60 QVERIFY(!mail->getSubject().isEmpty());
61 QVERIFY(mail->getFullPayloadAvailable());
62 }
63 }
64};
65
66QTEST_MAIN(MaillistModelTest)
67#include "maillistmodeltest.moc"