on xenial help sign in
Add more tests for selectUser
a484a26Michael Terry
tests/mocks/LightDM/IntegratedLightDM/MockGreeter.cpp+16
@@ -33,3 +33,19 @@ void MockGreeter::setMockMode(QString mockMode)
33 Q_EMIT mockModeChanged(mockMode);
33 Q_EMIT mockModeChanged(mockMode);
34 }
34 }
35}
35}
36+
37+QString MockGreeter::selectUserHint() const
38+{
39+ Q_D(const Greeter);
40+ return d->m_greeter->selectUserHint();
41+}
42+
43+void MockGreeter::setSelectUserHint(const QString &selectUserHint)
44+{
45+ Q_D(Greeter);
46+
47+ if (d->m_greeter->selectUserHint() != selectUserHint) {
48+ d->m_greeter->setSelectUserHint(selectUserHint);
49+ Q_EMIT selectUserHintChanged();
50+ }
51+}
tests/mocks/LightDM/IntegratedLightDM/MockGreeter.h+5
@@ -25,13 +25,18 @@ class MockGreeter : public Greeter {
25 Q_OBJECT
25 Q_OBJECT
26
26
27 Q_PROPERTY(QString mockMode READ mockMode WRITE setMockMode NOTIFY mockModeChanged)
27 Q_PROPERTY(QString mockMode READ mockMode WRITE setMockMode NOTIFY mockModeChanged)
28+ Q_PROPERTY(QString selectUser READ selectUserHint WRITE setSelectUserHint NOTIFY selectUserHintChanged)
28
29
29public:
30public:
30 QString mockMode() const;
31 QString mockMode() const;
31 void setMockMode(QString mockMode);
32 void setMockMode(QString mockMode);
32
33
34+ QString selectUserHint() const;
35+ void setSelectUserHint(const QString &selectUserHint);
36+
33Q_SIGNALS:
37Q_SIGNALS:
34 void mockModeChanged(QString mode);
38 void mockModeChanged(QString mode);
39+ void selectUserHintChanged();
35};
40};
36
41
37#endif // MOCK_UNITY_GREETER_H
42#endif // MOCK_UNITY_GREETER_H
tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.cpp+7−1
@@ -77,7 +77,13 @@ bool Greeter::lockHint () const
77QString Greeter::selectUserHint() const
77QString Greeter::selectUserHint() const
78{
78{
79 Q_D(const Greeter);
79 Q_D(const Greeter);
80− return d->selectUserHint();
80+ return d->selectUserHint;
81+}
82+
83+void Greeter::setSelectUserHint(const QString &selectUserHint)
84+{
85+ Q_D(Greeter);
86+ d->selectUserHint = selectUserHint;
81}
87}
82
88
83bool Greeter::selectGuestHint() const
89bool Greeter::selectGuestHint() const
tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.h+1
@@ -70,6 +70,7 @@ public:
70 bool lockHint () const;
70 bool lockHint () const;
71 bool hasGuestAccountHint() const;
71 bool hasGuestAccountHint() const;
72 QString selectUserHint() const;
72 QString selectUserHint() const;
73+ void setSelectUserHint(const QString &selectUserHint); // only in mock
73 bool selectGuestHint() const;
74 bool selectGuestHint() const;
74 QString autologinUserHint() const;
75 QString autologinUserHint() const;
75 bool autologinGuestHint() const;
76 bool autologinGuestHint() const;
tests/mocks/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.cpp−9
@@ -129,13 +129,4 @@ void GreeterPrivate::handleRespond_full(const QString &response)
129 q->sendAuthenticationComplete();
129 q->sendAuthenticationComplete();
130}
130}
131
131
132−QString GreeterPrivate::selectUserHint() const
133−{
134− if (mockMode == "full") {
135− return "info-prompt";
136− } else {
137− return "";
138− }
139−}
140−
141}
132}
tests/mocks/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.h+1−1
@@ -34,12 +34,12 @@ public:
34 bool authenticated;
34 bool authenticated;
35 QString authenticationUser;
35 QString authenticationUser;
36 bool twoFactorDone;
36 bool twoFactorDone;
37+ QString selectUserHint;
37
38
38 QString mockMode;
39 QString mockMode;
39
40
40 void handleAuthenticate();
41 void handleAuthenticate();
41 void handleRespond(const QString &response);
42 void handleRespond(const QString &response);
42− QString selectUserHint() const;
43
43
44protected:
44protected:
45 Greeter * const q_ptr;
45 Greeter * const q_ptr;
tests/qmltests/Greeter/tst_Greeter.qml+21−7
@@ -139,7 +139,9 @@ Item {
139
139
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,10 +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− greeter.failedLoginsDelayAttempts = 7;
157− greeter.failedLoginsDelayMinutes = 5;
158 }
157 }
159
158
160 function resetLoader() {
159 function resetLoader() {
@@ -166,6 +165,8 @@ Item {
166 loader.active = true;
165 loader.active = true;
167 tryCompare(loader, "status", Loader.Ready);
166 tryCompare(loader, "status", Loader.Ready);
168 removeTimeConstraintsFromSwipeAreas(loader.item);
167 removeTimeConstraintsFromSwipeAreas(loader.item);
168+ tryCompare(greeter, "waiting", false);
169+ view = findChild(greeter, "testView");
169 }
170 }
170
171
171 function getIndexOf(name) {
172 function getIndexOf(name) {
@@ -555,9 +556,22 @@ Item {
555 }
556 }
556
557
557 function test_selectUserHint() {
558 function test_selectUserHint() {
558− // "full" mock sets selectUser == "info-prompt"
559+ LightDM.Greeter.selectUser = "info-prompt";
560+ resetLoader();
559 var i = verifySelected("info-prompt");
561 var i = verifySelected("info-prompt");
560− verify(i != 0); // just make sure that info-prompt isn't default 0 answer
562+ verify(i != 0); // sanity-check that info-prompt isn't default 0 answer
563+ }
564+
565+ function test_selectUserHintUnset() {
566+ LightDM.Greeter.selectUser = "";
567+ resetLoader();
568+ verifySelected(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
569+ }
570+
571+ function test_selectUserHintInvalid() {
572+ LightDM.Greeter.selectUser = "not-a-real-user";
573+ resetLoader();
574+ verifySelected(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
561 }
575 }
562 }
576 }
563}
577}