@@ -56,6 +56,18 @@ Item {
57 function initTestCase() {
57 function initTestCase() {
58 swipeAwayGreeter();
58 swipeAwayGreeter();
60+ // Ensure DashHome is loaded before continuing
61+ var dashContentList = findChild(shell, "dashContentList");
62+ waitForRendering(dashContentList);
63+ var homeLoader = findChild(dashContentList, "home.scope loader");
65+ tryCompareFunction(function() {return homeLoader.item !== undefined;}, true);
67+ // FIXME: Desperate measure to ensure Jenkins has the scene graph fully loaded
68+ // before it calls the test functions (otherwise findChild calls will fail).
69+ // The code above just didn't solve it.
61 function cleanup() {
73 function cleanup() {
@@ -233,6 +245,62 @@ Item {
233 tryCompare(dash, "visible", false);
245 tryCompare(dash, "visible", false);
249+ Regression test for bug https://bugs.launchpad.net/touch-preview-images/+bug/1193419
251+ When the user minimizes an application (left-edge swipe) he should always end up in the "Running Apps"
252+ category of the "Applications" scope view.
256+ - scroll to the bottom
257+ - reveal launcher and launch an app
258+ - perform long left edge swipe to go minimize the app and go back to the dash.
261+ - apps lens shown and Running Apps visible on screen
263+ function test_minimizingAppTakesToRunningApps() {
264+ var dashApps = findChild(shell, "DashApps");
266+ swipeUntilScopeViewIsReached(dashApps);
268+ // swipe finger up until the running/recent apps section (which we assume
269+ // it's the first one) is as far from view as possible.
270+ // We also assume that DashApps is tall enough that it's scrollable
271+ var appsCategoryListView = findChild(dashApps, "categoryListView");
272+ while (!appsCategoryListView.atYEnd) {
273+ swipeUpFromCenter();
274+ tryCompare(appsCategoryListView, "moving", false);
277+ // Switch away from the Applications scope.
278+ swipeRightFromCenter();
279+ waitUntilItemStopsMoving(dashApps);
280+ verify(!itemIsOnScreen(dashApps));
282+ dragLauncherIntoView();
284+ // Launch an app from the launcher
285+ tapOnAppIconInLauncher();
287+ waitUntilApplicationWindowIsFullyVisible();
289+ // Minimize the application we just launched
290+ swipeFromLeftEdge();
292+ // Wait for the whole UI to settle down
293+ waitUntilApplicationWindowIsFullyHidden();
294+ waitUntilItemStopsMoving(dashApps);
295+ tryCompare(appsCategoryListView, "moving", false);
297+ verify(itemIsOnScreen(dashApps));
299+ var runningApplicationsGrid = findChild(appsCategoryListView, "recent");
300+ verify(runningApplicationsGrid);
301+ verify(itemIsOnScreen(runningApplicationsGrid));
236 // Wait for the whole UI to settle down
304 // Wait for the whole UI to settle down
237 function waitForUIToSettle() {
305 function waitForUIToSettle() {
238 waitUntilApplicationWindowIsFullyHidden();
306 waitUntilApplicationWindowIsFullyHidden();