File indexing completed on 2025-11-30 08:19:15

0001 /*
0002    SPDX-FileCopyrightText: 2022-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "bannerinfolistsearchlinewidgettest.h"
0008 #include "bannerinfodialog/bannerinfolistsearchlinewidget.h"
0009 #include <QCheckBox>
0010 #include <QHBoxLayout>
0011 #include <QLineEdit>
0012 #include <QSignalSpy>
0013 #include <QTest>
0014 
0015 QTEST_MAIN(BannerInfoListSearchLineWidgetTest)
0016 BannerInfoListSearchLineWidgetTest::BannerInfoListSearchLineWidgetTest(QObject *parent)
0017     : QObject{parent}
0018 {
0019 }
0020 
0021 void BannerInfoListSearchLineWidgetTest::shouldHaveDefaultValues()
0022 {
0023     BannerInfoListSearchLineWidget w;
0024 
0025     auto mainLayout = w.findChild<QHBoxLayout *>(QStringLiteral("mainLayout"));
0026     QVERIFY(mainLayout);
0027     QCOMPARE(mainLayout->contentsMargins(), QMargins{});
0028 
0029     auto mSearchLineEdit = w.findChild<QLineEdit *>(QStringLiteral("mSearchLineEdit"));
0030     QVERIFY(mSearchLineEdit);
0031     QVERIFY(mSearchLineEdit->text().isEmpty());
0032     QVERIFY(!mSearchLineEdit->placeholderText().isEmpty());
0033     QVERIFY(mSearchLineEdit->isClearButtonEnabled());
0034 
0035     auto mOnlyUnReadCheckBox = w.findChild<QCheckBox *>(QStringLiteral("mOnlyUnReadCheckBox"));
0036     QVERIFY(mOnlyUnReadCheckBox);
0037     QVERIFY(!mOnlyUnReadCheckBox->isChecked());
0038 
0039     QVERIFY(w.searchText().isEmpty());
0040     QVERIFY(!w.showOnlyUnread());
0041 }
0042 
0043 void BannerInfoListSearchLineWidgetTest::shouldEmitFilterChanged()
0044 {
0045     BannerInfoListSearchLineWidget w;
0046     QSignalSpy filterChanged(&w, &BannerInfoListSearchLineWidget::filterChanged);
0047 
0048     auto mSearchLineEdit = w.findChild<QLineEdit *>(QStringLiteral("mSearchLineEdit"));
0049     mSearchLineEdit->setText(QStringLiteral("bla"));
0050     QCOMPARE(filterChanged.count(), 1);
0051 
0052     filterChanged.clear();
0053     mSearchLineEdit->setText(QString());
0054     QCOMPARE(filterChanged.count(), 1);
0055 
0056     filterChanged.clear();
0057     auto mOnlyUnReadCheckBox = w.findChild<QCheckBox *>(QStringLiteral("mOnlyUnReadCheckBox"));
0058     QTest::mouseClick(mOnlyUnReadCheckBox, Qt::LeftButton);
0059     QCOMPARE(filterChanged.count(), 1);
0060 }
0061 
0062 #include "moc_bannerinfolistsearchlinewidgettest.cpp"