summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAxel Spoerl <Axel.Spoerl@qt.io>2022-01-12 14:03:13 +0100
committerAxel Spoerl <Axel.Spoerl@qt.io>2022-01-20 22:10:39 +0100
commitd99714e3166dccbcbf5218325ce8c4da6070a68a (patch)
tree8faa0428fbc65139fd2a9c59d013ef384047be37 /tests
parent6442fbafcd498d1c9946b612e1e35f4679d1b3c8 (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.cpp57
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