summaryrefslogtreecommitdiffstats
path: root/tests/querytest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/querytest.cpp')
-rw-r--r--tests/querytest.cpp90
1 files changed, 90 insertions, 0 deletions
diff --git a/tests/querytest.cpp b/tests/querytest.cpp
index 1584c48..ec6438d 100644
--- a/tests/querytest.cpp
+++ b/tests/querytest.cpp
@@ -14,6 +14,8 @@
14#include "testutils.h" 14#include "testutils.h"
15#include "applicationdomaintype.h" 15#include "applicationdomaintype.h"
16 16
17#include <KMime/Message>
18
17using namespace Sink; 19using namespace Sink;
18using namespace Sink::ApplicationDomain; 20using namespace Sink::ApplicationDomain;
19 21
@@ -1254,6 +1256,94 @@ private slots:
1254 VERIFYEXEC(Sink::Store::removeDataFromDisk(QByteArray("sink.dummy.instance1"))); 1256 VERIFYEXEC(Sink::Store::removeDataFromDisk(QByteArray("sink.dummy.instance1")));
1255 } 1257 }
1256 1258
1259 void testMailFulltextSubject()
1260 {
1261 // Setup
1262 {
1263 auto msg = KMime::Message::Ptr::create();
1264 msg->subject()->from7BitString("Subject To Search");
1265 msg->setBody("This is the searchable body.");
1266 msg->assemble();
1267 {
1268 Mail mail("sink.dummy.instance1");
1269 mail.setExtractedMessageId("test1");
1270 mail.setExtractedSubject("Subject To Search");
1271 mail.setFolder("folder1");
1272 mail.setMimeMessage(msg->encodedContent());
1273 VERIFYEXEC(Sink::Store::create<Mail>(mail));
1274 }
1275 {
1276 Mail mail("sink.dummy.instance1");
1277 mail.setExtractedMessageId("test2");
1278 mail.setFolder("folder2");
1279 mail.setExtractedSubject("Stuff");
1280 VERIFYEXEC(Sink::Store::create<Mail>(mail));
1281 }
1282 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue("sink.dummy.instance1"));
1283 }
1284
1285 // Test
1286 {
1287 Sink::Query query;
1288 query.resourceFilter("sink.dummy.instance1");
1289 query.filter<Mail::Subject>(QueryBase::Comparator(QString("Subject To Search"), QueryBase::Comparator::Fulltext));
1290 auto model = Sink::Store::loadModel<Mail>(query);
1291 QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool());
1292 QCOMPARE(model->rowCount(), 1);
1293 }
1294 {
1295 Sink::Query query;
1296 query.resourceFilter("sink.dummy.instance1");
1297 query.filter<Mail::Subject>(QueryBase::Comparator(QString("Subject"), QueryBase::Comparator::Fulltext));
1298 auto result = Sink::Store::read<Mail>(query);
1299 QCOMPARE(result.size(), 1);
1300 }
1301 {
1302 Sink::Query query;
1303 query.resourceFilter("sink.dummy.instance1");
1304 query.filter<Mail::Subject>(QueryBase::Comparator(QString("Search"), QueryBase::Comparator::Fulltext));
1305 auto result = Sink::Store::read<Mail>(query);
1306 QCOMPARE(result.size(), 1);
1307 }
1308 {
1309 Sink::Query query;
1310 query.resourceFilter("sink.dummy.instance1");
1311 query.filter<Mail::Subject>(QueryBase::Comparator(QString("search"), QueryBase::Comparator::Fulltext));
1312 auto result = Sink::Store::read<Mail>(query);
1313 QCOMPARE(result.size(), 1);
1314 }
1315 {
1316 Sink::Query query;
1317 query.resourceFilter("sink.dummy.instance1");
1318 query.filter<Mail::Subject>(QueryBase::Comparator(QString("sear*"), QueryBase::Comparator::Fulltext));
1319 auto result = Sink::Store::read<Mail>(query);
1320 QCOMPARE(result.size(), 1);
1321 }
1322 {
1323 Sink::Query query;
1324 query.resourceFilter("sink.dummy.instance1");
1325 query.filter<Mail::MimeMessage>(QueryBase::Comparator(QString("searchable"), QueryBase::Comparator::Fulltext));
1326 auto result = Sink::Store::read<Mail>(query);
1327 QCOMPARE(result.size(), 1);
1328 }
1329 {
1330 Sink::Query query;
1331 query.resourceFilter("sink.dummy.instance1");
1332 query.filter<Mail::Subject>(QueryBase::Comparator(QString("Subject"), QueryBase::Comparator::Fulltext));
1333 query.filter<Mail::Folder>("folder1");
1334 auto result = Sink::Store::read<Mail>(query);
1335 QCOMPARE(result.size(), 1);
1336 }
1337 {
1338 Sink::Query query;
1339 query.resourceFilter("sink.dummy.instance1");
1340 query.filter<Mail::Subject>(QueryBase::Comparator(QString("Subject"), QueryBase::Comparator::Fulltext));
1341 query.filter<Mail::Folder>("folder2");
1342 auto result = Sink::Store::read<Mail>(query);
1343 QCOMPARE(result.size(), 0);
1344 }
1345 }
1346
1257}; 1347};
1258 1348
1259QTEST_MAIN(QueryTest) 1349QTEST_MAIN(QueryTest)