diff options
author | Axel Spoerl <Axel.Spoerl@qt.io> | 2022-01-12 14:03:13 +0100 |
---|---|---|
committer | Axel Spoerl <Axel.Spoerl@qt.io> | 2022-01-20 22:10:39 +0100 |
commit | d99714e3166dccbcbf5218325ce8c4da6070a68a (patch) | |
tree | 8faa0428fbc65139fd2a9c59d013ef384047be37 /tests | |
parent | 6442fbafcd498d1c9946b612e1e35f4679d1b3c8 (diff) |
Add QCheckBox test in tst_baseline_widgets
Task-number: QTBUG-99748
Pick-to: 6.3
Change-Id: I45fe3b102fba4dd6a6f8cd08bab5543f12265aa7
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/baseline/widgets/tst_baseline_widgets.cpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/baseline/widgets/tst_baseline_widgets.cpp b/tests/baseline/widgets/tst_baseline_widgets.cpp index 6a3fb6d56c..70b2a32eac 100644 --- a/tests/baseline/widgets/tst_baseline_widgets.cpp +++ b/tests/baseline/widgets/tst_baseline_widgets.cpp @@ -52,6 +52,9 @@ private slots: void tst_QDial_data(); void tst_QDial(); + + void tst_QCheckbox_data(); + void tst_QCheckbox(); }; void tst_Widgets::tst_QSlider_data() @@ -254,6 +257,60 @@ void tst_Widgets::tst_QDial() takeStandardSnapshots(); } +void tst_Widgets::tst_QCheckbox_data() +{ + QTest::addColumn<QString>("text"); + QTest::addColumn<bool>("hasIcon"); + QTest::addColumn<bool>("isTriState"); + + QTest::newRow("SimpleCheckbox") << "" << false << false; + QTest::newRow("SimpleCheckboxWithIcon") << "" << true << false; + QTest::newRow("SimpleCheckboxWithText") << "checkBox" << false << false; + QTest::newRow("SimpleCheckboxWithTextAndIcon") << "checkBox with icon" << true << false; + QTest::newRow("SimpleTristate") << "" << false << true; + QTest::newRow("SimpleTristateWithText") << "tristateBox" << false << true; +} + +void tst_Widgets::tst_QCheckbox() +{ + QFETCH(QString, text); + QFETCH(bool, hasIcon); + QFETCH(bool, isTriState); + + QBoxLayout layout(QBoxLayout::TopToBottom); + QCheckBox box; + box.setTristate(isTriState); + + if (!text.isEmpty()) + box.setText(text); + + if (hasIcon) + box.setIcon(QApplication::style()->standardIcon(QStyle::SP_ComputerIcon)); + + layout.addWidget(&box); + testWindow()->setLayout(&layout); + takeStandardSnapshots(); + + do + { + const Qt::CheckState checkState = box.checkState(); + const QPoint clickTarget = box.rect().center(); + + const std::array titles = {"unChecked", "partiallyChecked", "checked"}; + const QString snapShotTitle = titles[checkState]; + + QTest::mousePress(&box,Qt::MouseButton::LeftButton, Qt::KeyboardModifiers(), clickTarget,0); + QVERIFY(box.isDown()); + QBASELINE_CHECK_DEFERRED(takeSnapshot(), (snapShotTitle + "_pressed").toLocal8Bit().constData()); + + QTest::mouseRelease(&box,Qt::MouseButton::LeftButton, Qt::KeyboardModifiers(), clickTarget,0); + QVERIFY(!box.isDown()); + QVERIFY(checkState != box.checkState()); + QBASELINE_CHECK_DEFERRED(takeSnapshot(), (snapShotTitle + "_released").toLocal8Bit().constData()); + + } while (box.checkState() != Qt::Unchecked); +} + #define main _realmain QTEST_MAIN(tst_Widgets) #undef main |