@@ -143,7 +143,7 @@ Item {
143143
144144 function init() {
145145 greeterSettings.lockedOutTime = 0;
146− LightDM.Greeter.mock.selectUserHint = "";
146+ LightDM.Greeter.mock.reset();
147147 greeter.failedLoginsDelayAttempts = 7;
148148 greeter.failedLoginsDelayMinutes = 5;
149149 teaseSpy.clear();
@@ -200,7 +200,10 @@ Item {
200200 var i = getIndexOf(name);
201201 compare(view.currentIndex, i);
202202 compare(AccountsService.user, name);
203− compare(LightDM.Greeter.authenticationUser, name);
203+ if (name === "*guest") // guest has no authenticationUser set
204+ compare(LightDM.Greeter.authenticationUser, "");
205+ else
206+ compare(LightDM.Greeter.authenticationUser, name);
204207 return i;
205208 }
206209
@@ -585,6 +588,29 @@ Item {
585588 verifySelected(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
586589 }
587590
591+ function test_selectUserHintGuest() {
592+ LightDM.Greeter.mock.hasGuestAccountHint = true;
593+ LightDM.Greeter.mock.selectGuestHint = true;
594+ LightDM.Greeter.mock.selectUserHint = "info-prompt";
595+ resetLoader();
596+ verifySelected("*guest");
597+ }
598+
599+ function test_selectUserHintGuestWithNoGuest() {
600+ LightDM.Greeter.mock.selectGuestHint = true;
601+ LightDM.Greeter.mock.selectUserHint = "info-prompt";
602+ resetLoader();
603+ verifySelected("info-prompt");
604+ }
605+
606+ function test_hasGuestAccountHint() {
607+ LightDM.Greeter.mock.hasGuestAccountHint = true;
608+ resetLoader();
609+ var i = selectUser("*guest");
610+ compare(i, LightDM.Users.count - 1); // guest should be last
611+ verify(!view.locked);
612+ }
613+
588614 function test_fingerprintSuccess() {
589615 var index = selectUser("has-password");
590616 unlockAndShowGreeter(); // turn on lockscreen mode