on xenial help sign in
Fix up session test a bit, which also lets it pass
commit979cee66fa2d54639846c4551311d78fbef4aa98 authorMichael Terry <mike@mterry.name> dateThu 19 Jan 2017, 15:12 (10 years ago) parent669c2af
5 files changed+13−76
qml/Greeter/WideView.qml+5−4 tests/mocks/liblightdm/MockController.cpp−24 tests/mocks/liblightdm/MockController.h−15 tests/mocks/liblightdm/MockUsersModel.cpp+1−2 tests/qmltests/Greeter/tst_WideView.qml+7−31
qml/Greeter/WideView.qml+5−4
@@ -130,12 +130,13 @@ FocusScope {
130130
131131 model: root.userModel
132132 onResponded: root.responded(response)
133− onSelected: {
134− root.selected(index)
135− currentSession = LightDMService.users.data(index, LightDMService.userRoles.SessionRole);
136− }
133+ onSelected: root.selected(index)
137134 onSessionChooserButtonClicked: parent.state = "SessionsList"
138135
136+ onCurrentIndexChanged: {
137+ currentSession = LightDMService.users.data(currentIndex, LightDMService.userRoles.SessionRole);
138+ }
139+
139140 Keys.forwardTo: [sessionChooserLoader.item]
140141 }
141142
tests/mocks/liblightdm/MockController.cpp−24
@@ -152,30 +152,6 @@ void MockController::setUserMode(const QString &userMode)
152152 }
153153}
154154
155−QString MockController::sessionName() const
156−{
157− return QString("INVALID - Please read directly from the UserModel");
158−}
159−
160−void MockController::setSessionName(const QString &sessionName)
161−{
162− // Let the user model deal with this
163− Q_EMIT sessionNameChanged(sessionName, m_currentUsername);
164−}
165−
166−QString MockController::currentUsername() const
167−{
168− return m_currentUsername;
169−}
170−
171−void MockController::setCurrentUsername(const QString &username)
172−{
173− if (m_currentUsername != username) {
174− m_currentUsername = username;
175− Q_EMIT currentUsernameChanged();
176− }
177−}
178−
179155QString MockController::sessionMode() const
180156{
181157 return m_sessionMode;
tests/mocks/liblightdm/MockController.h−15
@@ -38,11 +38,6 @@ class Q_DECL_EXPORT MockController : public QObject
3838 // single, none, full
3939 Q_PROPERTY(QString sessionMode READ sessionMode WRITE setSessionMode NOTIFY sessionModeChanged)
4040
41− // This would be best as a Q_INVOKABLE, but using a property allows for
42− // keeping the mock cleaner
43− Q_PROPERTY(QString sessionName READ sessionName WRITE setSessionName NOTIFY sessionNameChanged)
44− Q_PROPERTY(QString currentUsername READ currentUsername WRITE setCurrentUsername NOTIFY currentUsernameChanged)
45−
4641 Q_PROPERTY(int numAvailableSessions READ numFullSessions CONSTANT)
4742 Q_PROPERTY(int numSessions READ numSessions WRITE setNumSessions NOTIFY numSessionsChanged)
4843
@@ -73,12 +68,6 @@ public:
7368 QString sessionMode() const;
7469 void setSessionMode(const QString &sessionMode);
7570
76− QString sessionName() const;
77− void setSessionName(const QString &userIndex);
78−
79− QString currentUsername() const;
80− void setCurrentUsername(const QString &username);
81−
8271 class SessionItem
8372 {
8473 public:
@@ -92,7 +81,6 @@ public:
9281 void setNumSessions(int numSessions);
9382
9483Q_SIGNALS:
95− void currentUsernameChanged();
9684 void selectUserHintChanged();
9785 void selectGuestHintChanged();
9886 void hasGuestAccountHintChanged();
@@ -101,13 +89,10 @@ Q_SIGNALS:
10189 void userModeChanged();
10290 void sessionModeChanged();
10391 void numSessionsChanged();
104− void sessionNameChanged(const QString &sessionName, const QString &username);
10592
10693private:
10794 explicit MockController(QObject* parent=0);
10895
109− QString m_currentUsername;
110− QString m_sessionName;
11196 QString m_selectUserHint;
11297 bool m_selectGuestHint;
11398 bool m_hasGuestAccountHint;
tests/mocks/liblightdm/MockUsersModel.cpp+1−2
@@ -73,8 +73,6 @@ UsersModel::UsersModel(QObject *parent)
7373 this, &UsersModel::resetEntries);
7474 connect(MockController::instance(), &MockController::userModeChanged,
7575 this, &UsersModel::resetEntries);
76− connect(MockController::instance(), &MockController::sessionNameChanged,
77− this, &UsersModel::setCurrentSessionName);
7876 resetEntries();
7977}
8078
@@ -180,6 +178,7 @@ void UsersModel::resetEntries()
180178 { "info-after-login", "Info After Login", 0, 0, false, false, "ubuntu", 0 },
181179 { "info-prompt", "Info Prompt", 0, 0, false, false, "ubuntu", 0 },
182180 { "wacky-prompts", "Interspersed Prompts", 0, 0, false, false, "ubuntu", 0 },
181+ { "invalid-session", "Invalid Session", 0, 0, false, false, "invalid", 0 },
183182 { "locked", "Locked", 0, 0, false, false, "ubuntu", 0 },
184183 { "long-info-prompt", "Long Info Prompt", 0, 0, false, false, "ubuntu", 0 },
185184 { "long-name", "Long name (far far too long to fit, seriously this would never fit on the screen, you will never see this part of the name)", 0, 0, false, false, "ubuntu", 0 },
tests/qmltests/Greeter/tst_WideView.qml+7−31
@@ -336,7 +336,7 @@ StyledItem {
336336 respondedSpy.clear();
337337 teaseSpy.clear();
338338 emergencySpy.clear();
339− LightDMController.sessionMode = "full";
339+ LightDMController.reset();
340340 LightDM.Sessions.iconSearchDirectories = [testIconDirectory];
341341 }
342342
@@ -394,34 +394,16 @@ StyledItem {
394394 }
395395
396396 function test_changingSessionSticksToUser() {
397− LightDMController.sessionMode = "full";
398−
399397 var loginList = findChild(view, "loginList");
400− var fakeSession1 = "ASessionWillNeverBeCalledThis";
401− var fakeSession2 = "ASessionWillAlsoNeverBeCalledThis";
402−
403− // For this test to work, a user has to be selected and the
404− // mock must be made aware of that user
405− selectUser("has-password")
406− LightDMController.currentUsername = "has-password"
407− compare(LightDM.Sessions.count > 1, true);
408− compare(loginList.currentSession != fakeSession1, true);
409− LightDMController.sessionName = fakeSession1;
410−
411− selectUser("has-pin")
412− LightDMController.currentUsername = "has-pin"
413− compare(loginList.currentSession != fakeSession2, true);
414− LightDMController.sessionName = fakeSession2;
415398
416− selectUser("has-password")
417− tryCompare(loginList, "currentSession", fakeSession1);
399+ selectUser("invalid-session");
400+ tryCompare(loginList, "currentSession", "invalid");
418401
419− selectUser("has-pin")
420− tryCompare(loginList, "currentSession", fakeSession2);
402+ selectUser("has-password");
403+ tryCompare(loginList, "currentSession", "ubuntu");
421404
422− // Force a model reset
423− LightDMController.userMode = "single";
424− LightDMController.userMode = "full";
405+ selectUser("invalid-session")
406+ tryCompare(loginList, "currentSession", "invalid");
425407 }
426408
427409 function test_tease_data() {
@@ -494,9 +476,6 @@ StyledItem {
494476 }
495477
496478 function test_sessionIconNotShownWithActiveUser() {
497− LightDMController.sessionMode = "full";
498− compare(LightDM.Sessions.count > 1, true);
499−
500479 selectUser("active");
501480
502481 var sessionChooserButton = findChild(view, "sessionChooserButton");
@@ -504,9 +483,6 @@ StyledItem {
504483 }
505484
506485 function test_sessionIconShownWithMultipleSessions() {
507− LightDMController.sessionMode = "full";
508− compare(LightDM.Sessions.count > 1, true);
509−
510486 selectUser("has-password");
511487
512488 var sessionChooserButton = findChild(view, "sessionChooserButton");