summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/CMakeLists.txt2
-rw-r--r--tests/data/maildir1/cur/1365777829.R28.localhost.localdomain:2,S72
-rw-r--r--tests/data/maildir1/inbox/cur/1365777829.R28.localhost.localdomain:2,S72
-rw-r--r--tests/maildirresourcetest.cpp89
4 files changed, 233 insertions, 2 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index b909681..4b10b56 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -8,6 +8,8 @@ include_directories(
8 ${CMAKE_CURRENT_SOURCE_DIR}/../examples/ 8 ${CMAKE_CURRENT_SOURCE_DIR}/../examples/
9 ) 9 )
10 10
11add_definitions(-DTESTDATAPATH="${CMAKE_CURRENT_SOURCE_DIR}/data")
12
11macro(manual_tests) 13macro(manual_tests)
12 foreach(_testname ${ARGN}) 14 foreach(_testname ${ARGN})
13 add_executable(${_testname} ${_testname}.cpp testimplementations.cpp) 15 add_executable(${_testname} ${_testname}.cpp testimplementations.cpp)
diff --git a/tests/data/maildir1/cur/1365777829.R28.localhost.localdomain:2,S b/tests/data/maildir1/cur/1365777829.R28.localhost.localdomain:2,S
new file mode 100644
index 0000000..91231b5
--- /dev/null
+++ b/tests/data/maildir1/cur/1365777829.R28.localhost.localdomain:2,S
@@ -0,0 +1,72 @@
1Return-Path: <nepomuk-bounces@kde.org>
2Received: from compute4.internal (compute4.nyi.mail.srv.osa [10.202.2.44])
3 by slots3a1p1 (Cyrus git2.5+0-git-fastmail-8998) with LMTPA;
4 Mon, 11 Mar 2013 14:28:42 -0400
5X-Sieve: CMU Sieve 2.4
6X-Spam-score: 0.0
7X-Spam-hits: BAYES_00 -1.9, RCVD_IN_DNSWL_MED -2.3, RP_MATCHES_RCVD -0.704,
8 LANGUAGES unknown, BAYES_USED global, SA_VERSION 3.3.1
9X-Spam-source: IP='46.4.96.248', Host='postbox.kde.org', Country='unk', FromHeader='org',
10 MailFrom='org'
11X-Spam-charsets: plain='us-ascii'
12X-Resolved-to: chrigi_1@fastmail.fm
13X-Delivered-to: chrigi_1@fastmail.fm
14X-Mail-from: nepomuk-bounces@kde.org
15Received: from mx4.nyi.mail.srv.osa ([10.202.2.203])
16 by compute4.internal (LMTPProxy); Mon, 11 Mar 2013 14:28:42 -0400
17Received: from postbox.kde.org (postbox.kde.org [46.4.96.248])
18 by mx4.messagingengine.com (Postfix) with ESMTP id 1C9D2440F88
19 for <chrigi_1@fastmail.fm>; Mon, 11 Mar 2013 14:28:42 -0400 (EDT)
20Received: from postbox.kde.org (localhost [IPv6:::1])
21 by postbox.kde.org (Postfix) with ESMTP id 00FFEB3732B;
22 Mon, 11 Mar 2013 18:28:40 +0000 (UTC)
23DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kde.org; s=default;
24 t=1363026520; bh=cOdvyBAJJ8ho64q0H7rxkl+cB2y6TiyVOX0fO3yZ64U=;
25 h=Date:From:To:Message-ID:In-Reply-To:References:MIME-Version:
26 Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:
27 List-Subscribe:Content-Type:Content-Transfer-Encoding:Sender; b=dv
28 dJAFu+6JCuNun5WIuP4ysfKpLh0DeuhEEfy2cQavUGMICJ27k7tI73x6gN37V5Q/evJ
29 NDFna3/IhNBsAQeLiXs28HKxzcVhbnq5jdFR6fbyo6k1fOKt5vTT1GTDZ+3zIGPD1CU
30 ioDBGxPb/Ds6gee90tjadOj6o+Oc+2ZSq94=
31X-Original-To: nepomuk@kde.org
32X-Remote-Delivered-To: nepomuk@localhost.kde.org
33Received: from build.kde.org (build.kde.org [IPv6:2a01:4f8:160:9363::5])
34 by postbox.kde.org (Postfix) with ESMTP id 4491CB3732B
35 for <nepomuk@kde.org>; Mon, 11 Mar 2013 18:28:27 +0000 (UTC)
36Received: from localhost ([127.0.0.1]) by build.kde.org with esmtp (Exim 4.72)
37 (envelope-from <null@kde.org>) id 1UF7SV-0000gs-11
38 for nepomuk@kde.org; Mon, 11 Mar 2013 18:28:27 +0000
39Date: Mon, 11 Mar 2013 18:28:27 +0000 (UTC)
40From: KDE CI System <null@kde.org>
41To: nepomuk@kde.org
42Message-ID: <1977027405.27.1363026507008.JavaMail.jenkins@build>
43In-Reply-To: <880663748.26.1363026023717.JavaMail.jenkins@build>
44References: <880663748.26.1363026023717.JavaMail.jenkins@build>
45MIME-Version: 1.0
46X-Jenkins-Job: nepomuk-core_stable
47X-Jenkins-Result: UNSTABLE
48X-Scanned-By: MIMEDefang 2.71 on 46.4.96.248
49Subject: [Nepomuk] Jenkins build is still unstable: nepomuk-core_stable #158
50X-BeenThere: nepomuk@kde.org
51X-Mailman-Version: 2.1.14
52Precedence: list
53List-Id: The Semantic KDE <nepomuk.kde.org>
54List-Unsubscribe: <https://mail.kde.org/mailman/options/nepomuk>,
55 <mailto:nepomuk-request@kde.org?subject=unsubscribe>
56List-Archive: <http://mail.kde.org/pipermail/nepomuk>
57List-Post: <mailto:nepomuk@kde.org>
58List-Help: <mailto:nepomuk-request@kde.org?subject=help>
59List-Subscribe: <https://mail.kde.org/mailman/listinfo/nepomuk>,
60 <mailto:nepomuk-request@kde.org?subject=subscribe>
61Content-Type: text/plain; charset="us-ascii"
62Content-Transfer-Encoding: 7bit
63Errors-To: nepomuk-bounces@kde.org
64Sender: nepomuk-bounces@kde.org
65X-Truedomain: NotChecked
66
67See <http://build.kde.org/job/nepomuk-core_stable/changes>
68
69_______________________________________________
70Nepomuk mailing list
71Nepomuk@kde.org
72https://mail.kde.org/mailman/listinfo/nepomuk
diff --git a/tests/data/maildir1/inbox/cur/1365777829.R28.localhost.localdomain:2,S b/tests/data/maildir1/inbox/cur/1365777829.R28.localhost.localdomain:2,S
new file mode 100644
index 0000000..91231b5
--- /dev/null
+++ b/tests/data/maildir1/inbox/cur/1365777829.R28.localhost.localdomain:2,S
@@ -0,0 +1,72 @@
1Return-Path: <nepomuk-bounces@kde.org>
2Received: from compute4.internal (compute4.nyi.mail.srv.osa [10.202.2.44])
3 by slots3a1p1 (Cyrus git2.5+0-git-fastmail-8998) with LMTPA;
4 Mon, 11 Mar 2013 14:28:42 -0400
5X-Sieve: CMU Sieve 2.4
6X-Spam-score: 0.0
7X-Spam-hits: BAYES_00 -1.9, RCVD_IN_DNSWL_MED -2.3, RP_MATCHES_RCVD -0.704,
8 LANGUAGES unknown, BAYES_USED global, SA_VERSION 3.3.1
9X-Spam-source: IP='46.4.96.248', Host='postbox.kde.org', Country='unk', FromHeader='org',
10 MailFrom='org'
11X-Spam-charsets: plain='us-ascii'
12X-Resolved-to: chrigi_1@fastmail.fm
13X-Delivered-to: chrigi_1@fastmail.fm
14X-Mail-from: nepomuk-bounces@kde.org
15Received: from mx4.nyi.mail.srv.osa ([10.202.2.203])
16 by compute4.internal (LMTPProxy); Mon, 11 Mar 2013 14:28:42 -0400
17Received: from postbox.kde.org (postbox.kde.org [46.4.96.248])
18 by mx4.messagingengine.com (Postfix) with ESMTP id 1C9D2440F88
19 for <chrigi_1@fastmail.fm>; Mon, 11 Mar 2013 14:28:42 -0400 (EDT)
20Received: from postbox.kde.org (localhost [IPv6:::1])
21 by postbox.kde.org (Postfix) with ESMTP id 00FFEB3732B;
22 Mon, 11 Mar 2013 18:28:40 +0000 (UTC)
23DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kde.org; s=default;
24 t=1363026520; bh=cOdvyBAJJ8ho64q0H7rxkl+cB2y6TiyVOX0fO3yZ64U=;
25 h=Date:From:To:Message-ID:In-Reply-To:References:MIME-Version:
26 Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:
27 List-Subscribe:Content-Type:Content-Transfer-Encoding:Sender; b=dv
28 dJAFu+6JCuNun5WIuP4ysfKpLh0DeuhEEfy2cQavUGMICJ27k7tI73x6gN37V5Q/evJ
29 NDFna3/IhNBsAQeLiXs28HKxzcVhbnq5jdFR6fbyo6k1fOKt5vTT1GTDZ+3zIGPD1CU
30 ioDBGxPb/Ds6gee90tjadOj6o+Oc+2ZSq94=
31X-Original-To: nepomuk@kde.org
32X-Remote-Delivered-To: nepomuk@localhost.kde.org
33Received: from build.kde.org (build.kde.org [IPv6:2a01:4f8:160:9363::5])
34 by postbox.kde.org (Postfix) with ESMTP id 4491CB3732B
35 for <nepomuk@kde.org>; Mon, 11 Mar 2013 18:28:27 +0000 (UTC)
36Received: from localhost ([127.0.0.1]) by build.kde.org with esmtp (Exim 4.72)
37 (envelope-from <null@kde.org>) id 1UF7SV-0000gs-11
38 for nepomuk@kde.org; Mon, 11 Mar 2013 18:28:27 +0000
39Date: Mon, 11 Mar 2013 18:28:27 +0000 (UTC)
40From: KDE CI System <null@kde.org>
41To: nepomuk@kde.org
42Message-ID: <1977027405.27.1363026507008.JavaMail.jenkins@build>
43In-Reply-To: <880663748.26.1363026023717.JavaMail.jenkins@build>
44References: <880663748.26.1363026023717.JavaMail.jenkins@build>
45MIME-Version: 1.0
46X-Jenkins-Job: nepomuk-core_stable
47X-Jenkins-Result: UNSTABLE
48X-Scanned-By: MIMEDefang 2.71 on 46.4.96.248
49Subject: [Nepomuk] Jenkins build is still unstable: nepomuk-core_stable #158
50X-BeenThere: nepomuk@kde.org
51X-Mailman-Version: 2.1.14
52Precedence: list
53List-Id: The Semantic KDE <nepomuk.kde.org>
54List-Unsubscribe: <https://mail.kde.org/mailman/options/nepomuk>,
55 <mailto:nepomuk-request@kde.org?subject=unsubscribe>
56List-Archive: <http://mail.kde.org/pipermail/nepomuk>
57List-Post: <mailto:nepomuk@kde.org>
58List-Help: <mailto:nepomuk-request@kde.org?subject=help>
59List-Subscribe: <https://mail.kde.org/mailman/listinfo/nepomuk>,
60 <mailto:nepomuk-request@kde.org?subject=subscribe>
61Content-Type: text/plain; charset="us-ascii"
62Content-Transfer-Encoding: 7bit
63Errors-To: nepomuk-bounces@kde.org
64Sender: nepomuk-bounces@kde.org
65X-Truedomain: NotChecked
66
67See <http://build.kde.org/job/nepomuk-core_stable/changes>
68
69_______________________________________________
70Nepomuk mailing list
71Nepomuk@kde.org
72https://mail.kde.org/mailman/listinfo/nepomuk
diff --git a/tests/maildirresourcetest.cpp b/tests/maildirresourcetest.cpp
index c65cdf0..bef94ba 100644
--- a/tests/maildirresourcetest.cpp
+++ b/tests/maildirresourcetest.cpp
@@ -11,6 +11,32 @@
11#include "pipeline.h" 11#include "pipeline.h"
12#include "log.h" 12#include "log.h"
13 13
14static bool copyRecursively(const QString &srcFilePath,
15 const QString &tgtFilePath)
16{
17 QFileInfo srcFileInfo(srcFilePath);
18 if (srcFileInfo.isDir()) {
19 QDir targetDir(tgtFilePath);
20 targetDir.cdUp();
21 if (!targetDir.mkdir(QFileInfo(tgtFilePath).fileName()))
22 return false;
23 QDir sourceDir(srcFilePath);
24 QStringList fileNames = sourceDir.entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden | QDir::System);
25 foreach (const QString &fileName, fileNames) {
26 const QString newSrcFilePath
27 = srcFilePath + QLatin1Char('/') + fileName;
28 const QString newTgtFilePath
29 = tgtFilePath + QLatin1Char('/') + fileName;
30 if (!copyRecursively(newSrcFilePath, newTgtFilePath))
31 return false;
32 }
33 } else {
34 if (!QFile::copy(srcFilePath, tgtFilePath))
35 return false;
36 }
37 return true;
38}
39
14/** 40/**
15 * Test of complete system using the maildir resource. 41 * Test of complete system using the maildir resource.
16 * 42 *
@@ -22,6 +48,12 @@ class MaildirResourceTest : public QObject
22private Q_SLOTS: 48private Q_SLOTS:
23 void initTestCase() 49 void initTestCase()
24 { 50 {
51 auto targetPath = QDir::tempPath() + QDir::separator() + "maildirresourcetest" + QDir::separator() + "maildir1";
52 QDir dir(targetPath);
53 dir.removeRecursively();
54
55 copyRecursively(TESTDATAPATH "/maildir1", targetPath);
56
25 Akonadi2::Log::setDebugOutputLevel(Akonadi2::Log::Trace); 57 Akonadi2::Log::setDebugOutputLevel(Akonadi2::Log::Trace);
26 auto factory = Akonadi2::ResourceFactory::load("org.kde.maildir"); 58 auto factory = Akonadi2::ResourceFactory::load("org.kde.maildir");
27 QVERIFY(factory); 59 QVERIFY(factory);
@@ -29,7 +61,7 @@ private Q_SLOTS:
29 Akonadi2::ApplicationDomain::AkonadiResource resource; 61 Akonadi2::ApplicationDomain::AkonadiResource resource;
30 resource.setProperty("identifier", "org.kde.maildir.instance1"); 62 resource.setProperty("identifier", "org.kde.maildir.instance1");
31 resource.setProperty("type", "org.kde.maildir"); 63 resource.setProperty("type", "org.kde.maildir");
32 resource.setProperty("path", "/work/build/local-mail"); 64 resource.setProperty("path", targetPath);
33 Akonadi2::Store::create(resource).exec().waitForFinished(); 65 Akonadi2::Store::create(resource).exec().waitForFinished();
34 } 66 }
35 67
@@ -57,7 +89,60 @@ private Q_SLOTS:
57 Akonadi2::Store::synchronize(query).exec().waitForFinished(); 89 Akonadi2::Store::synchronize(query).exec().waitForFinished();
58 90
59 auto model = Akonadi2::Store::loadModel<Akonadi2::ApplicationDomain::Folder>(query); 91 auto model = Akonadi2::Store::loadModel<Akonadi2::ApplicationDomain::Folder>(query);
60 QTRY_VERIFY(model->rowCount(QModelIndex()) > 1); 92 QTRY_VERIFY(model->data(QModelIndex(), Akonadi2::Store::ChildrenFetchedRole).toBool());
93 QVERIFY(model->rowCount(QModelIndex()) > 1);
94 }
95
96 void testListFolderTree()
97 {
98 Akonadi2::Query query;
99 query.resources << "org.kde.maildir.instance1";
100 query.syncOnDemand = true;
101 query.processAll = true;
102 query.parentProperty = "parent";
103
104 //Ensure all local data is processed
105 Akonadi2::Store::synchronize(query).exec().waitForFinished();
106
107 auto model = Akonadi2::Store::loadModel<Akonadi2::ApplicationDomain::Folder>(query);
108 QTRY_VERIFY(model->data(QModelIndex(), Akonadi2::Store::ChildrenFetchedRole).toBool());
109 QCOMPARE(model->rowCount(QModelIndex()), 1);
110 auto parentIndex = model->index(0, 0, QModelIndex());
111 model->fetchMore(parentIndex);
112 QTRY_VERIFY(model->data(parentIndex, Akonadi2::Store::ChildrenFetchedRole).toBool());
113 QCOMPARE(model->rowCount(parentIndex), 1);
114 }
115
116 void testListMailsOfFolder()
117 {
118 {
119 Akonadi2::Query query;
120 query.resources << "org.kde.maildir.instance1";
121 query.syncOnDemand = true;
122 query.processAll = true;
123
124 //Ensure all local data is processed
125 Akonadi2::Store::synchronize(query).exec().waitForFinished();
126 }
127 QByteArray folderIdentifier;
128 {
129 Akonadi2::Query query;
130 query.resources << "org.kde.maildir.instance1";
131 query.requestedProperties << "folder" << "name";
132
133 auto model = Akonadi2::Store::loadModel<Akonadi2::ApplicationDomain::Folder>(query);
134 QTRY_VERIFY(model->data(QModelIndex(), Akonadi2::Store::ChildrenFetchedRole).toBool());
135 QVERIFY(model->rowCount(QModelIndex()) > 1);
136 folderIdentifier = model->index(1, 0, QModelIndex()).data(Akonadi2::Store::DomainObjectRole).value<Akonadi2::ApplicationDomain::Folder::Ptr>()->identifier();
137 }
138
139 Akonadi2::Query query;
140 query.resources << "org.kde.maildir.instance1";
141 query.requestedProperties << "folder" << "summary";
142 query.propertyFilter.insert("folder", folderIdentifier);
143 auto mailModel = Akonadi2::Store::loadModel<Akonadi2::ApplicationDomain::Mail>(query);
144 QTRY_VERIFY(mailModel->data(QModelIndex(), Akonadi2::Store::ChildrenFetchedRole).toBool());
145 QVERIFY(mailModel->rowCount(QModelIndex()) >= 1);
61 } 146 }
62 147
63}; 148};