on xenial help sign in
make findChild also find invisible childs

This considerably increases the amount of items to be searched up to a level where testShell didn't finish any more with searching. Hence this commit also changes findChild to do a breadth-first instead of a depth-first search. Approved by PS Jenkins bot, Albert Astals Cid.

commit6554deae8caca034135329319f21c75e6fcc754e authorMichael Zanetti <michael.zanetti@canonical.com> dateFri 2 Aug 2013, 10:01 (13 years ago) parent1fbfcd779f9c30
2 files changed+11−5
tests/qmltests/Greeter/tst_Lockscreen.qml+1 tests/utils/modules/Unity/Test/UnityTestCase.qml+10−5
tests/qmltests/Greeter/tst_Lockscreen.qml+1
@@ -186,6 +186,7 @@ Rectangle {
186186 function test_unlock(data) {
187187 unlockedCheckBox.checked = false
188188 LightDM.Greeter.authenticate(data.username)
189+ waitForRendering(lockscreen)
189190
190191 var inputField = findChild(lockscreen, "pinentryField")
191192 if (data.alphanumeric) {
tests/utils/modules/Unity/Test/UnityTestCase.qml+10−5
@@ -72,11 +72,16 @@ TestCase {
7272 // Find an object with the given name recursively, starting
7373 // at the given object "obj"
7474 function findChild(obj,objectName) {
75− for (var i in obj.children) {
76− var child = obj.children[i];
77− if (child.objectName === objectName) return child;
78− var subChild = findChild(child,objectName);
79− if (subChild !== undefined) return subChild;
75+ var childs = new Array(0);
76+ childs.push(obj)
77+ while (childs.length > 0) {
78+ if (childs[0].objectName == objectName) {
79+ return childs[0]
80+ }
81+ for (var i in childs[0].data) {
82+ childs.push(childs[0].data[i])
83+ }
84+ childs.splice(0, 1);
8085 }
8186 return undefined;
8287 }