on xenial help sign in
Fix flakyness
c0c38ddAndrea Cimitan
qml/Components/LazyImage.qml+3
@@ -40,6 +40,8 @@ Item {
40
40
41 state: "default"
41 state: "default"
42
42
43+ signal readyTransitionRunning(bool running)
44+
43 onSourceChanged: {
45 onSourceChanged: {
44 if (state === "ready") {
46 if (state === "ready") {
45 state = "default";
47 state = "default";
@@ -157,6 +159,7 @@ Item {
157 Transition {
159 Transition {
158 to: "ready"
160 to: "ready"
159 objectName: "readyTransition"
161 objectName: "readyTransition"
162+ onRunningChanged: root.readyTransitionRunning(running)
160 SequentialAnimation {
163 SequentialAnimation {
161 PropertyAction { target: shape; property: "visible" }
164 PropertyAction { target: shape; property: "visible" }
162 ParallelAnimation {
165 ParallelAnimation {
tests/qmltests/Components/tst_LazyImage.qml+20−6
@@ -112,6 +112,11 @@ Rectangle {
112 }
112 }
113 }
113 }
114
114
115+ SignalSpy {
116+ id: signalSpy
117+ signalName: "readyTransitionRunning"
118+ }
119+
115 UT.UnityTestCase {
120 UT.UnityTestCase {
116 name: "LazyImage"
121 name: "LazyImage"
117 when: windowShown
122 when: windowShown
@@ -144,8 +149,8 @@ Rectangle {
144 {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},
149 {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},
145 {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},
150 {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},
146 {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)},
151 {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)},
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)},
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)},
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)},
149 {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},
154 {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},
150 ]
155 ]
151 }
156 }
@@ -154,10 +159,19 @@ Rectangle {
154 data.func();
159 data.func();
155
160
156 if (data.transition) {
161 if (data.transition) {
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 {
157− // wait for the transition to complete
170+ // wait for the transition to complete
158− var transition = findChildIn(data.image, "transitions", data.transition);
171+ var transition = findChildIn(data.image, "transitions", data.transition);
159− tryCompare(transition, "running", true);
172+ tryCompare(transition, "running", true);
160− tryCompare(transition, "running", false);
173+ tryCompare(transition, "running", false);
174+ }
161 }
175 }
162
176
163 // check the dimensions
177 // check the dimensions