From 752d32214f2b25786ab8daf9e34eefc771cb7565 Mon Sep 17 00:00:00 2001
From: Caroline Chao <caroline.chao@digia.com>
Date: Tue, 2 Apr 2013 10:26:52 +0200
Subject: [PATCH] Tests: Add test for activeFocusOnPress property

For
- SpinBox
- TextField
- TextArea
- ToolButton
- Button
- CheckBox
- RadioButton
- Slider

Change-Id: I36c82c5058cfc9493d9fdb8c96c6612b1f387c0f
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
---
 tests/auto/controls/data/tst_button.qml      | 18 ++++++++++++++++++
 tests/auto/controls/data/tst_checkbox.qml    | 11 +++++++++++
 tests/auto/controls/data/tst_radiobutton.qml | 11 +++++++++++
 tests/auto/controls/data/tst_slider.qml      | 12 ++++++++++++
 tests/auto/controls/data/tst_spinbox.qml     | 12 ++++++++++++
 tests/auto/controls/data/tst_textarea.qml    | 18 ++++++++++++++++++
 tests/auto/controls/data/tst_textfield.qml   | 17 +++++++++++++++++
 tests/auto/controls/data/tst_toolbutton.qml  | 18 ++++++++++++++++++
 8 files changed, 117 insertions(+)

diff --git a/tests/auto/controls/data/tst_button.qml b/tests/auto/controls/data/tst_button.qml
index 1efbd4e9d..a49a45797 100644
--- a/tests/auto/controls/data/tst_button.qml
+++ b/tests/auto/controls/data/tst_button.qml
@@ -41,6 +41,11 @@
 import QtQuick 2.1
 import QtTest 1.0
 
+Item {
+    id: container
+    width: 300
+    height: 300
+
 TestCase {
     id: testCase
     name: "Tests_Button"
@@ -98,4 +103,17 @@ TestCase {
         tmp.testAction.trigger()
         compare(clickSpy.count, 1)
     }
+
+    function test_activeFocusOnPress(){
+        var control = Qt.createQmlObject('import QtQuick.Controls 1.0; Button {x: 20; y: 20; width: 100; height: 50}', container, '')
+        control.activeFocusOnPress = false
+        verify(!control.activeFocus)
+        mouseClick(control, 30, 30)
+        verify(!control.activeFocus)
+        control.activeFocusOnPress = true
+        verify(!control.activeFocus)
+        mouseClick(control, 30, 30)
+        verify(control.activeFocus)
+    }
+}
 }
diff --git a/tests/auto/controls/data/tst_checkbox.qml b/tests/auto/controls/data/tst_checkbox.qml
index ae996d01e..ca12da3cf 100644
--- a/tests/auto/controls/data/tst_checkbox.qml
+++ b/tests/auto/controls/data/tst_checkbox.qml
@@ -219,5 +219,16 @@ Item {
             root.checkBox1.partiallyCheckedEnabled = false;
             root.checkBox2.partiallyCheckedEnabled = false;
         }
+
+        function test_activeFocusOnPress(){
+            checkBox.activeFocusOnPress = false
+            verify(!checkBox.activeFocus)
+            mouseClick(checkBox, checkBox.x + 1, checkBox.y + 1)
+            verify(!checkBox.activeFocus)
+            checkBox.activeFocusOnPress = true
+            verify(!checkBox.activeFocus)
+            mouseClick(checkBox, checkBox.x + 1, checkBox.y + 1)
+            verify(checkBox.activeFocus)
+        }
     }
 }
diff --git a/tests/auto/controls/data/tst_radiobutton.qml b/tests/auto/controls/data/tst_radiobutton.qml
index c2e6bffd2..4b036d8de 100644
--- a/tests/auto/controls/data/tst_radiobutton.qml
+++ b/tests/auto/controls/data/tst_radiobutton.qml
@@ -171,5 +171,16 @@ Item {
             compare(root.radioButton1.checked, true);
             compare(root.radioButton2.checked, false);
         }
+
+        function test_activeFocusOnPress(){
+            radioButton.activeFocusOnPress = false
+            verify(!radioButton.activeFocus)
+            mouseClick(radioButton, radioButton.x + 1, radioButton.y + 1)
+            verify(!radioButton.activeFocus)
+            radioButton.activeFocusOnPress = true
+            verify(!radioButton.activeFocus)
+            mouseClick(radioButton, radioButton.x + 1, radioButton.y + 1)
+            verify(radioButton.activeFocus)
+        }
     }
 }
diff --git a/tests/auto/controls/data/tst_slider.qml b/tests/auto/controls/data/tst_slider.qml
index eb8ba5a6c..b6f60c558 100644
--- a/tests/auto/controls/data/tst_slider.qml
+++ b/tests/auto/controls/data/tst_slider.qml
@@ -138,5 +138,17 @@ Item {
             compare(slider.value, slider.maximumValue)
 
         }
+
+        function test_activeFocusOnPress(){
+            var control = Qt.createQmlObject('import QtQuick.Controls 1.0; Slider {x: 20; y: 20; width: 100; height: 50}', container, '')
+            control.activeFocusOnPress = false
+            verify(!control.activeFocus)
+            mouseClick(control, 30, 30)
+            verify(!control.activeFocus)
+            control.activeFocusOnPress = true
+            verify(!control.activeFocus)
+            mousePress(control, 30, 30)
+            verify(control.activeFocus)
+        }
     }
 }
diff --git a/tests/auto/controls/data/tst_spinbox.qml b/tests/auto/controls/data/tst_spinbox.qml
index 5994b451e..53615c711 100644
--- a/tests/auto/controls/data/tst_spinbox.qml
+++ b/tests/auto/controls/data/tst_spinbox.qml
@@ -267,6 +267,18 @@ Item {
             compare(spinbox.value, -1000);
         }
 
+        function test_activeFocusOnPress(){
+            var spinbox = Qt.createQmlObject('import QtQuick.Controls 1.0; SpinBox {x: 20; y: 20; width: 100; height: 50}', container, '')
+            spinbox.activeFocusOnPress = false
+            verify(!spinbox.activeFocus)
+            mouseClick(spinbox, 30, 30)
+            verify(!spinbox.activeFocus)
+            spinbox.activeFocusOnPress = true
+            verify(!spinbox.activeFocus)
+            mouseClick(spinbox, 30, 30)
+            verify(spinbox.activeFocus)
+        }
+
         function test_ImplicitSize() // Verify if we correctly grow and shrink depending on contents
         {
             var spinbox = Qt.createQmlObject('import QtQuick.Controls 1.0; SpinBox {}', container, '')
diff --git a/tests/auto/controls/data/tst_textarea.qml b/tests/auto/controls/data/tst_textarea.qml
index 27f68a1a2..945b8aa48 100644
--- a/tests/auto/controls/data/tst_textarea.qml
+++ b/tests/auto/controls/data/tst_textarea.qml
@@ -41,6 +41,11 @@
 import QtQuick 2.1
 import QtTest 1.0
 
+Item {
+    id: container
+    width: 300
+    height: 300
+
 TestCase {
     id: testCase
     name: "Tests_TextArea"
@@ -59,4 +64,17 @@ TestCase {
         textarea.append("name");
         compare(textarea.text, "my\nname")
     }
+
+    function test_activeFocusOnPress(){
+        var control = Qt.createQmlObject('import QtQuick.Controls 1.0; TextArea {x: 20; y: 20; width: 100; height: 50}', container, '')
+        control.activeFocusOnPress = false
+        verify(!control.activeFocus)
+        mouseClick(control, 30, 30)
+        verify(!control.activeFocus)
+        control.activeFocusOnPress = true
+        verify(!control.activeFocus)
+        mouseClick(control, 30, 30)
+        verify(control.activeFocus)
+    }
+}
 }
diff --git a/tests/auto/controls/data/tst_textfield.qml b/tests/auto/controls/data/tst_textfield.qml
index e9bd45410..ed2d5401a 100644
--- a/tests/auto/controls/data/tst_textfield.qml
+++ b/tests/auto/controls/data/tst_textfield.qml
@@ -41,6 +41,10 @@
 import QtQuick 2.1
 import QtTest 1.0
 
+Item {
+    id: container
+    width: 300; height: 300
+
 TestCase {
     id: testCase
     name: "Tests_TextField"
@@ -243,4 +247,17 @@ TestCase {
         textfield.redo()
         compare(textfield.text, "this is not my text")
     }
+
+    function test_activeFocusOnPress(){
+        var control = Qt.createQmlObject('import QtQuick.Controls 1.0; TextField {x: 20; y: 20; width: 100; height: 50}', container, '')
+        control.activeFocusOnPress = false
+        verify(!control.activeFocus)
+        mouseClick(control, 30, 30)
+        verify(!control.activeFocus)
+        control.activeFocusOnPress = true
+        verify(!control.activeFocus)
+        mouseClick(control, 30, 30)
+        verify(control.activeFocus)
+    }
+}
 }
diff --git a/tests/auto/controls/data/tst_toolbutton.qml b/tests/auto/controls/data/tst_toolbutton.qml
index e488d03b3..8400b552f 100644
--- a/tests/auto/controls/data/tst_toolbutton.qml
+++ b/tests/auto/controls/data/tst_toolbutton.qml
@@ -41,6 +41,11 @@
 import QtQuick 2.1
 import QtTest 1.0
 
+Item {
+    id: container
+    width: 300
+    height: 300
+
 TestCase {
     id: testCase
     name: "Tests_ToolButton"
@@ -51,5 +56,18 @@ TestCase {
     function test_createToolButton() {
         var toolButton = Qt.createQmlObject('import QtQuick.Controls 1.0; ToolButton {}', testCase, '');
     }
+
+    function test_activeFocusOnPress(){
+        var control = Qt.createQmlObject('import QtQuick.Controls 1.0; ToolButton {x: 20; y: 20; width: 100; height: 50}', container, '')
+        control.activeFocusOnPress = false
+        verify(!control.activeFocus)
+        mouseClick(control, 30, 30)
+        verify(!control.activeFocus)
+        control.activeFocusOnPress = true
+        verify(!control.activeFocus)
+        mouseClick(control, 30, 30)
+        verify(control.activeFocus)
+    }
+}
 }
 
-- 
GitLab