summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAxel Spoerl <Axel.Spoerl@qt.io>2022-01-12 14:45:28 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-02-01 13:18:57 +0000
commit01a8fcdd4109a8652a2c45f7df5415e1696a5852 (patch)
treef3d2c6cf9507c49589aa69f558e1fb5e98d97b64 /tests
parente4aaa9b2a62ca62c766e7eef9d35719789818bae (diff)
Add QRadioButton test in tst_baseline_widgets
Task-number: QTBUG-99749 Change-Id: I89e759e0943b0d1793728a65bfbae6e6b4d3167a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit e81e91de853576838416c8b47536829ad463f1fe) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/baseline/widgets/tst_baseline_widgets.cpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/tests/baseline/widgets/tst_baseline_widgets.cpp b/tests/baseline/widgets/tst_baseline_widgets.cpp
index 70b2a32eac..7495e76a57 100644
--- a/tests/baseline/widgets/tst_baseline_widgets.cpp
+++ b/tests/baseline/widgets/tst_baseline_widgets.cpp
@@ -55,6 +55,9 @@ private slots:
void tst_QCheckbox_data();
void tst_QCheckbox();
+
+ void tst_QRadioButton_data();
+ void tst_QRadioButton();
};
void tst_Widgets::tst_QSlider_data()
@@ -311,6 +314,73 @@ void tst_Widgets::tst_QCheckbox()
} while (box.checkState() != Qt::Unchecked);
}
+void tst_Widgets::tst_QRadioButton_data()
+{
+ QTest::addColumn<QString>("text");
+ QTest::addColumn<bool>("hasIcon");
+
+ QTest::newRow("SimpleRadioButton") << "" << false;
+ QTest::newRow("RadioButtonWithText") << "RadioButton" << false;
+ QTest::newRow("SimpleRadioButtonWithIcon") << "" << true;
+ QTest::newRow("RadioButtonWithTextAndIcon") << "RadioButton" << true;
+}
+
+void tst_Widgets::tst_QRadioButton()
+{
+ QFETCH(QString,text);
+ QFETCH(bool,hasIcon);
+
+ QRadioButton button1(testWindow());
+
+ if (!text.isEmpty())
+ button1.setText(text);
+
+ if (hasIcon)
+ button1.setIcon(QApplication::style()->standardIcon(QStyle::SP_ComputerIcon));
+
+ button1.setChecked(false);
+
+ QRadioButton button2(testWindow());
+
+ if (!text.isEmpty())
+ button2.setText(text);
+
+ if (hasIcon)
+ button2.setIcon(QApplication::style()->standardIcon(QStyle::SP_ComputerIcon));
+
+ // button2 has to start checked for the following tests to work
+ button2.setChecked(true);
+
+ QBoxLayout box(QBoxLayout::TopToBottom);
+ box.addWidget(&button1);
+ box.addWidget(&button2);
+ takeStandardSnapshots();
+
+ const QPoint clickTarget = button1.rect().center();
+ QTest::mousePress(&button1,Qt::MouseButton::LeftButton, Qt::KeyboardModifiers(), clickTarget,0);
+ QVERIFY(button1.isDown());
+ QBASELINE_CHECK_DEFERRED(takeSnapshot(), "pressUnchecked");
+ QTest::mouseRelease(&button1,Qt::MouseButton::LeftButton, Qt::KeyboardModifiers(), clickTarget,0);
+ QVERIFY(!button1.isDown());
+
+ // button1 has grabbed the check from button2
+ QVERIFY(button1.isChecked());
+ QVERIFY(!button2.isChecked());
+ QBASELINE_CHECK_DEFERRED(takeSnapshot(), "releaseUnchecked");
+
+ // press and release checked button1 again
+ QTest::mousePress(&button1,Qt::MouseButton::LeftButton, Qt::KeyboardModifiers(), clickTarget,0);
+ QVERIFY(button1.isDown());
+ QBASELINE_CHECK_DEFERRED(takeSnapshot(), "pressChecked");
+ QTest::mouseRelease(&button1,Qt::MouseButton::LeftButton, Qt::KeyboardModifiers(), clickTarget,0);
+ QVERIFY(!button1.isDown());
+
+ // checkstate not supposed to change
+ QVERIFY(button1.isChecked());
+ QVERIFY(!button2.isChecked());
+ QBASELINE_CHECK_DEFERRED(takeSnapshot(), "releaseChecked");
+}
+
#define main _realmain
QTEST_MAIN(tst_Widgets)
#undef main