on xenial help sign in
Add test and guard against gsettings time being 0
commit173128ddcdb4040f527f85a13e95e46eff0c8386 authorMichael Terry <michael.terry@canonical.com> dateThu 10 Dec 2015, 17:04 (11 years ago) parent09a4e7d
2 files changed+19
qml/Greeter/Greeter.qml+5 tests/qmltests/Greeter/tst_Greeter.qml+14
qml/Greeter/Greeter.qml+5
@@ -189,6 +189,7 @@ Showable {
189189
190190 Timer {
191191 id: forcedDelayTimer
192+ objectName: "forcedDelayTimer"
192193
193194 // We use a short interval and check against the system wall clock
194195 // because we have to consider the case that the system is suspended
@@ -242,6 +243,10 @@ Showable {
242243 }
243244
244245 function checkForForcedDelay() {
246+ if (greeterSettings.lockedOutTime === 0) {
247+ return;
248+ }
249+
245250 delayTarget = new Date();
246251 delayTarget.setTime(greeterSettings.lockedOutTime + failedLoginsDelayMinutes * 60000);
247252 triggered();
tests/qmltests/Greeter/tst_Greeter.qml+14
@@ -458,6 +458,20 @@ Item {
458458 compare(view.delayMinutes, greeter.failedLoginsDelayMinutes);
459459 }
460460
461+ function test_forcedDelayWhileTimeChanges() {
462+ greeterSettings.lockedOutTime = new Date().getTime();
463+ resetLoader();
464+ view = findChild(greeter, "testView");
465+ verify(view.delayMinutes > 0);
466+
467+ // Fake a time change by moving lockedOutTime way forward so that
468+ // the greeter will think the wall clock is too early for some
469+ // reason (like NTP messing up).
470+ greeterSettings.lockedOutTime = new Date().getTime() + 6000000;
471+ wait(1000);
472+ compare(view.delayMinutes, 0);
473+ }
474+
461475 function test_forcedDelayRoundTrip() {
462476 greeter.failedLoginsDelayAttempts = 1;
463477 greeter.failedLoginsDelayMinutes = 0.001; // make delay very short