on xenial help sign in
animation tests
0a79d51Nick Dedekind
qml/Stages/Animations/BaseSessionAnimation.qml+1−1
@@ -38,7 +38,7 @@ import QtQuick 2.0
38Item {
38Item {
39 id: base
39 id: base
40 property var container
40 property var container
41−
41+ objectName: "sessionAnimation"
42
42
43 // changes applied when state changes to "in"
43 // changes applied when state changes to "in"
44 property list<QtObject> outChanges
44 property list<QtObject> outChanges
tests/qmltests/Stages/tst_SessionContainer.qml+46−11
@@ -109,7 +109,7 @@ Rectangle {
109 id: sessionChildrenControl
109 id: sessionChildrenControl
110 anchors { left: parent.left; right: parent.right; }
110 anchors { left: parent.left; right: parent.right; }
111
111
112− session: sessionContainerLoader.item.session
112+ session: sessionContainerLoader.item ? sessionContainerLoader.item.session : null
113 }
113 }
114 }
114 }
115 }
115 }
@@ -150,8 +150,8 @@ Rectangle {
150 var i;
150 var i;
151 var sessions = [];
151 var sessions = [];
152 for (i = 0; i < data.count; i++) {
152 for (i = 0; i < data.count; i++) {
153− var session = SessionManager.createSession(sessionContainer.session.name + "-Child" + i,
153+ var session = ApplicationTest.addChildSession(sessionContainer.session,
154− Qt.resolvedUrl("../Dash/artwork/music-player-design.png"));
154+ "gallery");
155 session.createSurface();
155 session.createSurface();
156 sessionContainer.session.addChildSession(session);
156 sessionContainer.session.addChildSession(session);
157 compare(sessionContainer.childSessions.count(), i+1);
157 compare(sessionContainer.childSessions.count(), i+1);
@@ -160,7 +160,7 @@ Rectangle {
160 }
160 }
161
161
162 for (i = data.count-1; i >= 0; i--) {
162 for (i = data.count-1; i >= 0; i--) {
163− sessions[i].release();
163+ ApplicationTest.removeSession(sessions[i]);
164 tryCompareFunction(function() { return sessionContainer.childSessions.count(); }, i);
164 tryCompareFunction(function() { return sessionContainer.childSessions.count(); }, i);
165 }
165 }
166 tryCompare(sessionSpy, "count", data.count);
166 tryCompare(sessionSpy, "count", data.count);
@@ -183,8 +183,8 @@ Rectangle {
183 var delegate;
183 var delegate;
184 var container = sessionContainer;
184 var container = sessionContainer;
185 for (i = 0; i < data.depth; i++) {
185 for (i = 0; i < data.depth; i++) {
186− var session = SessionManager.createSession(lastSession.name + "-Child" + i,
186+ var session = ApplicationTest.addChildSession(lastSession,
187− Qt.resolvedUrl("../Dash/artwork/music-player-design.png"));
187+ "gallery");
188 session.createSurface();
188 session.createSurface();
189 lastSession.addChildSession(session);
189 lastSession.addChildSession(session);
190 compare(container.childSessions.count(), 1);
190 compare(container.childSessions.count(), 1);
@@ -196,7 +196,7 @@ Rectangle {
196 }
196 }
197
197
198 for (i = data.depth-1; i >= 0; i--) {
198 for (i = data.depth-1; i >= 0; i--) {
199− sessions[i].release();
199+ ApplicationTest.removeSession(sessions[i]);
200 }
200 }
201
201
202 tryCompareFunction(function() { return sessionContainer.childSessions.count(); }, 0);
202 tryCompareFunction(function() { return sessionContainer.childSessions.count(); }, 0);
@@ -207,10 +207,8 @@ Rectangle {
207 sessionCheckbox.checked = true;
207 sessionCheckbox.checked = true;
208 var sessionContainer = sessionContainerLoader.item;
208 var sessionContainer = sessionContainerLoader.item;
209
209
210− wait(2000);
211−
212− var session = SessionManager.createSession(sessionContainer.session.name + "-Child0",
210+ var session = ApplicationTest.addChildSession(sessionContainer.session,
213− Qt.resolvedUrl("../Dash/artwork/music-player-design.png"));
211+ "gallery");
214 session.createSurface();
212 session.createSurface();
215 sessionContainer.session.addChildSession(session);
213 sessionContainer.session.addChildSession(session);
216
214
@@ -229,5 +227,42 @@ Rectangle {
229 tryCompareFunction(function() { return childContainer.x === 0; }, true);
227 tryCompareFunction(function() { return childContainer.x === 0; }, true);
230 tryCompareFunction(function() { return childContainer.y === 0; }, true);
228 tryCompareFunction(function() { return childContainer.y === 0; }, true);
231 }
229 }
230+
231+ function isContainerAnimating(container) {
232+ var animation = findInvisibleChild(container, "sessionAnimation");
233+ if (!animation) return false;
234+
235+ var animating = false;
236+ console.log(animation.state);
237+ for (var i = 0; i < animation.transitions.length; ++i) {
238+ if (animation.transitions[i].running) {
239+ return true;
240+ }
241+ }
242+ return false;
243+ }
244+
245+ function test_childrenAnimate() {
246+ sessionCheckbox.checked = true;
247+ var sessionContainer = sessionContainerLoader.item;
248+
249+ var session = ApplicationTest.addChildSession(sessionContainer.session,
250+ "gallery");
251+
252+ var delegate = findChild(sessionContainer, "childDelegate0");
253+ var childContainer = findChild(delegate, "sessionContainer");
254+
255+ // wait for animation to begin
256+ tryCompareFunction(function() { return isContainerAnimating(childContainer); }, true);
257+ // wait for animation to end
258+ tryCompareFunction(function() { return isContainerAnimating(childContainer); }, false);
259+
260+ ApplicationTest.removeSession(session);
261+
262+ // wait for animation to begin
263+ tryCompareFunction(function() { return isContainerAnimating(childContainer); }, true);
264+ // wait for animation to end
265+ tryCompareFunction(function() { return isContainerAnimating(childContainer); }, false);
266+ }
232 }
267 }
233}
268}
tests/qmltests/Stages/tst_SurfaceContainer.qml+1−1
@@ -74,7 +74,7 @@ Rectangle {
74 Qt.resolvedUrl("../Dash/artwork/music-player-design.png"));
74 Qt.resolvedUrl("../Dash/artwork/music-player-design.png"));
75 surfaceContainerLoader.item.surface = fakeSurface;
75 surfaceContainerLoader.item.surface = fakeSurface;
76 } else {
76 } else {
77− surfaceContainerLoader.item.surface.release();
77+ ApplicationTest.removeSurface(surfaceContainerLoader.item.surface);
78 }
78 }
79 }
79 }
80 }
80 }