@@ -139,7 +139,9 @@ Item {
139139
140140 function init() {
141141 greeterSettings.lockedOutTime = 0;
142− resetLoader();
142+ LightDM.Greeter.selectUser = "";
143+ greeter.failedLoginsDelayAttempts = 7;
144+ greeter.failedLoginsDelayMinutes = 5;
143145 teaseSpy.clear();
144146 sessionStartedSpy.clear();
145147 activeChangedSpy.clear();
@@ -151,11 +153,7 @@ Item {
151153 viewAuthenticationFailedSpy.clear();
152154 viewResetSpy.clear();
153155 viewTryToUnlockSpy.clear();
154− tryCompare(greeter, "waiting", false);
155− view = findChild(greeter, "testView");
156− verifySelected(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
157− greeter.failedLoginsDelayAttempts = 7;
158− greeter.failedLoginsDelayMinutes = 5;
156+ resetLoader();
159157 }
160158
161159 function resetLoader() {
@@ -167,6 +165,8 @@ Item {
167165 loader.active = true;
168166 tryCompare(loader, "status", Loader.Ready);
169167 removeTimeConstraintsFromSwipeAreas(loader.item);
168+ tryCompare(greeter, "waiting", false);
169+ view = findChild(greeter, "testView");
170170 }
171171
172172 function getIndexOf(name) {
@@ -191,6 +191,7 @@ Item {
191191 compare(view.currentIndex, i);
192192 compare(AccountsService.user, name);
193193 compare(LightDM.Greeter.authenticationUser, name);
194+ return i;
194195 }
195196
196197 function verifyLoggedIn() {
@@ -229,11 +230,9 @@ Item {
229230
230231 function test_promptless() {
231232 selectUser("no-password");
232− tryCompare(viewAuthenticationSucceededSpy, "count", 1);
233− compare(sessionStartedSpy.count, 1);
233+ tryCompare(view, "locked", false);
234234 compare(viewShowPromptSpy.count, 0);
235235 compare(viewHideSpy.count, 0);
236− compare(view.locked, false);
237236 }
238237
239238 function test_twoFactorPass() {
@@ -553,5 +552,24 @@ Item {
553552 compare(viewResetSpy.count, 1);
554553 tryCompare(viewShowPromptSpy, "count", 1);
555554 }
555+
556+ function test_selectUserHint() {
557+ LightDM.Greeter.selectUser = "info-prompt";
558+ resetLoader();
559+ var i = verifySelected("info-prompt");
560+ verify(i != 0); // sanity-check that info-prompt isn't default 0 answer
561+ }
562+
563+ function test_selectUserHintUnset() {
564+ LightDM.Greeter.selectUser = "";
565+ resetLoader();
566+ verifySelected(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
567+ }
568+
569+ function test_selectUserHintInvalid() {
570+ LightDM.Greeter.selectUser = "not-a-real-user";
571+ resetLoader();
572+ verifySelected(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
573+ }
556574 }
557575}