From 0e08f78c9028ab16933b75a1fd0729a73a996af6 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 29 Dec 2017 12:29:36 +0100 Subject: Maillistmodeltest --- framework/src/tests/maillistmodeltest.cpp | 67 +++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 framework/src/tests/maillistmodeltest.cpp (limited to 'framework/src/tests/maillistmodeltest.cpp') 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 @@ +#include +#include +#include +#include +#include +#include +#include "maillistmodel.h" +#include "mailtemplates.h" + +class MaillistModelTest : public QObject +{ + Q_OBJECT +private slots: + + void initTestCase() + { + Sink::Test::initTest(); + } + + void testMailListModel() + { + Sink::ApplicationDomain::DummyResource::create("account1"); + + using namespace Sink::ApplicationDomain; + auto account = ApplicationDomainType::createEntity(); + Sink::Store::create(account).exec().waitForFinished(); + + auto resource = Sink::ApplicationDomain::DummyResource::create(account.identifier()); + Sink::Store::create(resource).exec().waitForFinished(); + + auto folder1 = ApplicationDomainType::createEntity(resource.identifier()); + Sink::Store::create(folder1).exec().waitForFinished(); + + auto folder2 = ApplicationDomainType::createEntity(resource.identifier()); + Sink::Store::create(folder2).exec().waitForFinished(); + + + auto mail1 = ApplicationDomainType::createEntity(resource.identifier()); + mail1.setFolder(folder1); + KMime::Types::Mailbox from; + from.fromUnicodeString("from@example.org"); + auto message = MailTemplates::createMessage({}, {"foo@test.com"}, {}, {}, from, "Subject", "Body", false, {}, {}, {}); + mail1.setMimeMessage(message->encodedContent(true)); + Sink::Store::create(mail1).exec().waitForFinished(); + + auto mail2 = ApplicationDomainType::createEntity(resource.identifier()); + mail2.setFolder(folder2); + Sink::Store::create(mail2).exec().waitForFinished(); + + Sink::ResourceControl::flushMessageQueue(resource.identifier()).exec().waitForFinished(); + + MailListModel model; + model.setParentFolder(QVariant::fromValue(Folder::Ptr::create(folder1))); + QTRY_COMPARE(model.rowCount({}), 1); + + { + auto idx = model.index(0, 0, {}); + auto mail = idx.data(MailListModel::DomainObject).value(); + QVERIFY(mail); + QVERIFY(!mail->getSubject().isEmpty()); + QVERIFY(mail->getFullPayloadAvailable()); + } + } +}; + +QTEST_MAIN(MaillistModelTest) +#include "maillistmodeltest.moc" -- cgit v1.2.3