on xenial help sign in
[NOT WORKING] Refactor LightDM's to help pass tests
06e5419Josh Arenson
qml/Components/Dialogs.qml+3−3
@@ -78,12 +78,12 @@ Item {
78
78
79 GlobalShortcut { // lock screen
79 GlobalShortcut { // lock screen
80 shortcut: Qt.Key_ScreenSaver
80 shortcut: Qt.Key_ScreenSaver
81− onTriggered: LightDM.greeter.showGreeter()
81+ onTriggered: TheLightDM.greeter.showGreeter()
82 }
82 }
83
83
84 GlobalShortcut { // lock screen
84 GlobalShortcut { // lock screen
85 shortcut: Qt.ControlModifier|Qt.AltModifier|Qt.Key_L
85 shortcut: Qt.ControlModifier|Qt.AltModifier|Qt.Key_L
86− onTriggered: LightDM.greeter.showGreeter()
86+ onTriggered: TheLightDM.greeter.showGreeter()
87 }
87 }
88
88
89 QtObject {
89 QtObject {
@@ -115,7 +115,7 @@ Item {
115 Button {
115 Button {
116 text: i18n.ctr("Button: Lock the system", "Lock")
116 text: i18n.ctr("Button: Lock the system", "Lock")
117 onClicked: {
117 onClicked: {
118− LightDM.greeter.showGreeter()
118+ TheLightDM.greeter.showGreeter()
119 logoutDialog.hide();
119 logoutDialog.hide();
120 }
120 }
121 }
121 }
qml/Greeter/Greeter.qml+23−23
@@ -44,7 +44,7 @@ Showable {
44 readonly property bool hasLockedApp: lockedApp !== ""
44 readonly property bool hasLockedApp: lockedApp !== ""
45
45
46 property bool forcedUnlock
46 property bool forcedUnlock
47− readonly property bool locked: LightDM.greeter.active && !LightDM.greeter.authenticated && !forcedUnlock
47+ readonly property bool locked: TheLightDM.greeter.active && !TheLightDM.greeter.authenticated && !forcedUnlock
48
48
49 property bool tabletMode
49 property bool tabletMode
50 property url viewSource // only used for testing
50 property url viewSource // only used for testing
@@ -110,7 +110,7 @@ Showable {
110 QtObject {
110 QtObject {
111 id: d
111 id: d
112
112
113− readonly property bool multiUser: LightDM.users.count > 1
113+ readonly property bool multiUser: TheLightDM.users.count > 1
114 property int currentIndex
114 property int currentIndex
115 property bool waiting
115 property bool waiting
116
116
@@ -134,15 +134,15 @@ Showable {
134 loader.item.reset();
134 loader.item.reset();
135 }
135 }
136 currentIndex = uid;
136 currentIndex = uid;
137− var user = LightDM.users.data(uid, LightDM.userRoles.NameRole);
137+ var user = TheLightDM.users.data(uid, TheLightDM.userRoles.NameRole);
138 AccountsService.user = user;
138 AccountsService.user = user;
139 LauncherModel.setUser(user);
139 LauncherModel.setUser(user);
140− LightDM.greeter.authenticate(user); // always resets auth state
140+ TheLightDM.greeter.authenticate(user); // always resets auth state
141 }
141 }
142
142
143 function login() {
143 function login() {
144 enabled = false;
144 enabled = false;
145− if (LightDM.greeter.startSessionSync()) {
145+ if (TheLightDM.greeter.startSessionSync()) {
146 sessionStarted();
146 sessionStarted();
147 if (loader.item) {
147 if (loader.item) {
148 loader.item.notifyAuthenticationSucceeded();
148 loader.item.notifyAuthenticationSucceeded();
@@ -267,7 +267,7 @@ Showable {
267 root.lockedApp = "";
267 root.lockedApp = "";
268 root.forceActiveFocus();
268 root.forceActiveFocus();
269 d.selectUser(d.currentIndex, true);
269 d.selectUser(d.currentIndex, true);
270− LightDM.infographic.readyForDataChange();
270+ TheLightDM.infographic.readyForDataChange();
271 }
271 }
272
272
273 Connections {
273 Connections {
@@ -277,9 +277,9 @@ Showable {
277 }
277 }
278 onResponded: {
278 onResponded: {
279 if (root.locked) {
279 if (root.locked) {
280− LightDM.greeter.respond(response);
280+ TheLightDM.greeter.respond(response);
281 } else {
281 } else {
282− if (LightDM.greeter.active && !LightDM.greeter.authenticated) { // could happen if forcedUnlock
282+ if (TheLightDM.greeter.active && !TheLightDM.greeter.authenticated) { // could happen if forcedUnlock
283 d.login();
283 d.login();
284 }
284 }
285 loader.item.hide();
285 loader.item.hide();
@@ -345,18 +345,18 @@ Showable {
345 Binding {
345 Binding {
346 target: loader.item
346 target: loader.item
347 property: "userModel"
347 property: "userModel"
348− value: LightDM.users
348+ value: TheLightDM.users
349 }
349 }
350
350
351 Binding {
351 Binding {
352 target: loader.item
352 target: loader.item
353 property: "infographicModel"
353 property: "infographicModel"
354− value: LightDM.infographic
354+ value: TheLightDM.infographic
355 }
355 }
356 }
356 }
357
357
358 Connections {
358 Connections {
359− target: LightDM.greeter
359+ target: TheLightDM.greeter
360
360
361 onShowGreeter: root.forceShow()
361 onShowGreeter: root.forceShow()
362
362
@@ -366,7 +366,7 @@ Showable {
366 }
366 }
367
367
368 onShowMessage: {
368 onShowMessage: {
369− if (!LightDM.greeter.active) {
369+ if (!TheLightDM.greeter.active) {
370 return; // could happen if hideGreeter() comes in before we prompt
370 return; // could happen if hideGreeter() comes in before we prompt
371 }
371 }
372
372
@@ -385,7 +385,7 @@ Showable {
385 onShowPrompt: {
385 onShowPrompt: {
386 d.waiting = false;
386 d.waiting = false;
387
387
388− if (!LightDM.greeter.active) {
388+ if (!TheLightDM.greeter.active) {
389 return; // could happen if hideGreeter() comes in before we prompt
389 return; // could happen if hideGreeter() comes in before we prompt
390 }
390 }
391
391
@@ -395,14 +395,14 @@ Showable {
395 onAuthenticationComplete: {
395 onAuthenticationComplete: {
396 d.waiting = false;
396 d.waiting = false;
397
397
398− if (LightDM.greeter.authenticated) {
398+ if (TheLightDM.greeter.authenticated) {
399 AccountsService.failedLogins = 0;
399 AccountsService.failedLogins = 0;
400 d.login();
400 d.login();
401− if (!LightDM.greeter.promptless) {
401+ if (!TheLightDM.greeter.promptless) {
402 loader.item.hide();
402 loader.item.hide();
403 }
403 }
404 } else {
404 } else {
405− if (!LightDM.greeter.promptless) {
405+ if (!TheLightDM.greeter.promptless) {
406 AccountsService.failedLogins++;
406 AccountsService.failedLogins++;
407 }
407 }
408
408
@@ -423,7 +423,7 @@ Showable {
423 }
423 }
424
424
425 loader.item.notifyAuthenticationFailed();
425 loader.item.notifyAuthenticationFailed();
426− if (!LightDM.greeter.promptless) {
426+ if (!TheLightDM.greeter.promptless) {
427 d.selectUser(d.currentIndex, false);
427 d.selectUser(d.currentIndex, false);
428 }
428 }
429 }
429 }
@@ -431,8 +431,8 @@ Showable {
431
431
432 onRequestAuthenticationUser: {
432 onRequestAuthenticationUser: {
433 // Find index for requested user, if it exists
433 // Find index for requested user, if it exists
434− for (var i = 0; i < LightDM.users.count; i++) {
434+ for (var i = 0; i < TheLightDM.users.count; i++) {
435− if (user === LightDM.users.data(i, LightDM.userRoles.NameRole)) {
435+ if (user === TheLightDM.users.data(i, TheLightDM.userRoles.NameRole)) {
436 d.selectUser(i, true);
436 d.selectUser(i, true);
437 return;
437 return;
438 }
438 }
@@ -441,19 +441,19 @@ Showable {
441 }
441 }
442
442
443 Binding {
443 Binding {
444− target: LightDM.greeter
444+ target: TheLightDM.greeter
445 property: "active"
445 property: "active"
446 value: root.active
446 value: root.active
447 }
447 }
448
448
449 Binding {
449 Binding {
450− target: LightDM.infographic
450+ target: TheLightDM.infographic
451 property: "username"
451 property: "username"
452− value: AccountsService.statsWelcomeScreen ? LightDM.users.data(d.currentIndex, LightDM.userRoles.NameRole) : ""
452+ value: AccountsService.statsWelcomeScreen ? TheLightDM.users.data(d.currentIndex, TheLightDM.userRoles.NameRole) : ""
453 }
453 }
454
454
455 Connections {
455 Connections {
456 target: i18n
456 target: i18n
457− onLanguageChanged: LightDM.infographic.readyForDataChange()
457+ onLanguageChanged: TheLightDM.infographic.readyForDataChange()
458 }
458 }
459}
459}
qml/Greeter/LightDM.qml → qml/Greeter/TheLightDM.qmlrenamed+9−1
@@ -29,8 +29,16 @@ Loader {
29 property var infographic: d.valid ? loader.item.infographic : null
29 property var infographic: d.valid ? loader.item.infographic : null
30 property var users: d.valid ? loader.item.users : null
30 property var users: d.valid ? loader.item.users : null
31 property var userRoles: d.valid ? loader.item.userRoles : null
31 property var userRoles: d.valid ? loader.item.userRoles : null
32+ property var fullLightDM: {
33+ if (typeof applicationArguments !== "undefined") {
34+ if (applicationArguments.mode === "greeter") {
35+ return true;
36+ }
37+ }
38+ return false;
39+ }
32
40
33− source: applicationArguments.mode === "greeter" ?
41+ source: fullLightDM ?
34 "FullLightDMImpl.qml" : "IntegratedLightDMImpl.qml"
42 "FullLightDMImpl.qml" : "IntegratedLightDMImpl.qml"
35
43
36 QtObject {
44 QtObject {
qml/Greeter/qmldirnew file+1
@@ -0,0 +1 @@
1+singleton TheLightDM 0.1 TheLightDM.qml
qml/Shell.qml+3−3
@@ -382,7 +382,7 @@ Item {
382 // more clever here.
382 // more clever here.
383 active: usageScenario != "desktop" && AccountsService.demoEdges
383 active: usageScenario != "desktop" && AccountsService.demoEdges
384
384
385− paused: LightDM.greeter.active
385+ paused: TheLightDM.greeter.active
386 launcher: launcher
386 launcher: launcher
387 panel: panel
387 panel: panel
388 edgeSize: shell.edgeSize
388 edgeSize: shell.edgeSize
@@ -508,7 +508,7 @@ Item {
508
508
509 greeter.notifyAboutToFocusApp("unity8-dash");
509 greeter.notifyAboutToFocusApp("unity8-dash");
510
510
511− var animate = !LightDM.greeter.active && !stages.shown
511+ var animate = !TheLightDM.greeter.active && !stages.shown
512 dash.setCurrentScope(0, animate, false)
512 dash.setCurrentScope(0, animate, false)
513 ApplicationManager.requestFocusApplication("unity8-dash")
513 ApplicationManager.requestFocusApplication("unity8-dash")
514 }
514 }
@@ -560,7 +560,7 @@ Item {
560 ApplicationManager.focusedApplicationId &&
560 ApplicationManager.focusedApplicationId &&
561 ApplicationManager.findApplication(ApplicationManager.focusedApplicationId).fullscreen
561 ApplicationManager.findApplication(ApplicationManager.focusedApplicationId).fullscreen
562
562
563− fullscreenMode: (topmostApplicationIsFullscreen && !LightDM.greeter.active && launcher.progress == 0)
563+ fullscreenMode: (topmostApplicationIsFullscreen && !TheLightDM.greeter.active && launcher.progress == 0)
564 || greeter.hasLockedApp
564 || greeter.hasLockedApp
565 }
565 }
566
566
tests/mocks/LightDM/plugin.cpp+2−2
@@ -53,12 +53,12 @@ static QObject *infographic_provider(QQmlEngine *engine, QJSEngine *scriptEngine
53 return UserMetricsOutput::UserMetrics::getInstance();
53 return UserMetricsOutput::UserMetrics::getInstance();
54}
54}
55
55
56−void IntegratedLightDMPlugin::registerTypes(const char *uri)
56+void LightDMPlugin::registerTypes(const char *uri)
57{
57{
58 qmlRegisterType<QAbstractItemModel>();
58 qmlRegisterType<QAbstractItemModel>();
59 qmlRegisterType<UserMetricsOutput::ColorTheme>();
59 qmlRegisterType<UserMetricsOutput::ColorTheme>();
60
60
61− Q_ASSERT(uri == QLatin1String("IntegratedLightDM"));
61+ Q_ASSERT(uri == QLatin1String("LightDM"));
62 qRegisterMetaType<QLightDM::Greeter::MessageType>("QLightDM::Greeter::MessageType");
62 qRegisterMetaType<QLightDM::Greeter::MessageType>("QLightDM::Greeter::MessageType");
63 qRegisterMetaType<QLightDM::Greeter::PromptType>("QLightDM::Greeter::PromptType");
63 qRegisterMetaType<QLightDM::Greeter::PromptType>("QLightDM::Greeter::PromptType");
64 qmlRegisterSingletonType<MockGreeter>(uri, 0, 1, "Greeter", greeter_provider);
64 qmlRegisterSingletonType<MockGreeter>(uri, 0, 1, "Greeter", greeter_provider);
tests/mocks/LightDM/plugin.h+1−1
@@ -20,7 +20,7 @@
20#include <QtQml/QQmlEngine>
20#include <QtQml/QQmlEngine>
21#include <QtQml/QQmlExtensionPlugin>
21#include <QtQml/QQmlExtensionPlugin>
22
22
23−class IntegratedLightDMPlugin : public QQmlExtensionPlugin
23+class LightDMPlugin : public QQmlExtensionPlugin
24{
24{
25 Q_OBJECT
25 Q_OBJECT
26 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
26 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
tests/mocks/LightDM/qmldir+1−1
@@ -1,3 +1,3 @@
1−module IntegratedLightDM
1+module LightDM
2plugin MockLightDM-qml
2plugin MockLightDM-qml
3typeinfo IntegratedLightDM.qmltypes
3typeinfo IntegratedLightDM.qmltypes
tests/qmltests/Greeter/tst_Greeter.qml+1−1
@@ -21,7 +21,7 @@ import "../../../qml/Greeter"
21import Ubuntu.Components 0.1
21import Ubuntu.Components 0.1
22import AccountsService 0.1
22import AccountsService 0.1
23import GSettings 1.0
23import GSettings 1.0
24−import LightDM.IntegratedLightDM 0.1 as LightDM
24+import LightDM 0.1 as LightDM // This is the mock
25import Unity.Test 0.1 as UT
25import Unity.Test 0.1 as UT
26
26
27Item {
27Item {