@@ -92,13 +92,11 @@ Rectangle {
9292 Column {
9393 anchors { left: parent.left; right: parent.right; top: parent.top; margins: units.gu(1) }
9494 spacing: units.gu(1)
95− ApplicationCheckBox {
96− id: webbrowserCheckBox
97− appId: "webbrowser-app"
98− }
99− ApplicationCheckBox {
100− id: dialerCheckBox
101− appId: "dialer-app"
95+ Repeater {
96+ model: ApplicationManager.availableApplications
97+ ApplicationCheckBox {
98+ appId: modelData
99+ }
102100 }
103101 }
104102 }
@@ -125,14 +123,20 @@ Rectangle {
125123 // Shell instance gets destroyed.
126124 tryCompare(desktopStageLoader, "itemDestroyed", true);
127125
128− // kill all (fake) running apps
129− webbrowserCheckBox.checked = false;
130− dialerCheckBox.checked = false;
126+ killAllRunningApps();
131127
132128 desktopStageLoader.active = true;
133129 tryCompare(desktopStageLoader, "status", Loader.Ready);
134130 }
135131
132+ function killAllRunningApps() {
133+ while (ApplicationManager.count > 1) {
134+ var appIndex = ApplicationManager.get(0).appId == "unity8-dash" ? 1 : 0
135+ ApplicationManager.stopApplication(ApplicationManager.get(appIndex).appId);
136+ }
137+ compare(ApplicationManager.count, 1)
138+ }
139+
136140 function waitUntilAppSurfaceShowsUp(appId) {
137141 var appWindow = findChild(desktopStage, "appWindow_" + appId);
138142 verify(appWindow);
@@ -141,7 +145,7 @@ Rectangle {
141145 tryCompare(appWindowStates, "state", "surface");
142146 }
143147
144− function rectsOverlap(aLocal, bLocal) {
148+ function rectsIntersect(aLocal, bLocal) {
145149
146150 var a = aLocal.mapToItem(null, 0, 0, aLocal.width, aLocal.height);
147151 var b = bLocal.mapToItem(null, 0, 0, bLocal.width, bLocal.height);
@@ -153,16 +157,16 @@ Rectangle {
153157 }
154158
155159 function test_tappingOnWindowChangesFocusedApp() {
156− webbrowserCheckBox.checked = true;
157− waitUntilAppSurfaceShowsUp(webbrowserCheckBox.appId);
160+ ApplicationManager.startApplication("webbrowser-app");
161+ waitUntilAppSurfaceShowsUp("webbrowser-app");
158162
159− var webbrowserWindow = findChild(desktopStage, "appWindow_" + webbrowserCheckBox.appId);
163+ var webbrowserWindow = findChild(desktopStage, "appWindow_webbrowser-app");
160164 verify(webbrowserWindow);
161165 var dashWindow = findChild(desktopStage, "appWindow_unity8-dash");
162166 verify(dashWindow);
163167
164168 // some sanity check
165− compare(rectsOverlap(dashWindow, webbrowserWindow), false);
169+ compare(rectsIntersect(dashWindow, webbrowserWindow), false);
166170
167171 tap(dashWindow);
168172 compare(dashWindow.application.session.surface.activeFocus, true);
@@ -172,10 +176,10 @@ Rectangle {
172176 }
173177
174178 function test_tappingOnWindowTitleChangesFocusedApp() {
175− webbrowserCheckBox.checked = true;
176− waitUntilAppSurfaceShowsUp(webbrowserCheckBox.appId);
179+ ApplicationManager.startApplication("webbrowser-app");
180+ waitUntilAppSurfaceShowsUp("webbrowser-app");
177181
178− var webbrowserWindow = findChild(desktopStage, "decoratedWindow_" + webbrowserCheckBox.appId);
182+ var webbrowserWindow = findChild(desktopStage, "decoratedWindow_webbrowser-app");
179183 verify(webbrowserWindow);
180184 var webbrowserWindowTitle = findChild(webbrowserWindow, "windowDecorationTitle");
181185 verify(webbrowserWindowTitle);
@@ -185,7 +189,7 @@ Rectangle {
185189 verify(dashWindowTitle);
186190
187191 // some sanity check
188− compare(rectsOverlap(dashWindow, webbrowserWindow), false);
192+ compare(rectsIntersect(dashWindow, webbrowserWindow), false);
189193
190194 tap(dashWindowTitle);
191195 compare(dashWindow.application.session.surface.activeFocus, true);