@@ -1,5 +1,5 @@
11/*
2− * Copyright 2014 Canonical Ltd.
2+ * Copyright 2014-2015 Canonical Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@
1616
1717import QtQuick 2.0
1818import QtTest 1.0
19−import Unity.Test 0.1 as UT
19+import Unity.Test 0.1
2020import ".."
2121import "../../../qml/Stages"
2222import Ubuntu.Components 0.1
@@ -32,6 +32,8 @@ Rectangle {
3232 id: surfaceContainerComponent
3333 SurfaceContainer {
3434 anchors.fill: parent
35+ orientation: Qt.PortraitOrientation
36+ interactive: interactiveCheckbox.checked
3537 }
3638 }
3739 Loader {
@@ -85,6 +87,12 @@ Rectangle {
8587 CheckBox {id: fullscreenCheckbox; checked: true; }
8688 Label { text: "fullscreen" }
8789 }
90+ Row {
91+ anchors { left: parent.left; right: parent.right }
92+ CheckBox {id: interactiveCheckbox; checked: true; }
93+ Label { text: "interactive" }
94+ }
95+ MouseTouchEmulationCheckbox {}
8896 }
8997 }
9098
@@ -94,7 +102,7 @@ Rectangle {
94102 signalName: "surfaceDestroyed"
95103 }
96104
97− UT.UnityTestCase {
105+ UnityTestCase {
98106 id: testCase
99107 name: "SurfaceContainer"
100108 when: windowShown
@@ -110,6 +118,8 @@ Rectangle {
110118
111119 tryCompare(surfaceContainerLoader.item, "surface", null);
112120 surfaceSpy.clear();
121+
122+ interactiveCheckbox.checked = true;
113123 }
114124
115125 /*
@@ -145,14 +155,13 @@ Rectangle {
145155 surfaceContainer.surface.touchPressCount = 0;
146156 surfaceContainer.surface.touchReleaseCount = 0;
147157
148− surfaceContainer.interactive = true;
149158 tap(surfaceContainer, surfaceContainer.width / 2, surfaceContainer.height / 2);
150159
151160 // surface got touches as the surfaceContainer is interactive
152161 compare(surfaceContainer.surface.touchPressCount, 1)
153162 compare(surfaceContainer.surface.touchReleaseCount, 1);
154163
155− surfaceContainer.interactive = false;
164+ interactiveCheckbox.checked = false;
156165 tap(surfaceContainer, surfaceContainer.width / 2, surfaceContainer.height / 2);
157166
158167 // surface shouldn't get the touches from the second tap as the surfaceContainer
@@ -160,5 +169,23 @@ Rectangle {
160169 compare(surfaceContainer.surface.touchPressCount, 1)
161170 compare(surfaceContainer.surface.touchReleaseCount, 1);
162171 }
172+
173+ function test_surfaceGetsActiveFocusOnMousePress() {
174+ surfaceCheckbox.checked = true;
175+ verify(surfaceContainer.surface !== null);
176+
177+ compare(surfaceContainer.surface.activeFocus, false);
178+ mouseClick(surfaceContainer);
179+ compare(surfaceContainer.surface.activeFocus, true);
180+ }
181+
182+ function test_surfaceGetsActiveFocusOnTap() {
183+ surfaceCheckbox.checked = true;
184+ verify(surfaceContainer.surface !== null);
185+
186+ compare(surfaceContainer.surface.activeFocus, false);
187+ tap(surfaceContainer);
188+ compare(surfaceContainer.surface.activeFocus, true);
189+ }
163190 }
164191}