File indexing completed on 2024-05-12 05:12:43

0001 /*
0002   SPDX-FileCopyrightText: 2017-2024 Laurent Montel <montel@kde.org>
0003 
0004   SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "jobtrackersearchwidgettest.h"
0008 #include "jobtrackersearchwidget.h"
0009 #include <QCheckBox>
0010 #include <QComboBox>
0011 #include <QHBoxLayout>
0012 #include <QLineEdit>
0013 #include <QSignalSpy>
0014 #include <QTest>
0015 
0016 JobTrackerSearchWidgetTest::JobTrackerSearchWidgetTest(QObject *parent)
0017     : QObject(parent)
0018 {
0019 }
0020 
0021 JobTrackerSearchWidgetTest::~JobTrackerSearchWidgetTest() = default;
0022 
0023 void JobTrackerSearchWidgetTest::shouldHaveDefaultValue()
0024 {
0025     JobTrackerSearchWidget w;
0026     auto mainLayout = w.findChild<QHBoxLayout *>(QStringLiteral("mainlayout"));
0027     QVERIFY(mainLayout);
0028     int top = -1;
0029     int bottom = -1;
0030     int left = -1;
0031     int right = -1;
0032     mainLayout->getContentsMargins(&left, &top, &right, &bottom);
0033     QCOMPARE(top, 0);
0034     QCOMPARE(bottom, 0);
0035     QCOMPARE(left, 0);
0036     QCOMPARE(right, 0);
0037 
0038     auto mSearchLineEdit = w.findChild<QLineEdit *>(QStringLiteral("searchline"));
0039     QVERIFY(mSearchLineEdit);
0040     QVERIFY(mSearchLineEdit->isClearButtonEnabled());
0041     QVERIFY(mSearchLineEdit->text().isEmpty());
0042 
0043     auto mSelectColumn = w.findChild<QComboBox *>(QStringLiteral("selectcolumn"));
0044     QVERIFY(mSelectColumn);
0045     QCOMPARE(mSelectColumn->count(), 8);
0046     QCOMPARE(mSelectColumn->currentIndex(), 0);
0047 
0048     auto mSelectOnlyError = w.findChild<QCheckBox *>(QStringLiteral("selectonlyerror"));
0049     QVERIFY(mSelectOnlyError);
0050     QVERIFY(!mSelectOnlyError->text().isEmpty());
0051     QCOMPARE(mSelectOnlyError->checkState(), Qt::Unchecked);
0052 }
0053 
0054 void JobTrackerSearchWidgetTest::shouldEmitSignal()
0055 {
0056     JobTrackerSearchWidget w;
0057     QSignalSpy searchWidgetSignal(&w, &JobTrackerSearchWidget::searchTextChanged);
0058     auto mSearchLineEdit = w.findChild<QLineEdit *>(QStringLiteral("searchline"));
0059     const QString foo = QStringLiteral("foo");
0060     mSearchLineEdit->setText(foo);
0061     QCOMPARE(searchWidgetSignal.count(), 1);
0062     QCOMPARE(searchWidgetSignal.at(0).at(0).toString(), foo);
0063     mSearchLineEdit->clear();
0064     QCOMPARE(searchWidgetSignal.count(), 2);
0065     QCOMPARE(searchWidgetSignal.at(1).at(0).toString(), QString());
0066 }
0067 
0068 void JobTrackerSearchWidgetTest::shouldEmitColumnChanged()
0069 {
0070     JobTrackerSearchWidget w;
0071     QSignalSpy columnChangedSignal(&w, &JobTrackerSearchWidget::columnChanged);
0072     auto mSelectColumn = w.findChild<QComboBox *>(QStringLiteral("selectcolumn"));
0073     mSelectColumn->setCurrentIndex(2);
0074     QCOMPARE(columnChangedSignal.count(), 1);
0075 }
0076 
0077 void JobTrackerSearchWidgetTest::shouldEmitSelectOnlyErrorChanged()
0078 {
0079     JobTrackerSearchWidget w;
0080     QSignalSpy selectOnlyErrorChangedSignal(&w, &JobTrackerSearchWidget::selectOnlyErrorChanged);
0081     auto mSelectOnlyError = w.findChild<QCheckBox *>(QStringLiteral("selectonlyerror"));
0082     mSelectOnlyError->setChecked(true);
0083     QCOMPARE(selectOnlyErrorChangedSignal.count(), 1);
0084 }
0085 
0086 QTEST_MAIN(JobTrackerSearchWidgetTest)
0087 
0088 #include "moc_jobtrackersearchwidgettest.cpp"