12#include <QtTest/QtTest>
17void RepoManagerTest::initTestCase()
19 rndRepos <<
"mer-core" <<
"adaptation" <<
"nemo" <<
"non-oss" <<
"oss";
20 releaseRepos <<
"vendor" <<
"apps";
23void RepoManagerTest::testSettings()
25 SsuCoreConfig *
const coreConfig = SsuCoreConfig::instance();
26 SsuRepoManager repoManager;
28 repoManager.
add(
"repo1",
"http://repo1");
29 QCOMPARE(coreConfig->value(
"repository-urls/repo1").toString(), QString(
"http://repo1"));
30 QVERIFY(!coreConfig->value(
"enabled-repos").toStringList().contains(
"repo1"));
31 QVERIFY(!coreConfig->value(
"disabled-repos").toStringList().contains(
"repo1"));
33 repoManager.
enable(
"repo1");
34 QCOMPARE(coreConfig->value(
"repository-urls/repo1").toString(), QString(
"http://repo1"));
35 QVERIFY(!coreConfig->value(
"enabled-repos").toStringList().contains(
"repo1"));
36 QVERIFY(!coreConfig->value(
"disabled-repos").toStringList().contains(
"repo1"));
38 repoManager.
add(
"repo1");
39 QCOMPARE(coreConfig->value(
"repository-urls/repo1").toString(), QString(
"http://repo1"));
40 QVERIFY(!coreConfig->value(
"disabled-repos").toStringList().contains(
"repo1"));
43 QCOMPARE(coreConfig->value(
"repository-urls/repo1").toString(), QString(
"http://repo1"));
44 QVERIFY(coreConfig->value(
"disabled-repos").toStringList().contains(
"repo1"));
46 repoManager.
enable(
"repo1");
47 QCOMPARE(coreConfig->value(
"repository-urls/repo1").toString(), QString(
"http://repo1"));
48 QVERIFY(!coreConfig->value(
"disabled-repos").toStringList().contains(
"repo1"));
50 repoManager.
add(
"repo2",
"http://repo2");
51 QCOMPARE(coreConfig->value(
"repository-urls/repo1").toString(), QString(
"http://repo1"));
52 QVERIFY(!coreConfig->value(
"disabled-repos").toStringList().contains(
"repo1"));
53 QCOMPARE(coreConfig->value(
"repository-urls/repo2").toString(), QString(
"http://repo2"));
54 QVERIFY(!coreConfig->value(
"enabled-repos").toStringList().contains(
"repo2"));
55 QVERIFY(!coreConfig->value(
"disabled-repos").toStringList().contains(
"repo2"));
58 QCOMPARE(coreConfig->value(
"repository-urls/repo1").toString(), QString(
"http://repo1"));
59 QVERIFY(!coreConfig->value(
"disabled-repos").toStringList().contains(
"repo1"));
60 QCOMPARE(coreConfig->value(
"repository-urls/repo2").toString(), QString(
"http://repo2"));
61 QVERIFY(!coreConfig->value(
"enabled-repos").toStringList().contains(
"repo2"));
62 QVERIFY(coreConfig->value(
"disabled-repos").toStringList().contains(
"repo2"));
64 repoManager.
enable(
"repo2");
65 QCOMPARE(coreConfig->value(
"repository-urls/repo1").toString(), QString(
"http://repo1"));
66 QVERIFY(!coreConfig->value(
"disabled-repos").toStringList().contains(
"repo1"));
67 QCOMPARE(coreConfig->value(
"repository-urls/repo2").toString(), QString(
"http://repo2"));
68 QVERIFY(!coreConfig->value(
"enabled-repos").toStringList().contains(
"repo2"));
69 QVERIFY(!coreConfig->value(
"disabled-repos").toStringList().contains(
"repo2"));
71 repoManager.
add(
"repo2");
72 QCOMPARE(coreConfig->value(
"repository-urls/repo1").toString(), QString(
"http://repo1"));
73 QVERIFY(!coreConfig->value(
"disabled-repos").toStringList().contains(
"repo1"));
74 QCOMPARE(coreConfig->value(
"repository-urls/repo2").toString(), QString(
"http://repo2"));
75 QVERIFY(!coreConfig->value(
"disabled-repos").toStringList().contains(
"repo2"));
77 repoManager.
remove(
"repo1");
78 QVERIFY(!coreConfig->contains(
"repository-urls/repo1"));
79 QVERIFY(!coreConfig->value(
"enabled-repos").toStringList().contains(
"repo1"));
80 QVERIFY(!coreConfig->value(
"disabled-repos").toStringList().contains(
"repo1"));
81 QCOMPARE(coreConfig->value(
"repository-urls/repo2").toString(), QString(
"http://repo2"));
82 QVERIFY(!coreConfig->value(
"disabled-repos").toStringList().contains(
"repo2"));
84 repoManager.
remove(
"repo2");
85 QVERIFY(!coreConfig->contains(
"repository-urls/repo1"));
86 QVERIFY(!coreConfig->value(
"enabled-repos").toStringList().contains(
"repo1"));
87 QVERIFY(!coreConfig->value(
"disabled-repos").toStringList().contains(
"repo1"));
88 QVERIFY(!coreConfig->contains(
"repository-urls/repo2"));
89 QVERIFY(!coreConfig->value(
"enabled-repos").toStringList().contains(
"repo2"));
90 QVERIFY(!coreConfig->value(
"disabled-repos").toStringList().contains(
"repo2"));
93void RepoManagerTest::testCustomRepos()
95 SsuCoreConfig *
const coreConfig = SsuCoreConfig::instance();
96 SsuRepoManager repoManager;
97 QStringList customRepos;
100 repoManager.
add(
"r1",
"http://localhost/r1/");
101 repoManager.
add(
"r2",
"http://localhost/r2/");
102 customRepos <<
"r1" <<
"r2";
104 QCOMPARE(releaseRepos.toSet().count(), 2);
109 set = releaseRepos.toSet().unite(repoManager.
repos().toSet());
110 QCOMPARE(set.count(), 4);
111 QVERIFY(set == customRepos.toSet().unite(releaseRepos.toSet()));
116 set = rndRepos.toSet().unite(repoManager.
repos().toSet());
117 QCOMPARE(set.count(), 7);
118 QVERIFY(set == customRepos.toSet().unite(rndRepos.toSet()));
121 customRepos <<
"store";
122 repoManager.
add(
"store");
123 set = rndRepos.toSet().unite(repoManager.
repos().toSet());
124 QCOMPARE(set.count(), 8);
125 QVERIFY(set == customRepos.toSet().unite(rndRepos.toSet()));
130 set = releaseRepos.toSet().unite(repoManager.
repos().toSet());
131 QCOMPARE(set.count(), 5);
132 QVERIFY(set == customRepos.toSet().unite(releaseRepos.toSet()));
138 QVERIFY(releaseRepos.toSet() == repoManager.
repos().toSet());
143 QVERIFY(rndRepos.toSet() == repoManager.
repos().toSet());
147 QVERIFY(rndRepos.toSet() == repoManager.
repos().toSet());
152 customRepos <<
"store";
157 set = releaseRepos.toSet().unite(repoManager.
repos().toSet());
158 QCOMPARE(set.count(), 3);
159 QVERIFY(set == customRepos.toSet().unite(releaseRepos.toSet()));
164 set = rndRepos.toSet().unite(repoManager.
repos().toSet());
165 QCOMPARE(set.count(), 6);
166 QVERIFY(set == customRepos.toSet().unite(rndRepos.toSet()));
170 set = rndRepos.toSet().unite(repoManager.
repos().toSet());
171 QCOMPARE(set.count(), 6);
172 QVERIFY(set == customRepos.toSet().unite(rndRepos.toSet()));
175void RepoManagerTest::testRepos()
177 SsuCoreConfig *
const coreConfig = SsuCoreConfig::instance();
178 SsuRepoManager repoManager;
183 set = rndRepos.toSet().subtract(repoManager.
repos(
true).toSet());
184 QVERIFY(set.isEmpty());
186 set = releaseRepos.toSet().subtract(repoManager.
repos(
false).toSet());
187 QVERIFY(set.isEmpty());
193 set = releaseRepos.toSet().subtract(repoManager.
repos().toSet());
194 QVERIFY(set.isEmpty());
200 set = rndRepos.toSet().subtract(repoManager.
repos().toSet());
201 QVERIFY(set.isEmpty());
205 set = rndRepos.toSet().subtract(repoManager.
repos().toSet());
206 QVERIFY(set.isEmpty());
Q_INVOKABLE Ssu::DeviceModeFlags deviceMode()
Q_INVOKABLE void setDeviceMode(Ssu::DeviceModeFlags mode, enum Ssu::EditMode editMode=Ssu::Replace)
int remove(const QString &repo)
int add(const QString &repo, const QString &repoUrl=QString())
QStringList repos(int filter=Ssu::NoFilter|Ssu::UserBlacklist)
int enable(const QString &repo)
int disable(const QString &repo)
@ ReleaseMode
Enable Release mode.
@ RndMode
Enable RnD mode for device.
@ UpdateMode
Do repo isolation and similar bits important for updating devices.
@ AppInstallMode
Do repo isolation, but keep store repository enabled.
@ Replace
Replace the old value with the new one.
@ Add
Make sure the given value is set in the bitmask.