File indexing completed on 2024-09-22 04:49:56

0001 /*
0002   SPDX-FileCopyrightText: 2015-2024 Laurent Montel <montel@kde.org>
0003 
0004   SPDX-License-Identifier: GPL-2.0-only
0005 */
0006 
0007 #include "filteractionaddtoaddressbooktest.h"
0008 #include "../filteractions/filteractionaddtoaddressbook.h"
0009 #include <QComboBox>
0010 #include <QLabel>
0011 #include <QTest>
0012 #include <QWidget>
0013 
0014 #include <Akonadi/CollectionComboBox>
0015 #include <Akonadi/TagWidget>
0016 
0017 FilterActionAddToAddressBookTest::FilterActionAddToAddressBookTest(QObject *parent)
0018     : QObject(parent)
0019 {
0020 }
0021 
0022 FilterActionAddToAddressBookTest::~FilterActionAddToAddressBookTest() = default;
0023 
0024 void FilterActionAddToAddressBookTest::shouldHaveDefaultValue()
0025 {
0026     MailCommon::FilterActionAddToAddressBook filter;
0027     QWidget *w = filter.createParamWidget(nullptr);
0028 
0029     auto headerCombo = w->findChild<QComboBox *>(QStringLiteral("HeaderComboBox"));
0030     QVERIFY(headerCombo);
0031 
0032     auto label = w->findChild<QLabel *>(QStringLiteral("label_with_category"));
0033     QVERIFY(label);
0034 
0035     auto categoryEdit = w->findChild<Akonadi::TagWidget *>(QStringLiteral("CategoryEdit"));
0036     QVERIFY(categoryEdit);
0037 
0038     label = w->findChild<QLabel *>(QStringLiteral("label_in_addressbook"));
0039     QVERIFY(label);
0040 
0041     auto collectionComboBox = w->findChild<Akonadi::CollectionComboBox *>(QStringLiteral("AddressBookComboBox"));
0042     QVERIFY(collectionComboBox);
0043 }
0044 
0045 void FilterActionAddToAddressBookTest::shouldReportErrorWhenArgumentIsEmpty()
0046 {
0047     MailCommon::FilterActionAddToAddressBook filter;
0048     KMime::Message::Ptr msgPtr = KMime::Message::Ptr(new KMime::Message());
0049     Akonadi::Item item;
0050     item.setPayload<KMime::Message::Ptr>(msgPtr);
0051     MailCommon::ItemContext context(item, false);
0052 
0053     filter.argsFromString(QString());
0054     QVERIFY(filter.isEmpty());
0055     QCOMPARE(filter.process(context, false), MailCommon::FilterAction::ErrorButGoOn);
0056     QCOMPARE(context.needsPayloadStore(), false);
0057     QCOMPARE(context.needsFlagStore(), false);
0058     QCOMPARE(context.needsFullPayload(), false);
0059 }
0060 
0061 void FilterActionAddToAddressBookTest::shouldReportErrorWhenCollectionIsInvalid()
0062 {
0063     MailCommon::FilterActionAddToAddressBook filter;
0064     KMime::Message::Ptr msgPtr = KMime::Message::Ptr(new KMime::Message());
0065     Akonadi::Item item;
0066     item.setPayload<KMime::Message::Ptr>(msgPtr);
0067     MailCommon::ItemContext context(item, false);
0068 
0069     filter.argsFromString(QStringLiteral("foo\t-1\tddd"));
0070     QVERIFY(filter.isEmpty());
0071     QCOMPARE(filter.process(context, false), MailCommon::FilterAction::ErrorButGoOn);
0072     QCOMPARE(context.needsPayloadStore(), false);
0073     QCOMPARE(context.needsFlagStore(), false);
0074     QCOMPARE(context.needsFullPayload(), false);
0075 }
0076 
0077 void FilterActionAddToAddressBookTest::shouldRequiresPart()
0078 {
0079     MailCommon::FilterActionAddToAddressBook filter;
0080     QCOMPARE(filter.requiredPart(), MailCommon::SearchRule::Envelope);
0081 }
0082 
0083 QTEST_MAIN(FilterActionAddToAddressBookTest)
0084 
0085 #include "moc_filteractionaddtoaddressbooktest.cpp"