on xenial help sign in
update tests
44eced4Michael Zanetti
plugins/Unity/Launcher/backend/launcherbackend.cpp+8−4
@@ -71,6 +71,12 @@ void LauncherBackend::setStoredApplications(const QStringList &appIds)
71 }
71 }
72 }
72 }
73 m_storedApps = appIds;
73 m_storedApps = appIds;
74+ Q_FOREACH(const QString &appId, m_storedApps) {
75+ if (!m_itemCache.contains(appId)) {
76+ LauncherBackendItem *item = new LauncherBackendItem();
77+ m_itemCache.insert(appId, item);
78+ }
79+ }
74 syncToAccounts();
80 syncToAccounts();
75}
81}
76
82
@@ -199,7 +205,7 @@ void LauncherBackend::syncFromAccounts()
199 m_storedApps.clear();
205 m_storedApps.clear();
200
206
201 qDebug() << "syncing from accounts" << m_user << m_accounts;
207 qDebug() << "syncing from accounts" << m_user << m_accounts;
202− if (m_user != "" && m_accounts != nullptr) {
208+ if (m_accounts && m_user.isEmpty()) {
203 qDebug() << "loading from user" << m_user << m_accounts;
209 qDebug() << "loading from user" << m_user << m_accounts;
204 QVariant variant = m_accounts->getUserProperty(m_user, "launcher-items");
210 QVariant variant = m_accounts->getUserProperty(m_user, "launcher-items");
205 qDebug() << "loaded launcher-items" << variant;
211 qDebug() << "loaded launcher-items" << variant;
@@ -207,7 +213,7 @@ void LauncherBackend::syncFromAccounts()
207 defaults = isDefaultsItem(apps);
213 defaults = isDefaultsItem(apps);
208 }
214 }
209
215
210− if (defaults) {
216+ if (m_accounts && defaults) { // Checking accounts as it'll be null when !useStorage
211 QGSettings gSettings("com.canonical.Unity.Launcher", "/com/canonical/unity/launcher/");
217 QGSettings gSettings("com.canonical.Unity.Launcher", "/com/canonical/unity/launcher/");
212 qDebug() << "Got launcher gSettings" << gSettings.get("favorites");
218 qDebug() << "Got launcher gSettings" << gSettings.get("favorites");
213 Q_FOREACH(const QString &entry, gSettings.get("favorites").toStringList()) {
219 Q_FOREACH(const QString &entry, gSettings.get("favorites").toStringList()) {
@@ -329,5 +335,3 @@ bool LauncherBackend::isDefaultsItem(const QList<QVariantMap> &apps) const
329
335
330 return (apps.size() == 1 && apps[0].value("defaults").toBool());
336 return (apps.size() == 1 && apps[0].value("defaults").toBool());
331}
337}
332−
333−
tests/plugins/Unity/Launcher/launcherbackendtest.cpp+2−34
@@ -15,6 +15,7 @@
15 *
15 *
16 * Authors:
16 * Authors:
17 * Michael Terry <michael.terry@canonical.com>
17 * Michael Terry <michael.terry@canonical.com>
18+ * Michael Zanetti <michael.zanetti@canonical.com>
18 */
19 */
19
20
20#include "launcherbackend.h"
21#include "launcherbackend.h"
@@ -32,46 +33,13 @@ private Q_SLOTS:
32 LauncherBackend backend(false);
33 LauncherBackend backend(false);
33
34
34 backend.setStoredApplications(QStringList() << "relative.path" << "/full/path");
35 backend.setStoredApplications(QStringList() << "relative.path" << "/full/path");
35− QCOMPARE(backend.storedApplications(), QStringList() << "/usr/share/applications/relative.path" << "/full/path");
36+ QCOMPARE(backend.storedApplications(), QStringList() << "relative.path" << "/full/path");
36−
37− QCOMPARE(backend.desktopFile("one.desktop"), QString("/usr/share/applications/one.desktop"));
38− QCOMPARE(backend.desktopFile("two"), QString("/usr/share/applications/two"));
39− QCOMPARE(backend.desktopFile("/full"), QString("/full"));
40−
41− QCOMPARE(backend.desktopFile("/usr/share/applications/one.desktop"), QString("/usr/share/applications/one.desktop"));
42− }
43−
44− void testDesktopReading()
45− {
46− LauncherBackend backend(false);
47−
48− QCOMPARE(backend.displayName(SRCDIR "/rel-icon.desktop"), QString("Relative Icon"));
49− QCOMPARE(backend.icon(SRCDIR "/rel-icon.desktop"), QString("image://gicon/rel-icon"));
50−
51− QCOMPARE(backend.displayName(SRCDIR "/abs-icon.desktop"), QString("Absolute Icon"));
52− QCOMPARE(backend.icon(SRCDIR "/abs-icon.desktop"), QString("/path/to/icon.png"));
53−
54− QCOMPARE(backend.displayName(SRCDIR "/no-icon.desktop"), QString("No Icon"));
55− QCOMPARE(backend.icon(SRCDIR "/no-icon.desktop"), QString(""));
56−
57− QCOMPARE(backend.displayName(SRCDIR "/no-name.desktop"), QString(""));
58− QCOMPARE(backend.icon(SRCDIR "/no-name.desktop"), QString("image://gicon/no-name"));
59−
60− QCOMPARE(backend.displayName(SRCDIR "/no-exist.desktop"), QString(""));
61− QCOMPARE(backend.icon(SRCDIR "/no-exist.desktop"), QString(""));
62 }
37 }
63
38
64 void testPinning()
39 void testPinning()
65 {
40 {
66 LauncherBackend backend(false);
41 LauncherBackend backend(false);
67
42
68− // Confirm that default entries are all pinned
69− auto defaultApps = backend.storedApplications();
70− QVERIFY(defaultApps.size() > 0);
71− for (auto app: defaultApps) {
72− QCOMPARE(backend.isPinned(app), true);
73− }
74−
75 backend.setStoredApplications(QStringList() << "one" << "two");
43 backend.setStoredApplications(QStringList() << "one" << "two");
76 QCOMPARE(backend.isPinned("one"), false);
44 QCOMPARE(backend.isPinned("one"), false);
77 QCOMPARE(backend.isPinned("two"), false);
45 QCOMPARE(backend.isPinned("two"), false);