@@ -19,6 +19,7 @@ import QtTest 1.0
19import ".."
19import ".."
20import "../../../qml/Greeter"
20import "../../../qml/Greeter"
21import Ubuntu.Components 1.3
21import Ubuntu.Components 1.3
22+import Ubuntu.Fingerprints 0.1
22import AccountsService 0.1
23import AccountsService 0.1
23import GSettings 1.0
24import GSettings 1.0
24import IntegratedLightDM 0.1 as LightDM
25import IntegratedLightDM 0.1 as LightDM
@@ -125,6 +126,12 @@ Item {
125 signalName: "_notifyAuthenticationFailedCalled"
126 signalName: "_notifyAuthenticationFailedCalled"
130+ id: viewShowErrorMessageSpy
131+ target: testCase.view
132+ signalName: "_showErrorMessageCalled"
128 SignalSpy {
135 SignalSpy {
129 id: viewResetSpy
136 id: viewResetSpy
130 target: testCase.view
137 target: testCase.view
@@ -149,6 +156,7 @@ Item {
149 viewHideSpy.clear();
156 viewHideSpy.clear();
150 viewAuthenticationSucceededSpy.clear();
157 viewAuthenticationSucceededSpy.clear();
151 viewAuthenticationFailedSpy.clear();
158 viewAuthenticationFailedSpy.clear();
159+ viewShowErrorMessageSpy.clear();
152 viewResetSpy.clear();
160 viewResetSpy.clear();
153 viewTryToUnlockSpy.clear();
161 viewTryToUnlockSpy.clear();
154 tryCompare(greeter, "waiting", false);
162 tryCompare(greeter, "waiting", false);
@@ -552,5 +560,47 @@ Item {
552 LightDM.Greeter.showGreeter();
560 LightDM.Greeter.showGreeter();
553 compare(viewResetSpy.count, 1);
561 compare(viewResetSpy.count, 1);
564+ function test_fingerprintSuccess() {
565+ selectUser("has-password");
566+ Fingerprints.mockIdentification(0, Fingerprints.None);
567+ verify(greeter.forcedUnlock);
570+ function test_fingerprintFailureMessage() {
571+ selectUser("has-password");
572+ Fingerprints.mockIdentification(0, Fingerprints.Error);
573+ compare(viewShowErrorMessageSpy.count, 1);
574+ compare(viewShowErrorMessageSpy.signalArguments[0][0], i18n.tr("Try again"));
577+ function test_fingerprintTooManyFailures() {
578+ selectUser("has-password");
579+ Fingerprints.mockIdentification(0, Fingerprints.Error);
580+ Fingerprints.mockIdentification(0, Fingerprints.Error);
581+ compare(viewTryToUnlockSpy.count, 0);
583+ Fingerprints.mockIdentification(0, Fingerprints.Error);
584+ compare(viewTryToUnlockSpy.count, 1);
586+ compare(viewShowErrorMessageSpy.count, 3);
589+ function test_fingerprintFailureCountReset() {
590+ selectUser("has-password");
591+ Fingerprints.mockIdentification(0, Fingerprints.Error);
592+ Fingerprints.mockIdentification(0, Fingerprints.Error);
593+ compare(viewTryToUnlockSpy.count, 0);
595+ greeter.forceShow();
596+ Fingerprints.mockIdentification(0, Fingerprints.Error);
597+ Fingerprints.mockIdentification(0, Fingerprints.Error);
598+ compare(viewTryToUnlockSpy.count, 0);
600+ Fingerprints.mockIdentification(0, Fingerprints.Error);
601+ compare(viewTryToUnlockSpy.count, 1);
603+ compare(viewShowErrorMessageSpy.count, 5);