• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

mailcommon

  • sources
  • kde-4.14
  • kdepim
  • mailcommon
  • search
  • autotests
searchruledatetest.cpp
Go to the documentation of this file.
1 /*
2  Copyright (c) 2015 Montel Laurent <montel@kde.org>
3 
4  This program is free software; you can redistribute it and/or modify it
5  under the terms of the GNU General Public License, version 2, as
6  published by the Free Software Foundation.
7 
8  This program is distributed in the hope that it will be useful, but
9  WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License along
14  with this program; if not, write to the Free Software Foundation, Inc.,
15  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16 */
17 
18 #include "searchruledatetest.h"
19 #include "../searchrule/searchruledate.h"
20 #include <qtest_kde.h>
21 #include <KMime/Message>
22 Q_DECLARE_METATYPE(MailCommon::SearchRule::Function)
23 SearchRuleDateTest::SearchRuleDateTest(QObject *parent)
24  : QObject(parent)
25 {
26 
27 }
28 
29 void SearchRuleDateTest::shouldHaveDefaultValue()
30 {
31  MailCommon::SearchRuleDate searchrule;
32  QCOMPARE(searchrule.field(), QByteArray());
33  QCOMPARE(searchrule.function(), MailCommon::SearchRule::FuncContains);
34  QVERIFY(searchrule.contents().isEmpty());
35  QVERIFY(searchrule.isEmpty());
36 }
37 
38 void SearchRuleDateTest::shouldRequiresPart()
39 {
40  MailCommon::SearchRuleDate searchrule;
41  QCOMPARE(searchrule.requiredPart(), MailCommon::SearchRule::Envelope);
42 }
43 
44 void SearchRuleDateTest::shouldBeEmpty()
45 {
46  MailCommon::SearchRuleDate searchrule("<date>", MailCommon::SearchRule::FuncEquals, QString());
47  QVERIFY(searchrule.isEmpty());
48 
49  MailCommon::SearchRuleDate searchrule2("<date>", MailCommon::SearchRule::FuncEquals, QDate(2015,5,5).toString(Qt::ISODate));
50  QVERIFY(!searchrule2.isEmpty());
51 }
52 
53 void SearchRuleDateTest::shouldMatchDate_data()
54 {
55  QTest::addColumn<MailCommon::SearchRule::Function>("function");
56  QTest::addColumn<QDate>("maildate");
57  QTest::addColumn<QDate>("matchdate");
58  QTest::addColumn<bool>("match");
59  QTest::newRow("equaldontmatch") << MailCommon::SearchRule::FuncEquals << QDate(2015,5,5) << QDate(2015,5,6) << false;
60  QTest::newRow("equalmatch") << MailCommon::SearchRule::FuncEquals << QDate(2015,5,5) << QDate(2015,5,5) << true;
61  QTest::newRow("notequalnotmatch") << MailCommon::SearchRule::FuncNotEqual << QDate(2015,5,5) << QDate(2015,5,5) << false;
62  QTest::newRow("notequalmatch") << MailCommon::SearchRule::FuncNotEqual << QDate(2015,5,5) << QDate(2015,5,6) << true;
63 
64  QTest::newRow("isgreatermatch") << MailCommon::SearchRule::FuncIsGreater << QDate(2015,5,5) << QDate(2015,5,4) << true;
65  QTest::newRow("isgreaternotmatch") << MailCommon::SearchRule::FuncIsGreater << QDate(2015,5,5) << QDate(2015,5,6) << false;
66  QTest::newRow("isgreaternotmatchequalvalue") << MailCommon::SearchRule::FuncIsGreater << QDate(2015,5,5) << QDate(2015,5,5) << false;
67 
68  QTest::newRow("islessorequalmatch") << MailCommon::SearchRule::FuncIsLessOrEqual << QDate(2015,5,5) << QDate(2015,5,6) << true;
69  QTest::newRow("islessorequalmatch equal") << MailCommon::SearchRule::FuncIsLessOrEqual << QDate(2015,5,5) << QDate(2015,5,5) << true;
70  QTest::newRow("islessorequalnotmatch") << MailCommon::SearchRule::FuncIsLessOrEqual << QDate(2015,5,7) << QDate(2015,5,5) << false;
71 
72 
73  QTest::newRow("islessmatch") << MailCommon::SearchRule::FuncIsLess << QDate(2015,5,4) << QDate(2015,5,5) << true;
74  QTest::newRow("islessnotmatch") << MailCommon::SearchRule::FuncIsLess << QDate(2015,5,5) << QDate(2015,5,4) << false;
75  QTest::newRow("islessnotmatchequalvalue") << MailCommon::SearchRule::FuncIsLess << QDate(2015,5,5) << QDate(2015,5,5) << false;
76 
77 
78  QTest::newRow("isgreaterorequalmatch") << MailCommon::SearchRule::FuncIsGreaterOrEqual << QDate(2015,5,6) << QDate(2015,5,5) << true;
79  QTest::newRow("isgreaterorequalmatch equal") << MailCommon::SearchRule::FuncIsGreaterOrEqual << QDate(2015,5,5) << QDate(2015,5,5) << true;
80  QTest::newRow("isgreaterorequalnotmatch") << MailCommon::SearchRule::FuncIsGreaterOrEqual << QDate(2015,5,5) << QDate(2015,5,7) << false;
81 }
82 
83 void SearchRuleDateTest::shouldMatchDate()
84 {
85  QFETCH(MailCommon::SearchRule::Function, function);
86  QFETCH(QDate, maildate);
87  QFETCH(QDate, matchdate);
88  QFETCH(bool, match);
89  MailCommon::SearchRuleDate searchrule("<date>", function, matchdate.toString(Qt::ISODate));
90 
91  KMime::Message::Ptr msgPtr = KMime::Message::Ptr(new KMime::Message());
92  msgPtr->date(true)->setDateTime(KDateTime(maildate));
93  Akonadi::Item item;
94  item.setPayload<KMime::Message::Ptr>(msgPtr);
95  QCOMPARE(searchrule.matches(item), match);
96 }
97 
98 
99 QTEST_KDEMAIN(SearchRuleDateTest, GUI)
MailCommon::SearchRuleDate::matches
virtual bool matches(const Akonadi::Item &item) const
Tries to match the rule against the KMime::Message in the given item.
Definition: searchruledate.cpp:49
MailCommon::SearchRule::FuncIsGreaterOrEqual
Definition: searchrule.h:66
QByteArray
MailCommon::SearchRuleDate::isEmpty
virtual bool isEmpty() const
Determines whether the rule is worth considering.
Definition: searchruledate.cpp:44
MailCommon::SearchRule::Function
Function
Describes operators for comparison of field and contents.
Definition: searchrule.h:55
MailCommon::SearchRule::FuncNotEqual
Definition: searchrule.h:60
QObject
MailCommon::SearchRule::contents
QString contents() const
Returns the contents of the rule.
Definition: searchrule.cpp:511
QString::isEmpty
bool isEmpty() const
SearchRuleDateTest
Definition: searchruledatetest.h:23
QDate
MailCommon::SearchRuleDate::requiredPart
virtual RequiredPart requiredPart() const
Returns the required part from the item that is needed for the search to operate. ...
Definition: searchruledate.cpp:95
QString
MailCommon::SearchRule::field
QByteArray field() const
Returns the message header field name (without the trailing ':').
Definition: searchrule.cpp:501
searchruledatetest.h
MailCommon::SearchRule::Envelope
Definition: searchrule.h:80
MailCommon::SearchRule::FuncContains
Definition: searchrule.h:57
MailCommon::SearchRule::function
Function function() const
Returns the filter function of the rule.
Definition: searchrule.cpp:491
MailCommon::SearchRule::FuncIsGreater
Definition: searchrule.h:63
MailCommon::SearchRule::FuncIsLessOrEqual
Definition: searchrule.h:64
QTest::toString
char * toString(const T &value)
QTest::newRow
QTestData & newRow(const char *dataTag)
MailCommon::SearchRuleDate
Definition: searchruledate.h:25
MailCommon::SearchRule::FuncIsLess
Definition: searchrule.h:65
MailCommon::SearchRule::FuncEquals
Definition: searchrule.h:59
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:31:41 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

mailcommon

Skip menu "mailcommon"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer
  • pimprint

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal