From ae7dbf2bda131fada11f1251dbedff1ed7129144 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 7 May 2018 10:17:06 +0200 Subject: Filter by sender --- tests/querytest.cpp | 57 +++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 42 insertions(+), 15 deletions(-) (limited to 'tests') diff --git a/tests/querytest.cpp b/tests/querytest.cpp index 81b7cdc..a36dd5e 100644 --- a/tests/querytest.cpp +++ b/tests/querytest.cpp @@ -1346,11 +1346,11 @@ private slots: auto msg = KMime::Message::Ptr::create(); msg->subject()->from7BitString("Subject To Search"); msg->setBody("This is the searchable body."); + msg->from()->from7BitString("\"The Sender\""); msg->assemble(); { Mail mail("sink.dummy.instance1"); mail.setExtractedMessageId("test1"); - mail.setExtractedSubject("Subject To Search"); mail.setFolder("folder1"); mail.setMimeMessage(msg->encodedContent()); VERIFYEXEC(Sink::Store::create(mail)); @@ -1378,52 +1378,79 @@ private slots: Sink::Query query; query.resourceFilter("sink.dummy.instance1"); query.filter(QueryBase::Comparator(QString("Subject"), QueryBase::Comparator::Fulltext)); - auto result = Sink::Store::read(query); - QCOMPARE(result.size(), 1); + QCOMPARE(Sink::Store::read(query).size(), 1); } + //Case-insensitive { Sink::Query query; query.resourceFilter("sink.dummy.instance1"); query.filter(QueryBase::Comparator(QString("Search"), QueryBase::Comparator::Fulltext)); - auto result = Sink::Store::read(query); - QCOMPARE(result.size(), 1); + QCOMPARE(Sink::Store::read(query).size(), 1); } + //Case-insensitive { Sink::Query query; query.resourceFilter("sink.dummy.instance1"); query.filter(QueryBase::Comparator(QString("search"), QueryBase::Comparator::Fulltext)); - auto result = Sink::Store::read(query); - QCOMPARE(result.size(), 1); + QCOMPARE(Sink::Store::read(query).size(), 1); } + //Wildcard match { Sink::Query query; query.resourceFilter("sink.dummy.instance1"); query.filter(QueryBase::Comparator(QString("sear*"), QueryBase::Comparator::Fulltext)); - auto result = Sink::Store::read(query); - QCOMPARE(result.size(), 1); + QCOMPARE(Sink::Store::read(query).size(), 1); } + //Filter by body { Sink::Query query; query.resourceFilter("sink.dummy.instance1"); query.filter(QueryBase::Comparator(QString("searchable"), QueryBase::Comparator::Fulltext)); - auto result = Sink::Store::read(query); - QCOMPARE(result.size(), 1); + QCOMPARE(Sink::Store::read(query).size(), 1); } + //Filter by folder { Sink::Query query; query.resourceFilter("sink.dummy.instance1"); query.filter(QueryBase::Comparator(QString("Subject"), QueryBase::Comparator::Fulltext)); query.filter("folder1"); - auto result = Sink::Store::read(query); - QCOMPARE(result.size(), 1); + QCOMPARE(Sink::Store::read(query).size(), 1); } + //Filter by folder { Sink::Query query; query.resourceFilter("sink.dummy.instance1"); query.filter(QueryBase::Comparator(QString("Subject"), QueryBase::Comparator::Fulltext)); query.filter("folder2"); - auto result = Sink::Store::read(query); - QCOMPARE(result.size(), 0); + QCOMPARE(Sink::Store::read(query).size(), 0); + } + //Filter by sender + { + Sink::Query query; + query.resourceFilter("sink.dummy.instance1"); + query.filter({}, Sink::QueryBase::Comparator(QString("sender"), Sink::QueryBase::Comparator::Fulltext)); + QCOMPARE(Sink::Store::read(query).size(), 1); + } + //Filter by sender + { + Sink::Query query; + query.resourceFilter("sink.dummy.instance1"); + query.filter({}, Sink::QueryBase::Comparator(QString("Sender"), Sink::QueryBase::Comparator::Fulltext)); + QCOMPARE(Sink::Store::read(query).size(), 1); + } + //Filter by sender + { + Sink::Query query; + query.resourceFilter("sink.dummy.instance1"); + query.filter({}, Sink::QueryBase::Comparator(QString("sender@example"), Sink::QueryBase::Comparator::Fulltext)); + QCOMPARE(Sink::Store::read(query).size(), 1); + } + //Filter by sender + { + Sink::Query query; + query.resourceFilter("sink.dummy.instance1"); + query.filter({}, Sink::QueryBase::Comparator(QString("The Sender"), Sink::QueryBase::Comparator::Fulltext)); + QCOMPARE(Sink::Store::read(query).size(), 1); } } -- cgit v1.2.3