on xenial help sign in
Fix flakyness
commitc0c38ddd633fb219b5b1b0ba4fbad7e8eaa098a7 authorAndrea Cimitan <andrea.cimitan@gmail.com> dateFri 13 Nov 2015, 11:51 (11 years ago) parent78bdee5
2 files changed+23−6
qml/Components/LazyImage.qml+3 tests/qmltests/Components/tst_LazyImage.qml+20−6
qml/Components/LazyImage.qml+3
@@ -40,6 +40,8 @@ Item {
4040
4141 state: "default"
4242
43+ signal readyTransitionRunning(bool running)
44+
4345 onSourceChanged: {
4446 if (state === "ready") {
4547 state = "default";
@@ -157,6 +159,7 @@ Item {
157159 Transition {
158160 to: "ready"
159161 objectName: "readyTransition"
162+ onRunningChanged: root.readyTransitionRunning(running)
160163 SequentialAnimation {
161164 PropertyAction { target: shape; property: "visible" }
162165 ParallelAnimation {
tests/qmltests/Components/tst_LazyImage.qml+20−6
@@ -112,6 +112,11 @@ Rectangle {
112112 }
113113 }
114114
115+ SignalSpy {
116+ id: signalSpy
117+ signalName: "readyTransitionRunning"
118+ }
119+
115120 UT.UnityTestCase {
116121 name: "LazyImage"
117122 when: windowShown
@@ -144,8 +149,8 @@ Rectangle {
144149 {tag: "Height-bound Bad path", image: lazy3, func: controls3.badpath, transition: "genericTransition", width: units.gu(10), height: units.gu(12), imageWidth: units.gu(10), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12), placeholder: true, error: true},
145150 {tag: "Fit Blank", image: lazy4, func: controls4.blank, width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12), placeholder: true},
146151 {tag: "Fit Wide", image: lazy4, func: controls4.wide, transition: "readyTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(6), initialWidth: units.gu(12), initialHeight: units.gu(12)},
147− {tag: "Fit Square", image: lazy4, func: controls4.square, transition: "readyTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12)},
148− {tag: "Fit Portrait", image: lazy4, func: controls4.portrait, transition: "readyTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(6), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12)},
152+ {tag: "Fit Square", image: lazy4, func: controls4.square, transition: "readyTransition", transitionCount: 4, width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12)},
153+ {tag: "Fit Portrait", image: lazy4, func: controls4.portrait, transition: "readyTransition", transitionCount: 4, width: units.gu(12), height: units.gu(12), imageWidth: units.gu(6), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12)},
149154 {tag: "Fit Bad path", image: lazy4, func: controls4.badpath, transition: "genericTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12), placeholder: true, error: true},
150155 ]
151156 }
@@ -154,10 +159,19 @@ Rectangle {
154159 data.func();
155160
156161 if (data.transition) {
157− // wait for the transition to complete
158− var transition = findChildIn(data.image, "transitions", data.transition);
159− tryCompare(transition, "running", true);
160− tryCompare(transition, "running", false);
162+ if (data.transition == "readyTransition") {
163+ signalSpy.target = data.image;
164+ signalSpy.clear();
165+ tryCompare(signalSpy, "count", data.transitionCount ? data.transitionCount : 2);
166+ for (var i = 0; i < signalSpy.count; i++) {
167+ compare(signalSpy.signalArguments[i][0], i % 2 == 0 ? true : false);
168+ }
169+ } else {
170+ // wait for the transition to complete
171+ var transition = findChildIn(data.image, "transitions", data.transition);
172+ tryCompare(transition, "running", true);
173+ tryCompare(transition, "running", false);
174+ }
161175 }
162176
163177 // check the dimensions