From e8a53a5a3a4b3d8069e69eba7f96e1f0b47699b6 Mon Sep 17 00:00:00 2001 From: Mitch Curtis <mitch.curtis@digia.com> Date: Thu, 21 Feb 2013 15:02:09 +0100 Subject: [PATCH] Add exclusiveGroup tests to RadioButton and CheckBox. Change-Id: I677e21f7e53e5fe38429659e372b8994bfb143d1 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> --- tests/auto/qtdesktop/data/tst_checkbox.qml | 38 ++++++++++++++++++ tests/auto/qtdesktop/data/tst_radiobutton.qml | 40 ++++++++++++++++++- 2 files changed, 77 insertions(+), 1 deletion(-) diff --git a/tests/auto/qtdesktop/data/tst_checkbox.qml b/tests/auto/qtdesktop/data/tst_checkbox.qml index 203ba3aa5..8b4abedee 100644 --- a/tests/auto/qtdesktop/data/tst_checkbox.qml +++ b/tests/auto/qtdesktop/data/tst_checkbox.qml @@ -161,5 +161,43 @@ Item { compare(checkBox.checkedState, expectedStates[i]); } } + + function test_exclusiveGroup() { + var root = Qt.createQmlObject("import QtQuick 2.0; import QtDesktop 1.0; \n" + + "Row { \n" + + " property alias checkBox1: checkBox1 \n" + + " property alias checkBox2: checkBox2 \n" + + " property alias group: group \n" + + " ExclusiveGroup { id: group } \n" + + " CheckBox { id: checkBox1; checked: true; exclusiveGroup: group } \n" + + " CheckBox { id: checkBox2; exclusiveGroup: group } \n" + + "}", container, ""); + + compare(root.checkBox1.exclusiveGroup, root.group); + compare(root.checkBox2.exclusiveGroup, root.group); + compare(root.checkBox1.checked, true); + compare(root.checkBox2.checked, false); + + root.forceActiveFocus(); + + signalSpy.target = root.checkBox2; + signalSpy.signalName = "clicked"; + compare(signalSpy.count, 0); + + mouseClick(root.checkBox2, root.checkBox2.x, root.checkBox2.y, Qt.LeftButton); + compare(signalSpy.count, 1); + compare(root.checkBox1.checked, false); + compare(root.checkBox2.checked, true); + + signalSpy.clear(); + signalSpy.target = root.checkBox1; + signalSpy.signalName = "clicked"; + compare(signalSpy.count, 0); + + mouseClick(root.checkBox1, root.checkBox1.x, root.checkBox1.y, Qt.LeftButton); + compare(signalSpy.count, 1); + compare(root.checkBox1.checked, true); + compare(root.checkBox2.checked, false); + } } } diff --git a/tests/auto/qtdesktop/data/tst_radiobutton.qml b/tests/auto/qtdesktop/data/tst_radiobutton.qml index 74c81dd97..ba4445db2 100644 --- a/tests/auto/qtdesktop/data/tst_radiobutton.qml +++ b/tests/auto/qtdesktop/data/tst_radiobutton.qml @@ -58,7 +58,7 @@ Item { } function init() { - radioButton = Qt.createQmlObject('import QtDesktop 1.0; RadioButton {}', container, ''); + radioButton = Qt.createQmlObject("import QtDesktop 1.0; RadioButton {}", container, ""); } function cleanup() { @@ -131,5 +131,43 @@ Item { compare(radioButton.checked, expectedStates[i]); } } + + function test_exclusiveGroup() { + var root = Qt.createQmlObject("import QtQuick 2.0; import QtDesktop 1.0; \n" + + "Row { \n" + + " property alias radioButton1: radioButton1 \n" + + " property alias radioButton2: radioButton2 \n" + + " property alias group: group \n" + + " ExclusiveGroup { id: group } \n" + + " RadioButton { id: radioButton1; checked: true; exclusiveGroup: group } \n" + + " RadioButton { id: radioButton2; exclusiveGroup: group } \n" + + "}", container, ""); + + compare(root.radioButton1.exclusiveGroup, root.group); + compare(root.radioButton2.exclusiveGroup, root.group); + compare(root.radioButton1.checked, true); + compare(root.radioButton2.checked, false); + + root.forceActiveFocus(); + + signalSpy.target = root.radioButton2; + signalSpy.signalName = "clicked"; + compare(signalSpy.count, 0); + + mouseClick(root.radioButton2, root.radioButton2.x, root.radioButton2.y, Qt.LeftButton); + compare(signalSpy.count, 1); + compare(root.radioButton1.checked, false); + compare(root.radioButton2.checked, true); + + signalSpy.clear(); + signalSpy.target = root.radioButton1; + signalSpy.signalName = "clicked"; + compare(signalSpy.count, 0); + + mouseClick(root.radioButton1, root.radioButton1.x, root.radioButton1.y, Qt.LeftButton); + compare(signalSpy.count, 1); + compare(root.radioButton1.checked, true); + compare(root.radioButton2.checked, false); + } } } -- GitLab