diff options
author | Axel Spoerl <Axel.Spoerl@qt.io> | 2022-01-12 14:45:28 +0100 |
---|---|---|
committer | Axel Spoerl <Axel.Spoerl@qt.io> | 2022-01-21 12:49:35 +0100 |
commit | e81e91de853576838416c8b47536829ad463f1fe (patch) | |
tree | 6f9e938439841c58daae33f33e832a3a270624f5 | |
parent | f29566c5a41c127eacaf13f3dbfe4624e55bc83f (diff) |
Add QRadioButton test in tst_baseline_widgets
Task-number: QTBUG-99749
Pick-to: 6.3
Change-Id: I89e759e0943b0d1793728a65bfbae6e6b4d3167a
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
-rw-r--r-- | tests/baseline/widgets/tst_baseline_widgets.cpp | 70 |
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 |