on xenial help sign in
Fix tests
3785e04Michael Terry
qml/Greeter/Greeter.qml+4−4
@@ -522,13 +522,13 @@ Showable {
522 function failOperation(reason) {
522 function failOperation(reason) {
523 console.log("Failed to identify user by fingerprint:", reason);
523 console.log("Failed to identify user by fingerprint:", reason);
524 restartOperation();
524 restartOperation();
525− if (!allowFingerprint) {
525+ if (!d.allowFingerprint) {
526 d.startUnlock(false /* toTheRight */);
526 d.startUnlock(false /* toTheRight */);
527 }
527 }
528 if (loader.item) {
528 if (loader.item) {
529− var msg = d.allowFingerprint ? i18n.tr("Try again")
529+ var msg = d.allowFingerprint ? i18n.tr("Try again") :
530− d.alphanumeric ? i18n.tr("Use passphrase")
530+ d.alphanumeric ? i18n.tr("Use passphrase") :
531− : i18n.tr("Use passcode");
531+ i18n.tr("Use passcode");
532 loader.item.showErrorMessage(msg);
532 loader.item.showErrorMessage(msg);
533 }
533 }
534 }
534 }
tests/qmltests/Greeter/tst_Greeter.qml+44−2
@@ -210,6 +210,14 @@ Item {
210 compare(greeter.shown, false);
210 compare(greeter.shown, false);
211 }
211 }
212
212
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+
213 function test_unlockPass() {
221 function test_unlockPass() {
214 selectUser("has-password");
222 selectUser("has-password");
215 tryCompare(viewShowPromptSpy, "count", 1);
223 tryCompare(viewShowPromptSpy, "count", 1);
@@ -566,6 +574,7 @@ Item {
566
574
567 function test_fingerprintSuccess() {
575 function test_fingerprintSuccess() {
568 var index = selectUser("has-password");
576 var index = selectUser("has-password");
577+ unlockAndShowGreeter(); // turn on lockscreen mode
569
578
570 var biometryd = findInvisibleChild(greeter, "biometryd");
579 var biometryd = findInvisibleChild(greeter, "biometryd");
571 verify(biometryd.operation);
580 verify(biometryd.operation);
@@ -575,8 +584,22 @@ Item {
575 verify(!greeter.active);
584 verify(!greeter.active);
576 }
585 }
577
586
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+
578 function test_fingerprintFailureMessage() {
600 function test_fingerprintFailureMessage() {
579 var index = selectUser("has-password");
601 var index = selectUser("has-password");
602+ unlockAndShowGreeter(); // turn on lockscreen mode
580
603
581 var biometryd = findInvisibleChild(greeter, "biometryd");
604 var biometryd = findInvisibleChild(greeter, "biometryd");
582 verify(biometryd.operation);
605 verify(biometryd.operation);
@@ -588,7 +611,8 @@ Item {
588 }
611 }
589
612
590 function test_fingerprintTooManyFailures() {
613 function test_fingerprintTooManyFailures() {
591− selectUser("has-password");
614+ var index = selectUser("has-password");
615+ unlockAndShowGreeter(); // turn on lockscreen mode
592
616
593 var biometryd = findInvisibleChild(greeter, "biometryd");
617 var biometryd = findInvisibleChild(greeter, "biometryd");
594 biometryd.operation.mockFailure("error");
618 biometryd.operation.mockFailure("error");
@@ -599,17 +623,31 @@ Item {
599 compare(viewTryToUnlockSpy.count, 1);
623 compare(viewTryToUnlockSpy.count, 1);
600
624
601 compare(viewShowErrorMessageSpy.count, 3);
625 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);
602 }
639 }
603
640
604 function test_fingerprintFailureCountReset() {
641 function test_fingerprintFailureCountReset() {
605 selectUser("has-password");
642 selectUser("has-password");
643+ unlockAndShowGreeter(); // turn on lockscreen mode
606
644
607 var biometryd = findInvisibleChild(greeter, "biometryd");
645 var biometryd = findInvisibleChild(greeter, "biometryd");
608 biometryd.operation.mockFailure("error");
646 biometryd.operation.mockFailure("error");
609 biometryd.operation.mockFailure("error");
647 biometryd.operation.mockFailure("error");
610 compare(viewTryToUnlockSpy.count, 0);
648 compare(viewTryToUnlockSpy.count, 0);
611
649
612− greeter.forceShow();
650+ unlockAndShowGreeter();
613 biometryd.operation.mockFailure("error");
651 biometryd.operation.mockFailure("error");
614 biometryd.operation.mockFailure("error");
652 biometryd.operation.mockFailure("error");
615 compare(viewTryToUnlockSpy.count, 0);
653 compare(viewTryToUnlockSpy.count, 0);
@@ -622,6 +660,7 @@ Item {
622
660
623 function test_fingerprintWrongUid() {
661 function test_fingerprintWrongUid() {
624 selectUser("has-password");
662 selectUser("has-password");
663+ unlockAndShowGreeter(); // turn on lockscreen mode
625
664
626 var biometryd = findInvisibleChild(greeter, "biometryd");
665 var biometryd = findInvisibleChild(greeter, "biometryd");
627 biometryd.operation.mockSuccess(0);
666 biometryd.operation.mockSuccess(0);
@@ -634,6 +673,7 @@ Item {
634 function test_fingerprintNotEnabled() {
673 function test_fingerprintNotEnabled() {
635 AccountsService.enableFingerprintIdentification = false;
674 AccountsService.enableFingerprintIdentification = false;
636 selectUser("has-password");
675 selectUser("has-password");
676+ unlockAndShowGreeter(); // turn on lockscreen mode
637
677
638 var biometryd = findInvisibleChild(greeter, "biometryd");
678 var biometryd = findInvisibleChild(greeter, "biometryd");
639 verify(!biometryd.operation);
679 verify(!biometryd.operation);
@@ -649,6 +689,7 @@ Item {
649 function test_fingerprintReaderNotPresent() {
689 function test_fingerprintReaderNotPresent() {
650 Biometryd.available = false;
690 Biometryd.available = false;
651 selectUser("has-password");
691 selectUser("has-password");
692+ unlockAndShowGreeter(); // turn on lockscreen mode
652
693
653 verify(!Biometryd.available);
694 verify(!Biometryd.available);
654
695
@@ -665,6 +706,7 @@ Item {
665
706
666 function test_fingerprintGreeterNotActive() {
707 function test_fingerprintGreeterNotActive() {
667 selectUser("has-password");
708 selectUser("has-password");
709+ unlockAndShowGreeter(); // turn on lockscreen mode
668
710
669 var biometryd = findInvisibleChild(greeter, "biometryd");
711 var biometryd = findInvisibleChild(greeter, "biometryd");
670 verify(biometryd.operation);
712 verify(biometryd.operation);