on xenial help sign in
Fix tests
commit3785e04961c5616c41c4c5b3d6ec442655d77632 authorMichael Terry <michael.terry@canonical.com> dateMon 20 Jun 2016, 12:17 (10 years ago) parente0cd1cc
2 files changed+48−6
qml/Greeter/Greeter.qml+4−4 tests/qmltests/Greeter/tst_Greeter.qml+44−2
qml/Greeter/Greeter.qml+4−4
@@ -522,13 +522,13 @@ Showable {
522522 function failOperation(reason) {
523523 console.log("Failed to identify user by fingerprint:", reason);
524524 restartOperation();
525− if (!allowFingerprint) {
525+ if (!d.allowFingerprint) {
526526 d.startUnlock(false /* toTheRight */);
527527 }
528528 if (loader.item) {
529− var msg = d.allowFingerprint ? i18n.tr("Try again")
530− d.alphanumeric ? i18n.tr("Use passphrase")
531− : i18n.tr("Use passcode");
529+ var msg = d.allowFingerprint ? i18n.tr("Try again") :
530+ d.alphanumeric ? i18n.tr("Use passphrase") :
531+ i18n.tr("Use passcode");
532532 loader.item.showErrorMessage(msg);
533533 }
534534 }
tests/qmltests/Greeter/tst_Greeter.qml+44−2
@@ -210,6 +210,14 @@ Item {
210210 compare(greeter.shown, false);
211211 }
212212
213+ function unlockAndShowGreeter() {
214+ // useful to enable "lockscreen mode" in greeter
215+ greeter.forcedUnlock = true;
216+ LightDM.Greeter.showGreeter();
217+ tryCompare(greeter, "waiting", false);
218+ view = findChild(greeter, "testView");
219+ }
220+
213221 function test_unlockPass() {
214222 selectUser("has-password");
215223 tryCompare(viewShowPromptSpy, "count", 1);
@@ -566,6 +574,7 @@ Item {
566574
567575 function test_fingerprintSuccess() {
568576 var index = selectUser("has-password");
577+ unlockAndShowGreeter(); // turn on lockscreen mode
569578
570579 var biometryd = findInvisibleChild(greeter, "biometryd");
571580 verify(biometryd.operation);
@@ -575,8 +584,22 @@ Item {
575584 verify(!greeter.active);
576585 }
577586
587+ function test_fingerprintFirstLoginDisabled() {
588+ var index = selectUser("has-password");
589+ // don't hide/show greeter, we want to test behavior before lockscreen mode is on
590+
591+ var biometryd = findInvisibleChild(greeter, "biometryd");
592+ verify(biometryd.operation);
593+ verify(biometryd.operation.running);
594+
595+ biometryd.operation.mockSuccess(LightDM.Users.data(index, LightDM.UserRoles.UidRole));
596+ compare(viewShowErrorMessageSpy.count, 1);
597+ compare(viewShowErrorMessageSpy.signalArguments[0][0], i18n.tr("Use passphrase"));
598+ }
599+
578600 function test_fingerprintFailureMessage() {
579601 var index = selectUser("has-password");
602+ unlockAndShowGreeter(); // turn on lockscreen mode
580603
581604 var biometryd = findInvisibleChild(greeter, "biometryd");
582605 verify(biometryd.operation);
@@ -588,7 +611,8 @@ Item {
588611 }
589612
590613 function test_fingerprintTooManyFailures() {
591− selectUser("has-password");
614+ var index = selectUser("has-password");
615+ unlockAndShowGreeter(); // turn on lockscreen mode
592616
593617 var biometryd = findInvisibleChild(greeter, "biometryd");
594618 biometryd.operation.mockFailure("error");
@@ -599,17 +623,31 @@ Item {
599623 compare(viewTryToUnlockSpy.count, 1);
600624
601625 compare(viewShowErrorMessageSpy.count, 3);
626+ compare(viewShowErrorMessageSpy.signalArguments[2][0], i18n.tr("Use passphrase"));
627+
628+ // Confirm that we are stuck in this mode until next login
629+ biometryd.operation.mockSuccess(LightDM.Users.data(index, LightDM.UserRoles.UidRole));
630+ compare(viewShowErrorMessageSpy.count, 4);
631+ compare(viewShowErrorMessageSpy.signalArguments[3][0], i18n.tr("Use passphrase"));
632+
633+ greeter.forcedUnlock = true;
634+ LightDM.Greeter.showGreeter();
635+ tryCompare(greeter, "waiting", false);
636+
637+ biometryd.operation.mockSuccess(LightDM.Users.data(index, LightDM.UserRoles.UidRole));
638+ verify(!greeter.active);
602639 }
603640
604641 function test_fingerprintFailureCountReset() {
605642 selectUser("has-password");
643+ unlockAndShowGreeter(); // turn on lockscreen mode
606644
607645 var biometryd = findInvisibleChild(greeter, "biometryd");
608646 biometryd.operation.mockFailure("error");
609647 biometryd.operation.mockFailure("error");
610648 compare(viewTryToUnlockSpy.count, 0);
611649
612− greeter.forceShow();
650+ unlockAndShowGreeter();
613651 biometryd.operation.mockFailure("error");
614652 biometryd.operation.mockFailure("error");
615653 compare(viewTryToUnlockSpy.count, 0);
@@ -622,6 +660,7 @@ Item {
622660
623661 function test_fingerprintWrongUid() {
624662 selectUser("has-password");
663+ unlockAndShowGreeter(); // turn on lockscreen mode
625664
626665 var biometryd = findInvisibleChild(greeter, "biometryd");
627666 biometryd.operation.mockSuccess(0);
@@ -634,6 +673,7 @@ Item {
634673 function test_fingerprintNotEnabled() {
635674 AccountsService.enableFingerprintIdentification = false;
636675 selectUser("has-password");
676+ unlockAndShowGreeter(); // turn on lockscreen mode
637677
638678 var biometryd = findInvisibleChild(greeter, "biometryd");
639679 verify(!biometryd.operation);
@@ -649,6 +689,7 @@ Item {
649689 function test_fingerprintReaderNotPresent() {
650690 Biometryd.available = false;
651691 selectUser("has-password");
692+ unlockAndShowGreeter(); // turn on lockscreen mode
652693
653694 verify(!Biometryd.available);
654695
@@ -665,6 +706,7 @@ Item {
665706
666707 function test_fingerprintGreeterNotActive() {
667708 selectUser("has-password");
709+ unlockAndShowGreeter(); // turn on lockscreen mode
668710
669711 var biometryd = findInvisibleChild(greeter, "biometryd");
670712 verify(biometryd.operation);