on xenial help sign in
Add more tests for selectUser
commita484a266426390d271e4e69a3aef900121d446af authorMichael Terry <michael.terry@canonical.com> dateThu 9 Jun 2016, 17:45 (10 years ago) parent2559bce
7 files changed+51−18
tests/mocks/LightDM/IntegratedLightDM/MockGreeter.cpp+16 tests/mocks/LightDM/IntegratedLightDM/MockGreeter.h+5 tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.cpp+7−1 tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.h+1 tests/mocks/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.cpp−9 tests/mocks/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.h+1−1 tests/qmltests/Greeter/tst_Greeter.qml+21−7
tests/mocks/LightDM/IntegratedLightDM/MockGreeter.cpp+16
@@ -33,3 +33,19 @@ void MockGreeter::setMockMode(QString mockMode)
3333 Q_EMIT mockModeChanged(mockMode);
3434 }
3535}
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 {
2525 Q_OBJECT
2626
2727 Q_PROPERTY(QString mockMode READ mockMode WRITE setMockMode NOTIFY mockModeChanged)
28+ Q_PROPERTY(QString selectUser READ selectUserHint WRITE setSelectUserHint NOTIFY selectUserHintChanged)
2829
2930public:
3031 QString mockMode() const;
3132 void setMockMode(QString mockMode);
3233
34+ QString selectUserHint() const;
35+ void setSelectUserHint(const QString &selectUserHint);
36+
3337Q_SIGNALS:
3438 void mockModeChanged(QString mode);
39+ void selectUserHintChanged();
3540};
3641
3742#endif // MOCK_UNITY_GREETER_H
tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.cpp+7−1
@@ -77,7 +77,13 @@ bool Greeter::lockHint () const
7777QString Greeter::selectUserHint() const
7878{
7979 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;
8187}
8288
8389bool Greeter::selectGuestHint() const
tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.h+1
@@ -70,6 +70,7 @@ public:
7070 bool lockHint () const;
7171 bool hasGuestAccountHint() const;
7272 QString selectUserHint() const;
73+ void setSelectUserHint(const QString &selectUserHint); // only in mock
7374 bool selectGuestHint() const;
7475 QString autologinUserHint() const;
7576 bool autologinGuestHint() const;
tests/mocks/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.cpp−9
@@ -129,13 +129,4 @@ void GreeterPrivate::handleRespond_full(const QString &response)
129129 q->sendAuthenticationComplete();
130130}
131131
132−QString GreeterPrivate::selectUserHint() const
133−{
134− if (mockMode == "full") {
135− return "info-prompt";
136− } else {
137− return "";
138− }
139−}
140−
141132}
tests/mocks/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.h+1−1
@@ -34,12 +34,12 @@ public:
3434 bool authenticated;
3535 QString authenticationUser;
3636 bool twoFactorDone;
37+ QString selectUserHint;
3738
3839 QString mockMode;
3940
4041 void handleAuthenticate();
4142 void handleRespond(const QString &response);
42− QString selectUserHint() const;
4343
4444protected:
4545 Greeter * const q_ptr;
tests/qmltests/Greeter/tst_Greeter.qml+21−7
@@ -139,7 +139,9 @@ Item {
139139
140140 function init() {
141141 greeterSettings.lockedOutTime = 0;
142− resetLoader();
142+ LightDM.Greeter.selectUser = "";
143+ greeter.failedLoginsDelayAttempts = 7;
144+ greeter.failedLoginsDelayMinutes = 5;
143145 teaseSpy.clear();
144146 sessionStartedSpy.clear();
145147 activeChangedSpy.clear();
@@ -151,10 +153,7 @@ Item {
151153 viewAuthenticationFailedSpy.clear();
152154 viewResetSpy.clear();
153155 viewTryToUnlockSpy.clear();
154− tryCompare(greeter, "waiting", false);
155− view = findChild(greeter, "testView");
156− greeter.failedLoginsDelayAttempts = 7;
157− greeter.failedLoginsDelayMinutes = 5;
156+ resetLoader();
158157 }
159158
160159 function resetLoader() {
@@ -166,6 +165,8 @@ Item {
166165 loader.active = true;
167166 tryCompare(loader, "status", Loader.Ready);
168167 removeTimeConstraintsFromSwipeAreas(loader.item);
168+ tryCompare(greeter, "waiting", false);
169+ view = findChild(greeter, "testView");
169170 }
170171
171172 function getIndexOf(name) {
@@ -555,9 +556,22 @@ Item {
555556 }
556557
557558 function test_selectUserHint() {
558− // "full" mock sets selectUser == "info-prompt"
559+ LightDM.Greeter.selectUser = "info-prompt";
560+ resetLoader();
559561 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));
561575 }
562576 }
563577}