@@ -317,8 +317,7 @@ Item {
318 var greeter = findChild(shell, "greeter");
318 var greeter = findChild(shell, "greeter");
319 if (data.greeterShown) {
319 if (data.greeterShown) {
320− LightDM.Greeter.showGreeter();
320+ showGreeter();
321− tryCompare(greeter, "fullyShown", true);
324 if (data.revealLauncher) {
323 if (data.revealLauncher) {
@@ -375,7 +374,15 @@ Item {
375 tryCompare(greeter, "fullyShown", true);
374 tryCompare(greeter, "fullyShown", true);
377 // Swipe away greeter to focus app
376 // Swipe away greeter to focus app
378+ // greeter unloads its internal components when hidden
379+ // and reloads them when shown. Thus we have to do this
380+ // again before interacting with it otherwise any
381+ // DirectionalDragAreas in there won't be easily fooled by
383+ removeTimeConstraintsFromDirectionalDragAreas(greeter);
378 swipeAwayGreeter();
384 swipeAwayGreeter();
379 tryCompare(ApplicationManager, "suspended", false);
386 tryCompare(ApplicationManager, "suspended", false);
380 compare(mainApp.state, ApplicationInfoInterface.Running);
387 compare(mainApp.state, ApplicationInfoInterface.Running);
381 tryCompare(ApplicationManager, "focusedApplicationId", mainAppId);
388 tryCompare(ApplicationManager, "focusedApplicationId", mainAppId);
@@ -593,11 +600,25 @@ Item {
593 && itemRectInShell.y + itemRectInShell.height <= shell.height;
600 && itemRectInShell.y + itemRectInShell.height <= shell.height;
603+ function showGreeter() {
604+ var greeter = findChild(shell, "greeter");
605+ LightDM.Greeter.showGreeter();
606+ waitForRendering(greeter);
607+ tryCompare(greeter, "fullyShown", true);
609+ // greeter unloads its internal components when hidden
610+ // and reloads them when shown. Thus we have to do this
611+ // again before interacting with it otherwise any
612+ // DirectionalDragAreas in there won't be easily fooled by
614+ removeTimeConstraintsFromDirectionalDragAreas(greeter);
596 function test_greeterDoesNotChangeIndicatorProfile() {
617 function test_greeterDoesNotChangeIndicatorProfile() {
597 var panel = findChild(shell, "panel");
618 var panel = findChild(shell, "panel");
598 tryCompare(panel.indicators.indicatorsModel, "profile", shell.indicatorProfile);
619 tryCompare(panel.indicators.indicatorsModel, "profile", shell.indicatorProfile);
600− LightDM.Greeter.showGreeter();
621+ showGreeter();
601 tryCompare(panel.indicators.indicatorsModel, "profile", shell.indicatorProfile);
622 tryCompare(panel.indicators.indicatorsModel, "profile", shell.indicatorProfile);
603 LightDM.Greeter.hideGreeter();
624 LightDM.Greeter.hideGreeter();
@@ -632,8 +653,7 @@ Item {
633 waitUntilDashIsFocused();
654 waitUntilDashIsFocused();
635− LightDM.Greeter.showGreeter();
656+ showGreeter();
636− tryCompare(greeter, "fullyShown", true);
638 // The main point of this test
658 // The main point of this test
639 ApplicationManager.requestFocusApplication("dialer-app");
659 ApplicationManager.requestFocusApplication("dialer-app");
@@ -664,15 +684,13 @@ Item {
664 tryCompare(greeter, "shown", false)
684 tryCompare(greeter, "shown", false)
667− function test_login() {
687+ function test_greeterLoginsAutomaticallyWhenNoPasswordSet() {
668− var greeter = findChild(shell, "greeter")
669− waitForRendering(greeter)
670− LightDM.Greeter.showGreeter();
671− tryCompare(greeter, "fullyShown", true)
673 sessionSpy.clear();
688 sessionSpy.clear();
674− swipeAwayGreeter()
689+ verify(sessionSpy.valid);
675− tryCompare(sessionSpy, "count", 1)
693+ tryCompare(sessionSpy, "count", 1);
678 function test_fullscreen() {
696 function test_fullscreen() {