@@ -139,7 +139,9 @@ Item {
140 function init() {
140 function init() {
141 greeterSettings.lockedOutTime = 0;
141 greeterSettings.lockedOutTime = 0;
142− resetLoader();
142+ LightDM.Greeter.selectUser = "";
143+ greeter.failedLoginsDelayAttempts = 7;
144+ greeter.failedLoginsDelayMinutes = 5;
143 teaseSpy.clear();
145 teaseSpy.clear();
144 sessionStartedSpy.clear();
146 sessionStartedSpy.clear();
145 activeChangedSpy.clear();
147 activeChangedSpy.clear();
@@ -151,11 +153,7 @@ Item {
151 viewAuthenticationFailedSpy.clear();
153 viewAuthenticationFailedSpy.clear();
152 viewResetSpy.clear();
154 viewResetSpy.clear();
153 viewTryToUnlockSpy.clear();
155 viewTryToUnlockSpy.clear();
154− tryCompare(greeter, "waiting", false);
156+ resetLoader();
155− view = findChild(greeter, "testView");
156− verifySelected(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
157− greeter.failedLoginsDelayAttempts = 7;
158− greeter.failedLoginsDelayMinutes = 5;
161 function resetLoader() {
159 function resetLoader() {
@@ -167,6 +165,8 @@ Item {
167 loader.active = true;
165 loader.active = true;
168 tryCompare(loader, "status", Loader.Ready);
166 tryCompare(loader, "status", Loader.Ready);
169 removeTimeConstraintsFromSwipeAreas(loader.item);
167 removeTimeConstraintsFromSwipeAreas(loader.item);
168+ tryCompare(greeter, "waiting", false);
169+ view = findChild(greeter, "testView");
172 function getIndexOf(name) {
172 function getIndexOf(name) {
@@ -191,6 +191,7 @@ Item {
191 compare(view.currentIndex, i);
191 compare(view.currentIndex, i);
192 compare(AccountsService.user, name);
192 compare(AccountsService.user, name);
193 compare(LightDM.Greeter.authenticationUser, name);
193 compare(LightDM.Greeter.authenticationUser, name);
196 function verifyLoggedIn() {
197 function verifyLoggedIn() {
@@ -229,11 +230,9 @@ Item {
230 function test_promptless() {
231 function test_promptless() {
231 selectUser("no-password");
232 selectUser("no-password");
232− tryCompare(viewAuthenticationSucceededSpy, "count", 1);
233+ tryCompare(view, "locked", false);
233− compare(sessionStartedSpy.count, 1);
234 compare(viewShowPromptSpy.count, 0);
234 compare(viewShowPromptSpy.count, 0);
235 compare(viewHideSpy.count, 0);
235 compare(viewHideSpy.count, 0);
236− compare(view.locked, false);
239 function test_twoFactorPass() {
238 function test_twoFactorPass() {
@@ -553,5 +552,24 @@ Item {
553 compare(viewResetSpy.count, 1);
552 compare(viewResetSpy.count, 1);
554 tryCompare(viewShowPromptSpy, "count", 1);
553 tryCompare(viewShowPromptSpy, "count", 1);
556+ function test_selectUserHint() {
557+ LightDM.Greeter.selectUser = "info-prompt";
559+ var i = verifySelected("info-prompt");
560+ verify(i != 0); // sanity-check that info-prompt isn't default 0 answer
563+ function test_selectUserHintUnset() {
564+ LightDM.Greeter.selectUser = "";
566+ verifySelected(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
569+ function test_selectUserHintInvalid() {
570+ LightDM.Greeter.selectUser = "not-a-real-user";
572+ verifySelected(LightDM.Users.data(0, LightDM.UserRoles.NameRole));