diff --git a/tests/auto/qtdesktop/data/tst_checkbox.qml b/tests/auto/qtdesktop/data/tst_checkbox.qml index 203ba3aa5a2a92622e0a228f865444385daba94f..8b4abedee9882f33e1f03a203bfd009fe391a16f 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 74c81dd97db514756eda1f97646efc1f53fe7e36..ba4445db2cb41190f60947ed090e711d5538f66f 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); + } } }