File indexing completed on 2025-01-26 04:49:05

0001 /*
0002    SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "confirmaddresswidgettest.h"
0008 #include "../confirmaddresswidget.h"
0009 #include <QLabel>
0010 #include <QListWidget>
0011 #include <QStandardPaths>
0012 #include <QTest>
0013 #include <QVBoxLayout>
0014 
0015 ConfirmAddressWidgetTest::ConfirmAddressWidgetTest(QObject *parent)
0016     : QObject(parent)
0017 {
0018     QStandardPaths::setTestModeEnabled(true);
0019 }
0020 
0021 ConfirmAddressWidgetTest::~ConfirmAddressWidgetTest() = default;
0022 
0023 void ConfirmAddressWidgetTest::shouldHaveDefaultValue()
0024 {
0025     ConfirmAddressWidget w;
0026     auto mainLayout = w.findChild<QVBoxLayout *>(QStringLiteral("mainlayout"));
0027     QVERIFY(mainLayout);
0028     QCOMPARE(mainLayout->contentsMargins(), QMargins());
0029 
0030     auto listEmails = w.findChild<QListWidget *>(QStringLiteral("listemails"));
0031     QVERIFY(listEmails);
0032     QCOMPARE(listEmails->count(), 0);
0033 
0034     auto lab = w.findChild<QLabel *>(QStringLiteral("label"));
0035     QVERIFY(lab);
0036     QVERIFY(!lab->text().isEmpty());
0037 }
0038 
0039 void ConfirmAddressWidgetTest::shouldAddAddress()
0040 {
0041     ConfirmAddressWidget w;
0042     auto listEmails = w.findChild<QListWidget *>(QStringLiteral("listemails"));
0043     const QStringList lst{QStringLiteral("foo"), QStringLiteral("bla"), QStringLiteral("blo")};
0044     w.setValidAddresses(lst);
0045     QCOMPARE(listEmails->count(), lst.count());
0046 }
0047 
0048 void ConfirmAddressWidgetTest::shouldAddValidAndInvalidAddresses()
0049 {
0050     ConfirmAddressWidget w;
0051     auto listEmails = w.findChild<QListWidget *>(QStringLiteral("listemails"));
0052     const QStringList lst{QStringLiteral("foo"), QStringLiteral("foo"), QStringLiteral("foo")};
0053     w.setValidAddresses(lst);
0054     w.setInvalidAddresses(lst);
0055     QCOMPARE(listEmails->count(), lst.count() * 2);
0056 }
0057 
0058 void ConfirmAddressWidgetTest::shouldHaveCheckableItem()
0059 {
0060     ConfirmAddressWidget w;
0061     auto listEmails = w.findChild<QListWidget *>(QStringLiteral("listemails"));
0062     const QStringList lst{QStringLiteral("foo"), QStringLiteral("foo"), QStringLiteral("foo")};
0063     w.setValidAddresses(lst);
0064     for (int i = 0; i < listEmails->count(); ++i) {
0065         QListWidgetItem *item = listEmails->item(i);
0066         QCOMPARE(static_cast<bool>(item->flags() & Qt::ItemIsUserCheckable), false);
0067     }
0068     listEmails->clear();
0069     w.setInvalidAddresses(lst);
0070     for (int i = 0; i < listEmails->count(); ++i) {
0071         QListWidgetItem *item = listEmails->item(i);
0072         QCOMPARE(static_cast<bool>(item->flags() & Qt::ItemIsUserCheckable), true);
0073     }
0074 }
0075 
0076 void ConfirmAddressWidgetTest::shouldGetWhileListEmails()
0077 {
0078     ConfirmAddressWidget w;
0079     auto listEmails = w.findChild<QListWidget *>(QStringLiteral("listemails"));
0080     const QStringList validLst{QStringLiteral("foo"), QStringLiteral("foo"), QStringLiteral("foo")};
0081     const QStringList invalidLst{QStringLiteral("boo"), QStringLiteral("boo2"), QStringLiteral("boo3")};
0082     w.setValidAddresses(validLst);
0083     w.setInvalidAddresses(invalidLst);
0084     for (int i = 0; i < listEmails->count(); ++i) {
0085         QListWidgetItem *item = listEmails->item(i);
0086         if (item->flags() & Qt::ItemIsUserCheckable) {
0087             item->setCheckState(Qt::Checked);
0088         }
0089     }
0090     QCOMPARE(w.whiteListSelectedEmails(), invalidLst);
0091 }
0092 
0093 QTEST_MAIN(ConfirmAddressWidgetTest)
0094 
0095 #include "moc_confirmaddresswidgettest.cpp"