aboutsummaryrefslogtreecommitdiff
path: root/autotests/kconfigskeletontest.cpp
diff options
context:
space:
mode:
authorAlbert Astals Cid <aacid@kde.org>2015-01-07 00:54:10 +0100
committerAlbert Astals Cid <aacid@kde.org>2015-01-07 00:55:00 +0100
commit257b66e049483d198723e515c3c1e65e18b6afb3 (patch)
tree8fda0c355cbbebda4249ed737807206ea243cf9c /autotests/kconfigskeletontest.cpp
parent915976c1238be811f169eab1b02f7e8dad6410e0 (diff)
downloadkconfig-257b66e049483d198723e515c3c1e65e18b6afb3.tar.gz
kconfig-257b66e049483d198723e515c3c1e65e18b6afb3.tar.bz2
Fix KCoreConfigSkeleton when toggling a value with saves in between
REVIEW: 121838 Acked by Matthew Dawson
Diffstat (limited to 'autotests/kconfigskeletontest.cpp')
-rw-r--r--autotests/kconfigskeletontest.cpp84
1 files changed, 63 insertions, 21 deletions
diff --git a/autotests/kconfigskeletontest.cpp b/autotests/kconfigskeletontest.cpp
index f401b9f0..898366c0 100644
--- a/autotests/kconfigskeletontest.cpp
+++ b/autotests/kconfigskeletontest.cpp
@@ -35,15 +35,17 @@ QTEST_MAIN(KConfigSkeletonTest)
#define WRITE_SETTING3 QFont("helvetica",14)
#define WRITE_SETTING4 QString("KDE")
-void KConfigSkeletonTest::initTestCase()
+void KConfigSkeletonTest::init()
{
- setCurrentGroup("MyGroup");
- addItemBool("MySetting1", mMyBool, DEFAULT_SETTING1);
- addItemColor("MySetting2", mMyColor, DEFAULT_SETTING2);
+ QFile::remove(QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/kconfigskeletontestrc");
+ s = new KConfigSkeleton("kconfigskeletontestrc");
+ s->setCurrentGroup("MyGroup");
+ itemBool = s->addItemBool("MySetting1", mMyBool, DEFAULT_SETTING1);
+ s->addItemColor("MySetting2", mMyColor, DEFAULT_SETTING2);
- setCurrentGroup("MyOtherGroup");
- addItemFont("MySetting3", mMyFont, DEFAULT_SETTING3);
- addItemString("MySetting4", mMyString, DEFAULT_SETTING4);
+ s->setCurrentGroup("MyOtherGroup");
+ s->addItemFont("MySetting3", mMyFont, DEFAULT_SETTING3);
+ s->addItemString("MySetting4", mMyString, DEFAULT_SETTING4);
QCOMPARE(mMyBool, DEFAULT_SETTING1);
QCOMPARE(mMyColor, DEFAULT_SETTING2);
@@ -51,6 +53,11 @@ void KConfigSkeletonTest::initTestCase()
QCOMPARE(mMyString, DEFAULT_SETTING4);
}
+void KConfigSkeletonTest::cleanup()
+{
+ delete s;
+}
+
void KConfigSkeletonTest::testSimple()
{
mMyBool = WRITE_SETTING1;
@@ -58,14 +65,14 @@ void KConfigSkeletonTest::testSimple()
mMyFont = WRITE_SETTING3;
mMyString = WRITE_SETTING4;
- save();
+ s->save();
mMyBool = false;
mMyColor = QColor();
mMyString.clear();
mMyFont = QFont();
- read();
+ s->read();
QCOMPARE(mMyBool, WRITE_SETTING1);
QCOMPARE(mMyColor, WRITE_SETTING2);
@@ -75,33 +82,68 @@ void KConfigSkeletonTest::testSimple()
void KConfigSkeletonTest::testRemoveItem()
{
- QVERIFY(findItem("MySetting1"));
- removeItem("MySetting1");
- QVERIFY(!findItem("MySetting1"));
+ QVERIFY(s->findItem("MySetting1"));
+ s->removeItem("MySetting1");
+ QVERIFY(!s->findItem("MySetting1"));
}
void KConfigSkeletonTest::testClear()
{
- QVERIFY(findItem("MySetting2"));
- QVERIFY(findItem("MySetting3"));
- QVERIFY(findItem("MySetting4"));
+ QVERIFY(s->findItem("MySetting2"));
+ QVERIFY(s->findItem("MySetting3"));
+ QVERIFY(s->findItem("MySetting4"));
- clearItems();
+ s->clearItems();
- QVERIFY(!findItem("MySetting2"));
- QVERIFY(!findItem("MySetting3"));
- QVERIFY(!findItem("MySetting4"));
+ QVERIFY(!s->findItem("MySetting2"));
+ QVERIFY(!s->findItem("MySetting3"));
+ QVERIFY(!s->findItem("MySetting4"));
}
void KConfigSkeletonTest::testDefaults()
{
- setDefaults();
+ mMyBool = WRITE_SETTING1;
+ mMyColor = WRITE_SETTING2;
+ mMyFont = WRITE_SETTING3;
+ mMyString = WRITE_SETTING4;
+
+ s->save();
+
+ s->setDefaults();
QCOMPARE(mMyBool, DEFAULT_SETTING1);
QCOMPARE(mMyColor, DEFAULT_SETTING2);
QCOMPARE(mMyFont, DEFAULT_SETTING3);
QCOMPARE(mMyString, DEFAULT_SETTING4);
- save();
+ s->save();
}
+void KConfigSkeletonTest::testKConfigDirty()
+{
+ itemBool->setValue(true);
+ itemBool->writeConfig(s->sharedConfig().data());
+ QVERIFY(s->sharedConfig()->isDirty());
+ s->save();
+ QVERIFY(!s->sharedConfig()->isDirty());
+
+ itemBool->setValue(false);
+ itemBool->writeConfig(s->sharedConfig().data());
+ QVERIFY(s->sharedConfig()->isDirty());
+ s->save();
+ QVERIFY(!s->sharedConfig()->isDirty());
+}
+
+void KConfigSkeletonTest::testSaveRead()
+{
+ itemBool->setValue(true);
+ s->save();
+
+ itemBool->setValue(false);
+ s->save();
+
+ mMyBool = true;
+
+ s->read();
+ QCOMPARE(mMyBool, false);
+}