Changeset View
Changeset View
Standalone View
Standalone View
autotests/kconfigskeletontest.cpp
Show All 16 Lines | |||||
17 | #define DEFAULT_SETTING3 QFont("helvetica",12) | 17 | #define DEFAULT_SETTING3 QFont("helvetica",12) | ||
18 | #define DEFAULT_SETTING4 QString("Hello World") | 18 | #define DEFAULT_SETTING4 QString("Hello World") | ||
19 | 19 | | |||
20 | #define WRITE_SETTING1 true | 20 | #define WRITE_SETTING1 true | ||
21 | #define WRITE_SETTING2 QColor(3,2,1) | 21 | #define WRITE_SETTING2 QColor(3,2,1) | ||
22 | #define WRITE_SETTING3 QFont("helvetica",14) | 22 | #define WRITE_SETTING3 QFont("helvetica",14) | ||
23 | #define WRITE_SETTING4 QString("KDE") | 23 | #define WRITE_SETTING4 QString("KDE") | ||
24 | 24 | | |||
25 | static inline QString kdeGlobalsPath() | ||||
ervin: { should be on its own line | |||||
26 | { | ||||
27 | return QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/kdeglobals"; | ||||
28 | } | ||||
29 | | ||||
ervin: ditto | |||||
30 | static inline QString kdeSystemGlobalsPath() | ||||
31 | { | ||||
32 | return QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/system.kdeglobals"; | ||||
33 | } | ||||
34 | | ||||
25 | void KConfigSkeletonTest::initTestCase() | 35 | void KConfigSkeletonTest::initTestCase() | ||
26 | { | 36 | { | ||
27 | QStandardPaths::setTestModeEnabled(true); | 37 | QStandardPaths::setTestModeEnabled(true); | ||
28 | } | 38 | } | ||
29 | 39 | | |||
30 | void KConfigSkeletonTest::init() | 40 | void KConfigSkeletonTest::init() | ||
31 | { | 41 | { | ||
32 | QFile::remove(QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/kconfigskeletontestrc"); | 42 | QFile::remove(QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/kconfigskeletontestrc"); | ||
Show All 15 Lines | |||||
48 | QVERIFY(!s->isSaveNeeded()); | 58 | QVERIFY(!s->isSaveNeeded()); | ||
49 | } | 59 | } | ||
50 | 60 | | |||
51 | void KConfigSkeletonTest::cleanup() | 61 | void KConfigSkeletonTest::cleanup() | ||
52 | { | 62 | { | ||
53 | delete s; | 63 | delete s; | ||
54 | } | 64 | } | ||
55 | 65 | | |||
66 | void KConfigSkeletonTest::cleanupTestCase() | ||||
67 | { | ||||
68 | if (QFile::exists(kdeGlobalsPath())) { | ||||
69 | QVERIFY(QFile::remove(kdeGlobalsPath())); | ||||
70 | } | ||||
71 | if (QFile::exists(kdeSystemGlobalsPath())) { | ||||
72 | QVERIFY(QFile::remove(kdeSystemGlobalsPath())); | ||||
73 | } | ||||
74 | } | ||||
75 | | ||||
56 | void KConfigSkeletonTest::testSimple() | 76 | void KConfigSkeletonTest::testSimple() | ||
57 | { | 77 | { | ||
58 | mMyBool = WRITE_SETTING1; | 78 | mMyBool = WRITE_SETTING1; | ||
59 | mMyColor = WRITE_SETTING2; | 79 | mMyColor = WRITE_SETTING2; | ||
60 | mMyFont = WRITE_SETTING3; | 80 | mMyFont = WRITE_SETTING3; | ||
61 | mMyString = WRITE_SETTING4; | 81 | mMyString = WRITE_SETTING4; | ||
62 | 82 | | |||
63 | QVERIFY(s->isSaveNeeded()); | 83 | QVERIFY(s->isSaveNeeded()); | ||
▲ Show 20 Lines • Show All 97 Lines • ▼ Show 20 Line(s) | 177 | { | |||
161 | itemBool->setValue(false); | 181 | itemBool->setValue(false); | ||
162 | s->save(); | 182 | s->save(); | ||
163 | 183 | | |||
164 | mMyBool = true; | 184 | mMyBool = true; | ||
165 | 185 | | |||
166 | s->read(); | 186 | s->read(); | ||
167 | QCOMPARE(mMyBool, false); | 187 | QCOMPARE(mMyBool, false); | ||
168 | } | 188 | } | ||
189 | | ||||
190 | void KConfigSkeletonTest::testDefaultFromFile() | ||||
191 | { | ||||
192 | // This test ensures we don't override default value when this one came from a file | ||||
ervin: s/ensure/ensures/ | |||||
193 | // system.kdeglobals is a global file and can provide default | ||||
194 | | ||||
195 | // Add global as value for testDefault in system.kdeglobals. | ||||
196 | // This value will became the new default | ||||
197 | KConfig glob(QStringLiteral("system.kdeglobals")); | ||||
198 | KConfigGroup generalGlob(&glob, "General"); | ||||
199 | generalGlob.writeEntry("testDefault", "global"); | ||||
200 | QVERIFY(glob.sync()); | ||||
201 | | ||||
202 | QString value; | ||||
203 | s->load(); | ||||
204 | s->setCurrentGroup(QStringLiteral("General")); | ||||
205 | auto item = s->addItemString(QStringLiteral("testDefault"), value, QStringLiteral("defaultcpp")); | ||||
206 | s->save(); | ||||
207 | s->load(); | ||||
208 | // Expected value at this point is default value and default value came from system.kdeglobals -> "global" | ||||
209 | QCOMPARE(item->value(), QStringLiteral("global")); | ||||
210 | | ||||
211 | // Set value to a custom value | ||||
212 | item->setValue(QStringLiteral("custom")); | ||||
213 | s->save(); | ||||
214 | s->load(); | ||||
dfaure: Is this needed? Nothing uses glob after this point. | |||||
215 | // Expected value is now our custom value | ||||
216 | QCOMPARE(item->value(), QStringLiteral("custom")); | ||||
217 | | ||||
218 | // Reset to defaults | ||||
219 | s->setDefaults(); | ||||
220 | s->save(); | ||||
ervin: More comments welcome in that test as well. | |||||
221 | s->load(); | ||||
222 | // Default value is still global | ||||
223 | QCOMPARE(item->value(), QStringLiteral("global")); | ||||
224 | | ||||
225 | // Change default value | ||||
226 | generalGlob.writeEntry("testDefault", "globalv2"); | ||||
227 | QVERIFY(glob.sync()); | ||||
228 | | ||||
229 | // expect globalv2 as default value and we don't expect global to be wrote on kconfigskeletontestrc | ||||
230 | s->load(); | ||||
231 | | ||||
232 | // Add item to force readDefault | ||||
233 | s->addItemString(QStringLiteral("testDefault"), value, QStringLiteral("defaultcpp")); | ||||
234 | s->save(); | ||||
235 | s->load(); | ||||
236 | QCOMPARE(item->value(), QStringLiteral("globalv2")); | ||||
237 | } | ||||
238 | | ||||
239 | void KConfigSkeletonTest::testSetValueToOverridenDefaultCppValue() | ||||
240 | { | ||||
241 | // ensure we don't have any regression if we set value to cpp default value and we have a system default | ||||
242 | KConfig glob(QStringLiteral("system.kdeglobals")); | ||||
243 | KConfigGroup generalGlob(&glob, "General"); | ||||
244 | generalGlob.writeEntry("testRegression", "global"); | ||||
245 | QVERIFY(glob.sync()); | ||||
246 | | ||||
247 | QString value; | ||||
248 | s->load(); | ||||
249 | s->setCurrentGroup(QStringLiteral("General")); | ||||
250 | auto item = s->addItemString(QStringLiteral("testRegression"), value, QStringLiteral("defaultcpp")); | ||||
251 | item->setValue("defaultcpp"); | ||||
252 | s->save(); | ||||
253 | s->load(); | ||||
254 | QCOMPARE(item->value(), QStringLiteral("defaultcpp")); | ||||
255 | } |
{ should be on its own line