@@ -147,10 +147,7 @@ Item {
149 function test_appFocusSwitch(data) {
149 function test_appFocusSwitch(data) {
151− for (i = 0; i < data.apps.length; i++) {
152− startApplication(data.apps[i]);
150+ data.apps.forEach(startApplication);
155 ApplicationManager.requestFocusApplication(data.apps[data.focusfrom]);
152 ApplicationManager.requestFocusApplication(data.apps[data.focusfrom]);
156 tryCompare(ApplicationManager.findApplication(data.apps[data.focusfrom]).session.surface, "activeFocus", true);
153 tryCompare(ApplicationManager.findApplication(data.apps[data.focusfrom]).session.surface, "activeFocus", true);
@@ -167,10 +164,7 @@ Item {
169 function test_tappingOnWindowChangesFocusedApp(data) {
166 function test_tappingOnWindowChangesFocusedApp(data) {
171− for (i = 0; i < data.apps.length; i++) {
172− startApplication(data.apps[i]);
167+ data.apps.forEach(startApplication);
174 var fromAppId = data.apps[data.focusfrom];
168 var fromAppId = data.apps[data.focusfrom];
175 var toAppId = data.apps[data.focusTo]
169 var toAppId = data.apps[data.focusTo]
@@ -187,18 +181,37 @@ Item {
187 compare(ApplicationManager.focusedApplicationId, toAppId);
181 compare(ApplicationManager.focusedApplicationId, toAppId);
184+ function test_clickingOnWindowChangesFocusedApp_data() {
185+ return test_tappingOnWindowChangesFocusedApp_data(); // reuse test data
188+ function test_clickingOnWindowChangesFocusedApp(data) {
189+ data.apps.forEach(startApplication);
190+ var fromAppId = data.apps[data.focusfrom];
191+ var toAppId = data.apps[data.focusTo]
193+ var fromAppWindow = findChild(desktopStage, "appWindow_" + fromAppId);
194+ verify(fromAppWindow);
195+ mouseClick(fromAppWindow);
196+ compare(fromAppWindow.application.session.surface.activeFocus, true);
197+ compare(ApplicationManager.focusedApplicationId, fromAppId);
199+ var toAppWindow = findChild(desktopStage, "appWindow_" + toAppId);
200+ verify(toAppWindow);
201+ mouseClick(toAppWindow);
202+ compare(toAppWindow.application.session.surface.activeFocus, true);
203+ compare(ApplicationManager.focusedApplicationId, toAppId);
190 function test_tappingOnDecorationFocusesApplication_data() {
206 function test_tappingOnDecorationFocusesApplication_data() {
192− {tag: "dash", apps: [ "unity8-dash", "dialer-app", "camera-app" ], focusfrom: 0, focusTo: 1 },
208+ {tag: "dash to dialer", apps: [ "unity8-dash", "dialer-app", "camera-app" ], focusfrom: 0, focusTo: 1 },
193− {tag: "dash", apps: [ "unity8-dash", "dialer-app", "camera-app" ], focusfrom: 1, focusTo: 0 },
209+ {tag: "dialer to dash", apps: [ "unity8-dash", "dialer-app", "camera-app" ], focusfrom: 1, focusTo: 0 },
197 function test_tappingOnDecorationFocusesApplication(data) {
213 function test_tappingOnDecorationFocusesApplication(data) {
199− for (i = 0; i < data.apps.length; i++) {
200− startApplication(data.apps[i]);
214+ data.apps.forEach(startApplication);
203 var fromAppDecoration = findChild(desktopStage, "appWindowDecoration_" + data.apps[data.focusfrom]);
216 var fromAppDecoration = findChild(desktopStage, "appWindowDecoration_" + data.apps[data.focusfrom]);
204 verify(fromAppDecoration);
217 verify(fromAppDecoration);
@@ -210,5 +223,23 @@ Item {
210 tap(toAppDecoration);
223 tap(toAppDecoration);
211 tryCompare(ApplicationManager.findApplication(data.apps[data.focusTo]).session.surface, "activeFocus", true);
224 tryCompare(ApplicationManager.findApplication(data.apps[data.focusTo]).session.surface, "activeFocus", true);
227+ function test_clickingOnDecorationFocusesApplication_data() {
228+ return test_tappingOnDecorationFocusesApplication_data(); // reuse test data
231+ function test_clickingOnDecorationFocusesApplication(data) {
232+ data.apps.forEach(startApplication);
234+ var fromAppDecoration = findChild(desktopStage, "appWindowDecoration_" + data.apps[data.focusfrom]);
235+ verify(fromAppDecoration);
236+ mouseClick(fromAppDecoration);
237+ tryCompare(ApplicationManager.findApplication(data.apps[data.focusfrom]).session.surface, "activeFocus", true);
239+ var toAppDecoration = findChild(desktopStage, "appWindowDecoration_" + data.apps[data.focusTo]);
240+ verify(toAppDecoration);
241+ mouseClick(toAppDecoration);
242+ tryCompare(ApplicationManager.findApplication(data.apps[data.focusTo]).session.surface, "activeFocus", true);