@@ -93,10 +93,27 @@ Item {
94 verify(ok);
94 verify(ok);
98 sessionSpy.target = findChild(shell, "greeter")
96 sessionSpy.target = findChild(shell, "greeter")
99− sessionSpy.clear()
97+ }
103+ function cleanup() {
104+ LightDM.Greeter.showGreeter()
105+ var greeter = findChild(shell, "greeter")
106+ tryCompare(greeter, "showProgress", 1)
108+ // kill all (fake) running apps
112+ function killApps() {
113+ while (ApplicationManager.count > 0) {
114+ ApplicationManager.stopApplication(ApplicationManager.get(0).appId)
116+ compare(ApplicationManager.count, 0)
102 function swipeAwayGreeter() {
119 function swipeAwayGreeter() {
@@ -126,45 +143,59 @@ Item {
129− function dragLauncherIntoView() {
146+ function test_login() {
130− var launcherPanel = findChild(shell, "launcherPanel");
147+ tryCompare(sessionSpy, "count", 0)
131− verify(launcherPanel.x = - launcherPanel.width);
148+ enterPin("1234")
132−
149+ tryCompare(sessionSpy, "count", 1)
133− var touchStartX = 2;
134− var touchStartY = shell.height / 2;
135− touchFlick(shell, touchStartX, touchStartY, launcherPanel.width + units.gu(1), touchStartY);
137− tryCompare(launcherPanel, "x", 0);
140− function tapOnAppIconInLauncher() {
152+ function test_emergencyCall() {
141− var launcherPanel = findChild(shell, "launcherPanel");
153+ var greeter = findChild(shell, "greeter")
154+ var lockscreen = findChild(shell, "lockscreen")
155+ var emergencyButton = findChild(lockscreen, "emergencyCallIcon")
156+ var panel = findChild(shell, "panel")
157+ var indicators = findChild(shell, "indicators")
158+ var launcher = findChild(shell, "launcher")
159+ var stage = findChild(shell, "stage")
143− // pick the first icon, the one at the bottom.
161+ mouseClick(emergencyButton, units.gu(1), units.gu(1))
144− var appIcon = findChild(launcherPanel, "launcherDelegate0")
146− // Swipe upwards over the launcher to ensure that this icon
163+ tryCompare(lockscreen, "shown", false)
147− // at the bottom is not folded and faded away.
164+ tryCompare(greeter, "fakeActiveForApp", "dialer-app")
148− var touchStartX = launcherPanel.width / 2;
165+ tryCompare(panel, "fullscreenMode", true)
149− var touchStartY = launcherPanel.height / 2;
166+ tryCompare(indicators, "available", false)
150− touchFlick(launcherPanel, touchStartX, touchStartY, touchStartX, 0);
167+ tryCompare(launcher, "available", false)
151− tryCompare(launcherPanel, "moving", false);
168+ tryCompare(stage, "spreadEnabled", false)
153− // NB tapping (i.e., using touch events) doesn't activate the icon... go figure...
170+ // Cancel emergency mode, and go back to normal
154− mouseClick(appIcon, appIcon.width / 2, appIcon.height / 2);
171+ LightDM.Greeter.showGreeter()
157− function test_login() {
173+ tryCompare(lockscreen, "shown", true)
158− tryCompare(sessionSpy, "count", 0)
174+ tryCompare(greeter, "shown", true)
159− enterPin("1234")
175+ tryCompare(greeter, "fakeActiveForApp", "")
160− tryCompare(sessionSpy, "count", 1)
176+ tryCompare(panel, "fullscreenMode", false)
177+ tryCompare(indicators, "available", true)
178+ tryCompare(launcher, "available", true)
179+ tryCompare(stage, "spreadEnabled", true)
163− function test_emergencyCall() {
182+ function test_emergencyCallCrash() {
164− dragLauncherIntoView()
183+ var lockscreen = findChild(shell, "lockscreen")
165− tapOnAppIconInLauncher()
184+ var emergencyButton = findChild(lockscreen, "emergencyCallIcon")
185+ mouseClick(emergencyButton, units.gu(1), units.gu(1))
187+ tryCompare(lockscreen, "shown", false)
188+ killApps() // kill dialer-app, as if it crashed
189+ tryCompare(lockscreen, "shown", true)
192+ function test_emergencyCallAppLaunch() {
167 var lockscreen = findChild(shell, "lockscreen")
193 var lockscreen = findChild(shell, "lockscreen")
194+ var emergencyButton = findChild(lockscreen, "emergencyCallIcon")
195+ mouseClick(emergencyButton, units.gu(1), units.gu(1))
197+ tryCompare(lockscreen, "shown", false)
198+ ApplicationManager.startApplication("gallery-app", ApplicationManager.NoFlag)
168 tryCompare(lockscreen, "shown", true)
199 tryCompare(lockscreen, "shown", true)