on xenial help sign in
Added better tests for indicator menu enable setting
121c4c8Brian Douglass
tests/mocks/GSettings.1.0/fake_gsettings.cpp+33
@@ -27,6 +27,7 @@ GSettingsControllerQml::GSettingsControllerQml()
27 , m_autohideLauncher(false)
27 , m_autohideLauncher(false)
28 , m_launcherWidth(8)
28 , m_launcherWidth(8)
29 , m_edgeDragWidth(2)
29 , m_edgeDragWidth(2)
30+ , m_enableIndicatorMenu(true)
30{
31{
31}
32}
32
33
@@ -145,6 +146,19 @@ void GSettingsControllerQml::setEdgeDragWidth(uint edgeDragWidth)
145 }
146 }
146}
147}
147
148
149+bool GSettingsControllerQml::enableIndicatorMenu() const
150+{
151+ return m_enableIndicatorMenu;
152+}
153+
154+void GSettingsControllerQml::setEnableIndicatorMenu(bool enableIndicatorMenu)
155+{
156+ if (m_enableIndicatorMenu != enableIndicatorMenu) {
157+ m_enableIndicatorMenu = enableIndicatorMenu;
158+ Q_EMIT enableIndicatorMenuChanged(enableIndicatorMenu);
159+ }
160+}
161+
148GSettingsSchemaQml::GSettingsSchemaQml(QObject *parent): QObject(parent) {
162GSettingsSchemaQml::GSettingsSchemaQml(QObject *parent): QObject(parent) {
149}
163}
150
164
@@ -209,6 +223,8 @@ void GSettingsQml::componentComplete()
209 this, &GSettingsQml::launcherWidthChanged);
223 this, &GSettingsQml::launcherWidthChanged);
210 connect(GSettingsControllerQml::instance(), &GSettingsControllerQml::edgeDragWidthChanged,
224 connect(GSettingsControllerQml::instance(), &GSettingsControllerQml::edgeDragWidthChanged,
211 this, &GSettingsQml::edgeDragWidthChanged);
225 this, &GSettingsQml::edgeDragWidthChanged);
226+ connect(GSettingsControllerQml::instance(), &GSettingsControllerQml::enableIndicatorMenuChanged,
227+ this, &GSettingsQml::enableIndicatorMenuChanged);
212
228
213 Q_EMIT disableHeightChanged();
229 Q_EMIT disableHeightChanged();
214 Q_EMIT pictureUriChanged();
230 Q_EMIT pictureUriChanged();
@@ -218,6 +234,7 @@ void GSettingsQml::componentComplete()
218 Q_EMIT autohideLauncherChanged();
234 Q_EMIT autohideLauncherChanged();
219 Q_EMIT launcherWidthChanged();
235 Q_EMIT launcherWidthChanged();
220 Q_EMIT edgeDragWidthChanged();
236 Q_EMIT edgeDragWidthChanged();
237+ Q_EMIT enableIndicatorMenuChanged();
221}
238}
222
239
223GSettingsSchemaQml * GSettingsQml::schema() const {
240GSettingsSchemaQml * GSettingsQml::schema() const {
@@ -324,6 +341,15 @@ QVariant GSettingsQml::edgeDragWidth() const
324 }
341 }
325}
342}
326
343
344+QVariant GSettingsQml::enableIndicatorMenu() const
345+{
346+ if (m_valid && m_schema->id() == "com.canonical.Unity8") {
347+ return GSettingsControllerQml::instance()->enableIndicatorMenu();
348+ } else {
349+ return QVariant();
350+ }
351+}
352+
327void GSettingsQml::setLifecycleExemptAppids(const QVariant &appIds)
353void GSettingsQml::setLifecycleExemptAppids(const QVariant &appIds)
328{
354{
329 if (m_valid && m_schema->id() == "com.canonical.qtmir") {
355 if (m_valid && m_schema->id() == "com.canonical.qtmir") {
@@ -351,3 +377,10 @@ void GSettingsQml::setEdgeDragWidth(const QVariant &edgeDragWidth)
351 GSettingsControllerQml::instance()->setEdgeDragWidth(edgeDragWidth.toUInt());
377 GSettingsControllerQml::instance()->setEdgeDragWidth(edgeDragWidth.toUInt());
352 }
378 }
353}
379}
380+
381+void GSettingsQml::setEnableIndicatorMenu(const QVariant &enableIndicatorMenu)
382+{
383+ if (m_valid && m_schema->id() == "com.canonical.Unity8") {
384+ GSettingsControllerQml::instance()->setEnableIndicatorMenu(enableIndicatorMenu.toBool());
385+ }
386+}
tests/mocks/GSettings.1.0/fake_gsettings.h+9
@@ -57,6 +57,7 @@ class GSettingsQml: public QObject, public QQmlParserStatus
57 Q_PROPERTY(QVariant autohideLauncher READ autohideLauncher WRITE setAutohideLauncher NOTIFY autohideLauncherChanged)
57 Q_PROPERTY(QVariant autohideLauncher READ autohideLauncher WRITE setAutohideLauncher NOTIFY autohideLauncherChanged)
58 Q_PROPERTY(QVariant launcherWidth READ launcherWidth WRITE setLauncherWidth NOTIFY launcherWidthChanged)
58 Q_PROPERTY(QVariant launcherWidth READ launcherWidth WRITE setLauncherWidth NOTIFY launcherWidthChanged)
59 Q_PROPERTY(QVariant edgeDragWidth READ edgeDragWidth WRITE setEdgeDragWidth NOTIFY edgeDragWidthChanged)
59 Q_PROPERTY(QVariant edgeDragWidth READ edgeDragWidth WRITE setEdgeDragWidth NOTIFY edgeDragWidthChanged)
60+ Q_PROPERTY(QVariant enableIndicatorMenu READ enableIndicatorMenu WRITE setEnableIndicatorMenu NOTIFY enableIndicatorMenuChanged)
60
61
61public:
62public:
62 GSettingsQml(QObject *parent = nullptr);
63 GSettingsQml(QObject *parent = nullptr);
@@ -73,6 +74,7 @@ public:
73 QVariant autohideLauncher() const;
74 QVariant autohideLauncher() const;
74 QVariant launcherWidth() const;
75 QVariant launcherWidth() const;
75 QVariant edgeDragWidth() const;
76 QVariant edgeDragWidth() const;
77+ QVariant enableIndicatorMenu() const;
76
78
77 void setDisableHeight(const QVariant &val);
79 void setDisableHeight(const QVariant &val);
78 void setPictureUri(const QVariant &str);
80 void setPictureUri(const QVariant &str);
@@ -82,6 +84,7 @@ public:
82 void setAutohideLauncher(const QVariant &autohideLauncher);
84 void setAutohideLauncher(const QVariant &autohideLauncher);
83 void setLauncherWidth(const QVariant &launcherWidth);
85 void setLauncherWidth(const QVariant &launcherWidth);
84 void setEdgeDragWidth(const QVariant &edgeDragWidth);
86 void setEdgeDragWidth(const QVariant &edgeDragWidth);
87+ void setEnableIndicatorMenu(const QVariant &enableIndicatorMenu);
85
88
86Q_SIGNALS:
89Q_SIGNALS:
87 void disableHeightChanged();
90 void disableHeightChanged();
@@ -93,6 +96,7 @@ Q_SIGNALS:
93 void autohideLauncherChanged();
96 void autohideLauncherChanged();
94 void launcherWidthChanged();
97 void launcherWidthChanged();
95 void edgeDragWidthChanged();
98 void edgeDragWidthChanged();
99+ void enableIndicatorMenuChanged();
96
100
97private:
101private:
98 GSettingsSchemaQml* m_schema;
102 GSettingsSchemaQml* m_schema;
@@ -133,6 +137,9 @@ public:
133 uint edgeDragWidth() const;
137 uint edgeDragWidth() const;
134 Q_INVOKABLE void setEdgeDragWidth(uint edgeDragWidth);
138 Q_INVOKABLE void setEdgeDragWidth(uint edgeDragWidth);
135
139
140+ bool enableIndicatorMenu() const;
141+ Q_INVOKABLE void setEnableIndicatorMenu(bool enableIndicatorMenu);
142+
136Q_SIGNALS:
143Q_SIGNALS:
137 void disableHeightChanged();
144 void disableHeightChanged();
138 void pictureUriChanged(const QString&);
145 void pictureUriChanged(const QString&);
@@ -142,6 +149,7 @@ Q_SIGNALS:
142 void autohideLauncherChanged(bool autohideLauncher);
149 void autohideLauncherChanged(bool autohideLauncher);
143 void launcherWidthChanged(int launcherWidth);
150 void launcherWidthChanged(int launcherWidth);
144 void edgeDragWidthChanged(uint edgeDragWidth);
151 void edgeDragWidthChanged(uint edgeDragWidth);
152+ void enableIndicatorMenuChanged(bool enableIndicatorMenu);
145
153
146private:
154private:
147 GSettingsControllerQml();
155 GSettingsControllerQml();
@@ -154,6 +162,7 @@ private:
154 bool m_autohideLauncher;
162 bool m_autohideLauncher;
155 int m_launcherWidth;
163 int m_launcherWidth;
156 uint m_edgeDragWidth;
164 uint m_edgeDragWidth;
165+ bool m_enableIndicatorMenu;
157
166
158 static GSettingsControllerQml* s_controllerInstance;
167 static GSettingsControllerQml* s_controllerInstance;
159 QList<GSettingsQml *> m_registeredGSettings;
168 QList<GSettingsQml *> m_registeredGSettings;
tests/qmltests/tst_Shell.qml+18
@@ -2714,5 +2714,23 @@ Rectangle {
2714 tryCompare(topLevelSurfaceList, "count", countBeforeClose - 1);
2714 tryCompare(topLevelSurfaceList, "count", countBeforeClose - 1);
2715 tryCompareFunction(function() { return ApplicationManager.focusedApplicationId; }, "calendar-app");
2715 tryCompareFunction(function() { return ApplicationManager.focusedApplicationId; }, "calendar-app");
2716 }
2716 }
2717+
2718+ function test_indicatorMenuEnabledSetting_data() {
2719+ return [
2720+ {tag: "indicator menu enabled", enabled: true},
2721+ {tag: "indicator menu disabled", enabled: false}
2722+ ]
2723+ }
2724+
2725+ function test_indicatorMenuEnabledSetting(data) {
2726+ loadShell("phone");
2727+
2728+ GSettingsController.setEnableIndicatorMenu(data.enabled);
2729+
2730+ var panel = findChild(shell, "panel");
2731+ compare(panel.indicators.available, data.enabled);
2732+
2733+ GSettingsController.setEnableIndicatorMenu(true);
2734+ }
2717 }
2735 }
2718}
2736}