diff options
Diffstat (limited to 'autotests')
-rw-r--r-- | autotests/kconfigtest.cpp | 627 | ||||
-rw-r--r-- | autotests/kconfigtest.h | 4 |
2 files changed, 312 insertions, 319 deletions
diff --git a/autotests/kconfigtest.cpp b/autotests/kconfigtest.cpp index e6d905b0..5cb31f49 100644 --- a/autotests/kconfigtest.cpp +++ b/autotests/kconfigtest.cpp @@ -4,9 +4,6 @@ SPDX-License-Identifier: LGPL-2.0-or-later */ -// Qt5 TODO: re-enable. No point in doing it before, it breaks on QString::fromUtf8(QByteArray), which exists in qt5. -#undef QT_NO_CAST_FROM_BYTEARRAY - #include "kconfigtest.h" #include "helper.h" @@ -47,50 +44,46 @@ static QString homePath() #endif } -#define BOOLENTRY1 true -#define BOOLENTRY2 false -#define STRINGENTRY1 "hello" -#define STRINGENTRY2 " hello" -#define STRINGENTRY3 "hello " -#define STRINGENTRY4 " hello " -#define STRINGENTRY5 " " -#define STRINGENTRY6 "" -#define UTF8BITENTRY "Hello äöü" -#define TRANSLATEDSTRINGENTRY1 "bonjour" -#define BYTEARRAYENTRY QByteArray( "\x00\xff\x7f\x3c abc\x00\x00", 10 ) -#define ESCAPEKEY " []\0017[]==]" -#define ESCAPEENTRY "[]\170[]]=3=]\\] " -#define DOUBLEENTRY 123456.78912345 -#define FLOATENTRY 123.567f -#define POINTENTRY QPoint( 4351, 1235 ) -#define SIZEENTRY QSize( 10, 20 ) -#define RECTENTRY QRect( 10, 23, 5321, 13 ) -#define DATETIMEENTRY QDateTime( QDate( 2002, 06, 23 ), QTime( 12, 55, 40 ) ) -#define DATETIMEWITHMSENTRY QDateTime( QDate( 2002, 06, 23 ), QTime( 12, 55, 40, 532 ) ) -#define STRINGLISTENTRY (QStringList( "Hello," ) << " World") -#define STRINGLISTEMPTYENTRY QStringList() -#define STRINGLISTJUSTEMPTYELEMENT QStringList(QString()) -#define STRINGLISTEMPTYTRAINLINGELEMENT (QStringList( "Hi" ) << QString()) -#define STRINGLISTESCAPEODDENTRY (QStringList( "Hello\\\\\\" ) << "World") -#define STRINGLISTESCAPEEVENENTRY (QStringList( "Hello\\\\\\\\" ) << "World") -#define STRINGLISTESCAPECOMMAENTRY (QStringList( "Hel\\\\\\,\\\\,\\,\\\\\\\\,lo" ) << "World") -#define INTLISTENTRY1 QList<int>() << 1 << 2 << 3 << 4 -#define BYTEARRAYLISTENTRY1 QList<QByteArray>() << "" << "1,2" << "end" -#define VARIANTLISTENTRY (QVariantList() << true << false << QString("joe") << 10023) -#define VARIANTLISTENTRY2 (QVariantList() << POINTENTRY << SIZEENTRY) -#define HOMEPATH QString(homePath()+"/foo") -#define HOMEPATHESCAPE QString(homePath()+"/foo/$HOME") -#define DOLLARGROUP "$i" - -#define TEST_SUBDIR "kconfigtest_subdir/" - -static inline QString testConfigDir() { - return QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/" TEST_SUBDIR; -} - -static inline QString kdeGlobalsPath() { - return QDir::cleanPath(testConfigDir() + "..") + "/kdeglobals"; -} +const bool BOOLENTRY1 = true; +const bool BOOLENTRY2 = false; + +// clazy:excludeall=non-pod-global-static + +const QString STRINGENTRY1(QStringLiteral("hello")); +const QString STRINGENTRY2(QStringLiteral(" hello")); +const QString STRINGENTRY3(QStringLiteral("hello ")); +const QString STRINGENTRY4(QStringLiteral(" hello ")); +const QString STRINGENTRY5(QStringLiteral(" ")); +const QString STRINGENTRY6{}; + +const char UTF8BITENTRY[] = "Hello äöü"; +const QString TRANSLATEDSTRINGENTRY1{QStringLiteral("bonjour")}; +const QByteArray BYTEARRAYENTRY{"\x00\xff\x7f\x3c abc\x00\x00", 10}; +const char ESCAPEKEY[] = " []\0017[]==]"; +const char ESCAPEENTRY[] = "[]\170[]]=3=]\\] "; +const double DOUBLEENTRY{123456.78912345}; +const float FLOATENTRY{123.567f}; +const QPoint POINTENTRY{4351, 1235}; +const QSize SIZEENTRY{10, 20}; +const QRect RECTENTRY{10, 23, 5321, 13}; +const QDateTime DATETIMEENTRY{QDate{2002, 06, 23}, QTime{12, 55, 40}}; +const QDateTime DATETIMEWITHMSENTRY{QDate{2002, 06, 23}, QTime{12, 55, 40, 532}}; +const QStringList STRINGLISTENTRY{QStringLiteral("Hello,"), QStringLiteral("World")}; +const QStringList STRINGLISTEMPTYENTRY{}; +const QStringList STRINGLISTJUSTEMPTYELEMENT{QString{}}; +const QStringList STRINGLISTEMPTYTRAILINGELEMENT{QStringLiteral("Hi"), QString{}}; +const QStringList STRINGLISTESCAPEODDENTRY{QStringLiteral("Hello\\\\\\"), QStringLiteral("World")}; +const QStringList STRINGLISTESCAPEEVENENTRY{QStringLiteral("Hello\\\\\\\\"), QStringLiteral("World")}; +const QStringList STRINGLISTESCAPECOMMAENTRY{QStringLiteral("Hel\\\\\\,\\\\,\\,\\\\\\\\,lo"), QStringLiteral("World")}; +const QList<int> INTLISTENTRY1{1, 2, 3, 4}; +const QList<QByteArray> BYTEARRAYLISTENTRY1{"", "1,2", "end"}; +const QVariantList VARIANTLISTENTRY{true, false, QStringLiteral("joe"), 10023}; +const QVariantList VARIANTLISTENTRY2{POINTENTRY, SIZEENTRY}; + +const QString HOMEPATH{homePath() + QLatin1String{"/foo"}}; +const QString HOMEPATH_ESCAPE{homePath() + QLatin1String("/foo/$HOME")}; +const QString DOLLARGROUP{QStringLiteral("$i")}; +const QString TEST_SUBDIR{QStringLiteral("kconfigtest_subdir/")}; #ifndef Q_OS_WIN void initLocale() @@ -106,8 +99,13 @@ void KConfigTest::initTestCase() { // ensure we don't use files in the real config directory QStandardPaths::setTestModeEnabled(true); + qRegisterMetaType<KConfigGroup>(); + // These two need to be assigned here, after setTestModeEnabled(true), and before cleanupTestCase() + m_testConfigDir = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + QLatin1Char('/') + TEST_SUBDIR; + m_kdeGlobalsPath = QDir::cleanPath(m_testConfigDir + QLatin1String("..")) + QLatin1String("/kdeglobals"); + // to make sure all files from a previous failed run are deleted cleanupTestCase(); @@ -115,7 +113,7 @@ void KConfigTest::initTestCase() mainConfig->group("Main").writeEntry("Key", "Value"); mainConfig->sync(); - KConfig sc(TEST_SUBDIR "kconfigtest"); + KConfig sc(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup cg(&sc, "AAA"); cg.writeEntry("stringEntry1", STRINGENTRY1, @@ -131,7 +129,7 @@ void KConfigTest::initTestCase() QCOMPARE(QString::fromUtf8(data).length(), 9); cg.writeEntry("Test", data); cg.writeEntry("bytearrayEntry", BYTEARRAYENTRY); - cg.writeEntry(ESCAPEKEY, ESCAPEENTRY); + cg.writeEntry(ESCAPEKEY, QStringLiteral(ESCAPEENTRY)); cg.writeEntry("emptyEntry", ""); cg.writeEntry("stringEntry1", STRINGENTRY1); cg.writeEntry("stringEntry2", STRINGENTRY2); @@ -142,8 +140,7 @@ void KConfigTest::initTestCase() cg.writeEntry("keywith=equalsign", STRINGENTRY1); cg.deleteEntry("stringEntry5"); cg.deleteEntry("stringEntry6"); // deleting a nonexistent entry - cg.writeEntry("byteArrayEntry1", QByteArray(STRINGENTRY1), - KConfig::Global | KConfig::Persistent); + cg.writeEntry("byteArrayEntry1", STRINGENTRY1.toLatin1(), KConfig::Global | KConfig::Persistent); cg.writeEntry("doubleEntry1", DOUBLEENTRY); cg.writeEntry("floatEntry1", FLOATENTRY); @@ -176,7 +173,7 @@ void KConfigTest::initTestCase() cg.writeEntry("stringListEntry", STRINGLISTENTRY); cg.writeEntry("stringListEmptyEntry", STRINGLISTEMPTYENTRY); cg.writeEntry("stringListJustEmptyElement", STRINGLISTJUSTEMPTYELEMENT); - cg.writeEntry("stringListEmptyTrailingElement", STRINGLISTEMPTYTRAINLINGELEMENT); + cg.writeEntry("stringListEmptyTrailingElement", STRINGLISTEMPTYTRAILINGELEMENT); cg.writeEntry("stringListEscapeOddEntry", STRINGLISTESCAPEODDENTRY); cg.writeEntry("stringListEscapeEvenEntry", STRINGLISTESCAPEEVENENTRY); cg.writeEntry("stringListEscapeCommaEntry", STRINGLISTESCAPECOMMAENTRY); @@ -184,7 +181,7 @@ void KConfigTest::initTestCase() cg = KConfigGroup(&sc, "Path Type"); cg.writePathEntry("homepath", HOMEPATH); - cg.writePathEntry("homepathescape", HOMEPATHESCAPE); + cg.writePathEntry("homepathescape", HOMEPATH_ESCAPE); cg = KConfigGroup(&sc, "Enum Types"); #if defined(_MSC_VER) && _MSC_VER == 1600 @@ -210,12 +207,10 @@ void KConfigTest::initTestCase() QVERIFY(sc.sync()); QVERIFY(!sc.isDirty()); - QVERIFY2(QFile::exists(testConfigDir() + QStringLiteral("/kconfigtest")), - qPrintable(testConfigDir() + QStringLiteral("/kconfigtest must exist"))); - QVERIFY2(QFile::exists(kdeGlobalsPath()), - qPrintable(kdeGlobalsPath() + QStringLiteral(" must exist"))); + QVERIFY2(QFile::exists(m_testConfigDir + QLatin1String("/kconfigtest")), qPrintable(m_testConfigDir + QLatin1String("/kconfigtest must exist"))); + QVERIFY2(QFile::exists(m_kdeGlobalsPath), qPrintable(m_kdeGlobalsPath + QStringLiteral(" must exist"))); - KConfig sc1(TEST_SUBDIR "kdebugrc", KConfig::SimpleConfig); + KConfig sc1(TEST_SUBDIR + QLatin1String("kdebugrc"), KConfig::SimpleConfig); KConfigGroup sg0(&sc1, "0"); sg0.writeEntry("AbortFatal", false); sg0.writeEntry("WarnOutput", 0); @@ -223,14 +218,14 @@ void KConfigTest::initTestCase() QVERIFY(sc1.sync()); //Setup stuff to test KConfig::addConfigSources() - KConfig devcfg(TEST_SUBDIR "specificrc"); + KConfig devcfg(TEST_SUBDIR + QLatin1String("specificrc")); KConfigGroup devonlygrp(&devcfg, "Specific Only Group"); devonlygrp.writeEntry("ExistingEntry", "DevValue"); KConfigGroup devandbasegrp(&devcfg, "Shared Group"); devandbasegrp.writeEntry("SomeSharedEntry", "DevValue"); devandbasegrp.writeEntry("SomeSpecificOnlyEntry", "DevValue"); QVERIFY(devcfg.sync()); - KConfig basecfg(TEST_SUBDIR "baserc"); + KConfig basecfg(TEST_SUBDIR + QLatin1String("baserc")); KConfigGroup basegrp(&basecfg, "Base Only Group"); basegrp.writeEntry("ExistingEntry", "BaseValue"); KConfigGroup baseanddevgrp(&basecfg, "Shared Group"); @@ -238,7 +233,7 @@ void KConfigTest::initTestCase() baseanddevgrp.writeEntry("SomeBaseOnlyEntry", "BaseValue"); QVERIFY(basecfg.sync()); - KConfig gecfg(TEST_SUBDIR "groupescapetest", KConfig::SimpleConfig); + KConfig gecfg(TEST_SUBDIR + QLatin1String("groupescapetest"), KConfig::SimpleConfig); cg = KConfigGroup(&gecfg, DOLLARGROUP); cg.writeEntry("entry", "doesntmatter"); @@ -247,16 +242,15 @@ void KConfigTest::initTestCase() void KConfigTest::cleanupTestCase() { //ensure we don't delete the real directory - QDir localConfig(testConfigDir()); + QDir localConfig(m_testConfigDir); //qDebug() << "Erasing" << localConfig; if (localConfig.exists()) { QVERIFY(localConfig.removeRecursively()); } QVERIFY(!localConfig.exists()); - if (QFile::exists(kdeGlobalsPath())) { - QVERIFY(QFile::remove(kdeGlobalsPath())); + if (QFile::exists(m_kdeGlobalsPath)) { + QVERIFY(QFile::remove(m_kdeGlobalsPath)); } - } static QList<QByteArray> readLinesFrom(const QString &path) @@ -278,17 +272,18 @@ static QList<QByteArray> readLinesFrom(const QString &path) return lines; } -static QList<QByteArray> readLines(const char *fileName = TEST_SUBDIR "kconfigtest") +static const QString s_defaultArg = TEST_SUBDIR + QLatin1String("kconfigtest"); +static QList<QByteArray> readLines(const QString &fileName = s_defaultArg) { const QString path = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation); Q_ASSERT(!path.isEmpty()); - return readLinesFrom(path + '/' + fileName); + return readLinesFrom(path + QLatin1Char('/') + fileName); } // see also testDefaults, which tests reverting with a defaults (global) file available void KConfigTest::testDirtyAfterRevert() { - KConfig sc(TEST_SUBDIR "kconfigtest_revert"); + KConfig sc(TEST_SUBDIR + QLatin1String("kconfigtest_revert")); KConfigGroup cg(&sc, "Hello"); cg.revertToDefault("does_not_exist"); @@ -312,21 +307,21 @@ void KConfigTest::testRevertAllEntries() // this tests the case were we revert (delete) all entries in a file, // leaving a blank file { - KConfig sc(TEST_SUBDIR "konfigtest2", KConfig::SimpleConfig); + KConfig sc(TEST_SUBDIR + QLatin1String("konfigtest2"), KConfig::SimpleConfig); KConfigGroup cg(&sc, "Hello"); cg.writeEntry("Test", "Correct"); } { - KConfig sc(TEST_SUBDIR "konfigtest2", KConfig::SimpleConfig); + KConfig sc(TEST_SUBDIR + QLatin1String("konfigtest2"), KConfig::SimpleConfig); KConfigGroup cg(&sc, "Hello"); - QCOMPARE(cg.readEntry("Test", "Default"), QString("Correct")); + QCOMPARE(cg.readEntry("Test", "Default"), QStringLiteral("Correct")); cg.revertToDefault("Test"); } - KConfig sc(TEST_SUBDIR "konfigtest2", KConfig::SimpleConfig); + KConfig sc(TEST_SUBDIR + QLatin1String("konfigtest2"), KConfig::SimpleConfig); KConfigGroup cg(&sc, "Hello"); - QCOMPARE(cg.readEntry("Test", "Default"), QString("Default")); + QCOMPARE(cg.readEntry("Test", "Default"), QStringLiteral("Default")); } void KConfigTest::testSimple() @@ -335,13 +330,13 @@ void KConfigTest::testSimple() const QStringList kdeglobals = QStandardPaths::locateAll(QStandardPaths::GenericConfigLocation, QStringLiteral("kdeglobals")); QVERIFY(!kdeglobals.isEmpty()); - KConfig sc2(TEST_SUBDIR "kconfigtest"); - QCOMPARE(sc2.name(), QString(TEST_SUBDIR "kconfigtest")); + KConfig sc2(TEST_SUBDIR + QLatin1String{"kconfigtest"}); + QCOMPARE(sc2.name(), TEST_SUBDIR + QLatin1String{"kconfigtest"}); // make sure groupList() isn't returning something it shouldn't const QStringList lstGroup = sc2.groupList(); for (const QString &group : lstGroup) { - QVERIFY(!group.isEmpty() && group != "<default>"); + QVERIFY(!group.isEmpty() && group != QLatin1String("<default>")); QVERIFY(!group.contains(QChar(0x1d))); } @@ -349,43 +344,43 @@ void KConfigTest::testSimple() QVERIFY(sc3.hasKey("stringEntry1")); // from kdeglobals QVERIFY(!sc3.isEntryImmutable("stringEntry1")); - QCOMPARE(sc3.readEntry("stringEntry1"), QString(STRINGENTRY1)); + QCOMPARE(sc3.readEntry("stringEntry1"), STRINGENTRY1); QVERIFY(!sc3.hasKey("stringEntry2")); - QCOMPARE(sc3.readEntry("stringEntry2", QString("bla")), QString("bla")); + QCOMPARE(sc3.readEntry("stringEntry2", QStringLiteral("bla")), QStringLiteral("bla")); QVERIFY(!sc3.hasDefault("stringEntry1")); sc3 = KConfigGroup(&sc2, "Hello"); QCOMPARE(sc3.readEntry("Test", QByteArray()), QByteArray(UTF8BITENTRY)); QCOMPARE(sc3.readEntry("bytearrayEntry", QByteArray()), BYTEARRAYENTRY); - QCOMPARE(sc3.readEntry(ESCAPEKEY), QString(ESCAPEENTRY)); - QCOMPARE(sc3.readEntry("Test", QString()), QString::fromUtf8(UTF8BITENTRY)); + QCOMPARE(sc3.readEntry(ESCAPEKEY), QString::fromLatin1(ESCAPEENTRY)); + QCOMPARE(sc3.readEntry("Test", QString{}), QString::fromUtf8(UTF8BITENTRY)); QCOMPARE(sc3.readEntry("emptyEntry"/*, QString("Fietsbel")*/), QLatin1String("")); - QCOMPARE(sc3.readEntry("emptyEntry", QString("Fietsbel")).isEmpty(), true); - QCOMPARE(sc3.readEntry("stringEntry1"), QString(STRINGENTRY1)); - QCOMPARE(sc3.readEntry("stringEntry2"), QString(STRINGENTRY2)); - QCOMPARE(sc3.readEntry("stringEntry3"), QString(STRINGENTRY3)); - QCOMPARE(sc3.readEntry("stringEntry4"), QString(STRINGENTRY4)); + QCOMPARE(sc3.readEntry("emptyEntry", QStringLiteral("Fietsbel")).isEmpty(), true); + QCOMPARE(sc3.readEntry("stringEntry1"), STRINGENTRY1); + QCOMPARE(sc3.readEntry("stringEntry2"), STRINGENTRY2); + QCOMPARE(sc3.readEntry("stringEntry3"), STRINGENTRY3); + QCOMPARE(sc3.readEntry("stringEntry4"), STRINGENTRY4); QVERIFY(!sc3.hasKey("stringEntry5")); - QCOMPARE(sc3.readEntry("stringEntry5", QString("test")), QString("test")); + QCOMPARE(sc3.readEntry("stringEntry5", QStringLiteral("test")), QStringLiteral("test")); QVERIFY(!sc3.hasKey("stringEntry6")); - QCOMPARE(sc3.readEntry("stringEntry6", QString("foo")), QString("foo")); - QCOMPARE(sc3.readEntry("urlEntry1", QUrl()), QUrl("http://qt-project.org")); + QCOMPARE(sc3.readEntry("stringEntry6", QStringLiteral("foo")), QStringLiteral("foo")); + QCOMPARE(sc3.readEntry("urlEntry1", QUrl{}), QUrl(QStringLiteral("http://qt-project.org"))); QCOMPARE(sc3.readEntry("boolEntry1", BOOLENTRY1), BOOLENTRY1); QCOMPARE(sc3.readEntry("boolEntry2", false), BOOLENTRY2); - QCOMPARE(sc3.readEntry("keywith=equalsign", QString("wrong")), QString(STRINGENTRY1)); - QCOMPARE(sc3.readEntry("byteArrayEntry1", QByteArray()), - QByteArray(STRINGENTRY1)); + QCOMPARE(sc3.readEntry("keywith=equalsign", QStringLiteral("wrong")), STRINGENTRY1); + QCOMPARE(sc3.readEntry("byteArrayEntry1", QByteArray{}), STRINGENTRY1.toLatin1()); QCOMPARE(sc3.readEntry("doubleEntry1", 0.0), DOUBLEENTRY); QCOMPARE(sc3.readEntry("floatEntry1", 0.0f), FLOATENTRY); } void KConfigTest::testDefaults() { - KConfig config(TEST_SUBDIR "defaulttest", KConfig::NoGlobals); - const QString defaultsFile = TEST_SUBDIR "defaulttest.defaults"; + KConfig config(TEST_SUBDIR + QLatin1String("defaulttest"), KConfig::NoGlobals); + const QString defaultsFile = TEST_SUBDIR + QLatin1String("defaulttest.defaults"); KConfig defaults(defaultsFile, KConfig::SimpleConfig); + const QString defaultsFilePath = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + QLatin1Char('/') + defaultsFile; const QString Default(QStringLiteral("Default")); const QString NotDefault(QStringLiteral("Not Default")); @@ -401,7 +396,7 @@ void KConfigTest::testDefaults() group.writeEntry("entry2", Value2); QVERIFY(group.sync()); - config.addConfigSources(QStringList() << QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + '/' + defaultsFile); + config.addConfigSources(QStringList{defaultsFilePath}); config.setReadDefaults(true); QCOMPARE(group.readEntry("entry1", QString()), Default); @@ -422,8 +417,8 @@ void KConfigTest::testDefaults() group.sync(); // Check that everything is OK on disk, too - KConfig reader(TEST_SUBDIR "defaulttest", KConfig::NoGlobals); - reader.addConfigSources(QStringList() << QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + '/' + defaultsFile); + KConfig reader(TEST_SUBDIR + QLatin1String("defaulttest"), KConfig::NoGlobals); + reader.addConfigSources(QStringList{defaultsFilePath}); KConfigGroup readerGroup = reader.group("any group"); QCOMPARE(readerGroup.readEntry("entry1", QString()), Default); QCOMPARE(readerGroup.readEntry("entry2", QString()), QString()); @@ -431,7 +426,7 @@ void KConfigTest::testDefaults() void KConfigTest::testLocale() { - KConfig config(TEST_SUBDIR "kconfigtest.locales", KConfig::SimpleConfig); + KConfig config(TEST_SUBDIR + QLatin1String("kconfigtest.locales"), KConfig::SimpleConfig); const QString Translated(TRANSLATEDSTRINGENTRY1); const QString Untranslated(STRINGENTRY1); @@ -453,71 +448,69 @@ void KConfigTest::testLocale() void KConfigTest::testEncoding() { - QString groupstr = QString::fromUtf8("UTF-8:\xc3\xb6l"); + const QString groupstr = QString::fromUtf8("UTF-8:\xc3\xb6l"); - KConfig c(TEST_SUBDIR "kconfigtestencodings"); + const QString path = TEST_SUBDIR + QLatin1String("kconfigtestencodings"); + KConfig c(path); KConfigGroup cg(&c, groupstr); cg.writeEntry("key", "value"); QVERIFY(c.sync()); - QList<QByteArray> lines = readLines(TEST_SUBDIR "kconfigtestencodings"); + const QList<QByteArray> lines = readLines(path); QCOMPARE(lines.count(), 2); QCOMPARE(lines.first(), QByteArray("[UTF-8:\xc3\xb6l]\n")); - KConfig c2(TEST_SUBDIR "kconfigtestencodings"); + KConfig c2(path); KConfigGroup cg2(&c2, groupstr); - QVERIFY(cg2.readEntry("key") == QByteArray("value")); + QCOMPARE(cg2.readEntry("key"), QStringLiteral("value")); QVERIFY(c2.groupList().contains(groupstr)); } void KConfigTest::testLists() { - KConfig sc2(TEST_SUBDIR "kconfigtest"); + KConfig sc2(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup sc3(&sc2, "List Types"); - QCOMPARE(sc3.readEntry(QString("stringListEntry"), QStringList()), - STRINGLISTENTRY); + QCOMPARE(sc3.readEntry(QStringLiteral("stringListEntry"), QStringList()), STRINGLISTENTRY); - QCOMPARE(sc3.readEntry(QString("stringListEmptyEntry"), QStringList("wrong")), - STRINGLISTEMPTYENTRY); + QCOMPARE(sc3.readEntry(QStringLiteral("stringListEmptyEntry"), QStringList(QStringLiteral("wrong"))), STRINGLISTEMPTYENTRY); - QCOMPARE(sc3.readEntry(QString("stringListJustEmptyElement"), QStringList()), + QCOMPARE(sc3.readEntry(QStringLiteral("stringListJustEmptyElement"), QStringList()), STRINGLISTJUSTEMPTYELEMENT); - QCOMPARE(sc3.readEntry(QString("stringListEmptyTrailingElement"), QStringList()), - STRINGLISTEMPTYTRAINLINGELEMENT); + QCOMPARE(sc3.readEntry(QStringLiteral("stringListEmptyTrailingElement"), QStringList()), + STRINGLISTEMPTYTRAILINGELEMENT); - QCOMPARE(sc3.readEntry(QString("stringListEscapeOddEntry"), QStringList()), + QCOMPARE(sc3.readEntry(QStringLiteral("stringListEscapeOddEntry"), QStringList()), STRINGLISTESCAPEODDENTRY); - QCOMPARE(sc3.readEntry(QString("stringListEscapeEvenEntry"), QStringList()), + QCOMPARE(sc3.readEntry(QStringLiteral("stringListEscapeEvenEntry"), QStringList()), STRINGLISTESCAPEEVENENTRY); - QCOMPARE(sc3.readEntry(QString("stringListEscapeCommaEntry"), QStringList()), + QCOMPARE(sc3.readEntry(QStringLiteral("stringListEscapeCommaEntry"), QStringList()), STRINGLISTESCAPECOMMAENTRY); QCOMPARE(sc3.readEntry("listOfIntsEntry1"), QString::fromLatin1("1,2,3,4")); QList<int> expectedIntList = INTLISTENTRY1; QVERIFY(sc3.readEntry("listOfIntsEntry1", QList<int>()) == expectedIntList); - QCOMPARE(QVariant(sc3.readEntry("variantListEntry", VARIANTLISTENTRY)).toStringList(), - QVariant(VARIANTLISTENTRY).toStringList()); + QCOMPARE(QVariant(sc3.readEntry("variantListEntry", VARIANTLISTENTRY)).toStringList(), QVariant(VARIANTLISTENTRY).toStringList()); QCOMPARE(sc3.readEntry("listOfByteArraysEntry1", QList<QByteArray>()), BYTEARRAYLISTENTRY1); } void KConfigTest::testPath() { - KConfig sc2(TEST_SUBDIR "kconfigtest"); + KConfig sc2(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup sc3(&sc2, "Path Type"); - QCOMPARE(sc3.readPathEntry("homepath", QString()), HOMEPATH); - QCOMPARE(sc3.readPathEntry("homepathescape", QString()), HOMEPATHESCAPE); - QCOMPARE(sc3.entryMap().value("homepath"), HOMEPATH); + QCOMPARE(sc3.readPathEntry(QStringLiteral("homepath"), QString{}), HOMEPATH); + QCOMPARE(sc3.readPathEntry(QStringLiteral("homepathescape"), QString{}), HOMEPATH_ESCAPE); + QCOMPARE(sc3.entryMap().value(QStringLiteral("homepath")), HOMEPATH); qputenv("WITHSLASH", "/a/"); { - QFile file(testConfigDir() + "/pathtest"); + QFile file(m_testConfigDir + QLatin1String("/pathtest")); file.open(QIODevice::WriteOnly | QIODevice::Text); QTextStream out(&file); #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) @@ -535,27 +528,27 @@ void KConfigTest::testPath() << "noeol=foo" // no EOL ; } - KConfig cf2(TEST_SUBDIR "pathtest"); + KConfig cf2(TEST_SUBDIR + QLatin1String("pathtest")); KConfigGroup group = cf2.group("Test Group"); QVERIFY(group.hasKey("homePath")); - QCOMPARE(group.readPathEntry("homePath", QString()), HOMEPATH); + QCOMPARE(group.readPathEntry("homePath", QString{}), HOMEPATH); QVERIFY(group.hasKey("homePath2")); - QCOMPARE(group.readPathEntry("homePath2", QString()), QString("file://" + HOMEPATH)); + QCOMPARE(group.readPathEntry("homePath2", QString{}), QLatin1String("file://") + HOMEPATH); QVERIFY(group.hasKey("withSlash")); - QCOMPARE(group.readPathEntry("withSlash", QString()), QStringLiteral("/a//foo")); + QCOMPARE(group.readPathEntry("withSlash", QString{}), QStringLiteral("/a//foo")); QVERIFY(group.hasKey("withSlash2")); - QCOMPARE(group.readPathEntry("withSlash2", QString()), QStringLiteral("/a/")); + QCOMPARE(group.readPathEntry("withSlash2", QString{}), QStringLiteral("/a/")); QVERIFY(group.hasKey("withBraces")); - QCOMPARE(group.readPathEntry("withBraces", QString()), QString("file://" + HOMEPATH)); + QCOMPARE(group.readPathEntry("withBraces", QString{}), QLatin1String("file://") + HOMEPATH); QVERIFY(group.hasKey("URL")); - QCOMPARE(group.readEntry("URL", QString()), QString("file://" + HOMEPATH)); + QCOMPARE(group.readEntry("URL", QString{}), QLatin1String("file://") + HOMEPATH); QVERIFY(group.hasKey("hostname")); - QCOMPARE(group.readEntry("hostname", QString()), QStringLiteral("(hostname)")); // the $ got removed because empty var name + QCOMPARE(group.readEntry("hostname", QString{}), QStringLiteral("(hostname)")); // the $ got removed because empty var name QVERIFY(group.hasKey("noeol")); - QCOMPARE(group.readEntry("noeol", QString()), QString("foo")); + QCOMPARE(group.readEntry("noeol", QString{}), QStringLiteral("foo")); const auto val = QStringList { QStringLiteral("aaa"), QStringLiteral("bb/b"), QStringLiteral("ccc,ccc")}; - QCOMPARE(group.readPathEntry("escapes", QStringList()), val); + QCOMPARE(group.readPathEntry(QStringLiteral("escapes"), QStringList()), val); } void KConfigTest::testPersistenceOfExpandFlagForPath() @@ -567,7 +560,7 @@ void KConfigTest::testPersistenceOfExpandFlagForPath() // 1st step: Open the config, add a new dummy entry and then sync the config // back to the storage. { - KConfig sc2(TEST_SUBDIR "kconfigtest"); + KConfig sc2(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup sc3(&sc2, "Path Type"); sc3.writeEntry("dummy", "dummy"); QVERIFY(sc2.sync()); @@ -581,7 +574,7 @@ void KConfigTest::testPersistenceOfExpandFlagForPath() void KConfigTest::testPathQtHome() { { - QFile file(testConfigDir() + "/pathtest"); + QFile file(m_testConfigDir + QLatin1String("/pathtest")); file.open(QIODevice::WriteOnly | QIODevice::Text); QTextStream out(&file); #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) @@ -592,42 +585,39 @@ void KConfigTest::testPathQtHome() << "cacheDir[$e]=$QT_CACHE_HOME/kconfigtest\n" << "configDir[$e]=$QT_CONFIG_HOME/kconfigtest\n"; } - KConfig cf2(TEST_SUBDIR "pathtest"); + KConfig cf2(TEST_SUBDIR + QLatin1String("pathtest")); KConfigGroup group = cf2.group("Test Group"); qunsetenv("QT_DATA_HOME"); qunsetenv("QT_CACHE_HOME"); qunsetenv("QT_CONFIG_HOME"); QVERIFY(group.hasKey("dataDir")); - QCOMPARE(group.readEntry("dataDir", QString()), QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation).append(QStringLiteral("/kconfigtest"))); + QCOMPARE(group.readEntry("dataDir", QString{}), QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation).append(QStringLiteral("/kconfigtest"))); QVERIFY(group.hasKey("cacheDir")); - QCOMPARE(group.readEntry("cacheDir", QString()), QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation).append(QStringLiteral("/kconfigtest"))); + QCOMPARE(group.readEntry("cacheDir", QString{}), QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation).append(QStringLiteral("/kconfigtest"))); QVERIFY(group.hasKey("configDir")); - QCOMPARE(group.readEntry("configDir", QString()), QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation).append(QStringLiteral("/kconfigtest"))); + QCOMPARE(group.readEntry("configDir", QString{}), QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation).append(QStringLiteral("/kconfigtest"))); qputenv("QT_DATA_HOME","/1"); qputenv("QT_CACHE_HOME","/2"); qputenv("QT_CONFIG_HOME","/3"); QVERIFY(group.hasKey("dataDir")); - QCOMPARE(group.readEntry("dataDir", QString()), QStringLiteral("/1/kconfigtest")); + QCOMPARE(group.readEntry("dataDir", QString{}), QStringLiteral("/1/kconfigtest")); QVERIFY(group.hasKey("cacheDir")); - QCOMPARE(group.readEntry("cacheDir", QString()), QStringLiteral("/2/kconfigtest")); + QCOMPARE(group.readEntry("cacheDir", QString{}), QStringLiteral("/2/kconfigtest")); QVERIFY(group.hasKey("configDir")); - QCOMPARE(group.readEntry("configDir", QString()), QStringLiteral("/3/kconfigtest")); + QCOMPARE(group.readEntry("configDir", QString{}), QStringLiteral("/3/kconfigtest")); } void KConfigTest::testComplex() { - KConfig sc2(TEST_SUBDIR "kconfigtest"); + KConfig sc2(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup sc3(&sc2, "Complex Types"); QCOMPARE(sc3.readEntry("pointEntry", QPoint()), POINTENTRY); QCOMPARE(sc3.readEntry("sizeEntry", SIZEENTRY), SIZEENTRY); QCOMPARE(sc3.readEntry("rectEntry", QRect(1, 2, 3, 4)), RECTENTRY); - QCOMPARE(sc3.readEntry("dateTimeEntry", QDateTime()).toString(Qt::ISODateWithMs), - DATETIMEENTRY.toString(Qt::ISODateWithMs)); - QCOMPARE(sc3.readEntry("dateEntry", QDate()).toString(Qt::ISODate), - DATETIMEENTRY.date().toString(Qt::ISODate)); - QCOMPARE(sc3.readEntry("dateTimeWithMSEntry", QDateTime()).toString(Qt::ISODateWithMs), - DATETIMEWITHMSENTRY.toString(Qt::ISODateWithMs)); + QCOMPARE(sc3.readEntry("dateTimeEntry", QDateTime()).toString(Qt::ISODateWithMs), DATETIMEENTRY.toString(Qt::ISODateWithMs)); + QCOMPARE(sc3.readEntry("dateEntry", QDate()).toString(Qt::ISODate), DATETIMEENTRY.date().toString(Qt::ISODate)); + QCOMPARE(sc3.readEntry("dateTimeWithMSEntry", QDateTime()).toString(Qt::ISODateWithMs), DATETIMEWITHMSENTRY.toString(Qt::ISODateWithMs)); QCOMPARE(sc3.readEntry("dateTimeEntry", QDate()), DATETIMEENTRY.date()); } @@ -639,14 +629,14 @@ void KConfigTest::testEnums() #if defined(_MSC_VER) && _MSC_VER == 1600 QSKIP("Visual C++ 2010 can't compile this test"); #endif - KConfig sc(TEST_SUBDIR "kconfigtest"); + KConfig sc(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup sc3(&sc, "Enum Types"); - QCOMPARE(sc3.readEntry("enum-10"), QString("Tens")); + QCOMPARE(sc3.readEntry("enum-10"), QStringLiteral("Tens")); QVERIFY(sc3.readEntry("enum-100", Ones) != Ones); QVERIFY(sc3.readEntry("enum-100", Ones) != Tens); - QCOMPARE(sc3.readEntry("flags-bit0"), QString("bit0")); + QCOMPARE(sc3.readEntry("flags-bit0"), QStringLiteral("bit0")); QVERIFY(sc3.readEntry("flags-bit0", Flags()) == bit0); int eid = staticMetaObject.indexOfEnumerator("Flags"); @@ -654,37 +644,37 @@ void KConfigTest::testEnums() QMetaEnum me = staticMetaObject.enumerator(eid); Flags bitfield = bit0 | bit1; - QCOMPARE(sc3.readEntry("flags-bit0-bit1"), QString(me.valueToKeys(bitfield))); + QCOMPARE(sc3.readEntry("flags-bit0-bit1"), QString::fromLatin1(me.valueToKeys(bitfield))); QVERIFY(sc3.readEntry("flags-bit0-bit1", Flags()) == bitfield); } void KConfigTest::testEntryMap() { - KConfig sc(TEST_SUBDIR "kconfigtest"); + KConfig sc(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup cg(&sc, "Hello"); QMap<QString, QString> entryMap = cg.entryMap(); qDebug() << entryMap.keys(); - QCOMPARE(entryMap.value("stringEntry1"), QString(STRINGENTRY1)); - QCOMPARE(entryMap.value("stringEntry2"), QString(STRINGENTRY2)); - QCOMPARE(entryMap.value("stringEntry3"), QString(STRINGENTRY3)); - QCOMPARE(entryMap.value("stringEntry4"), QString(STRINGENTRY4)); - QVERIFY(!entryMap.contains("stringEntry5")); - QVERIFY(!entryMap.contains("stringEntry6")); - QCOMPARE(entryMap.value("Test"), QString::fromUtf8(UTF8BITENTRY)); - QCOMPARE(entryMap.value("bytearrayEntry"), QString::fromUtf8(BYTEARRAYENTRY.constData())); - QCOMPARE(entryMap.value("emptyEntry"), QString()); - QVERIFY(entryMap.contains("emptyEntry")); - QCOMPARE(entryMap.value("boolEntry1"), QString(BOOLENTRY1 ? "true" : "false")); - QCOMPARE(entryMap.value("boolEntry2"), QString(BOOLENTRY2 ? "true" : "false")); - QCOMPARE(entryMap.value("keywith=equalsign"), QString(STRINGENTRY1)); - QCOMPARE(entryMap.value("byteArrayEntry1"), QString(STRINGENTRY1)); - QCOMPARE(entryMap.value("doubleEntry1").toDouble(), DOUBLEENTRY); - QCOMPARE(entryMap.value("floatEntry1").toFloat(), FLOATENTRY); + QCOMPARE(entryMap.value(QStringLiteral("stringEntry1")), STRINGENTRY1); + QCOMPARE(entryMap.value(QStringLiteral("stringEntry2")), STRINGENTRY2); + QCOMPARE(entryMap.value(QStringLiteral("stringEntry3")), STRINGENTRY3); + QCOMPARE(entryMap.value(QStringLiteral("stringEntry4")), STRINGENTRY4); + QVERIFY(!entryMap.contains(QStringLiteral("stringEntry5"))); + QVERIFY(!entryMap.contains(QStringLiteral("stringEntry6"))); + QCOMPARE(entryMap.value(QStringLiteral("Test")), QString::fromUtf8(UTF8BITENTRY)); + QCOMPARE(entryMap.value(QStringLiteral("bytearrayEntry")), QString::fromUtf8(BYTEARRAYENTRY.constData())); + QCOMPARE(entryMap.value(QStringLiteral("emptyEntry")), QString{}); + QVERIFY(entryMap.contains(QStringLiteral("emptyEntry"))); + QCOMPARE(entryMap.value(QStringLiteral("boolEntry1")), BOOLENTRY1 ? QStringLiteral("true") : QStringLiteral("false")); + QCOMPARE(entryMap.value(QStringLiteral("boolEntry2")), BOOLENTRY2 ? QStringLiteral("true") : QStringLiteral("false")); + QCOMPARE(entryMap.value(QStringLiteral("keywith=equalsign")), STRINGENTRY1); + QCOMPARE(entryMap.value(QStringLiteral("byteArrayEntry1")), STRINGENTRY1); + QCOMPARE(entryMap.value(QStringLiteral("doubleEntry1")).toDouble(), DOUBLEENTRY); + QCOMPARE(entryMap.value(QStringLiteral("floatEntry1")).toFloat(), FLOATENTRY); } void KConfigTest::testInvalid() { - KConfig sc(TEST_SUBDIR "kconfigtest"); + KConfig sc(TEST_SUBDIR + QLatin1String("kconfigtest")); // all of these should print a message to the kdebug.dbg file KConfigGroup sc3(&sc, "Invalid Types"); @@ -751,37 +741,38 @@ void KConfigTest::testInvalid() void KConfigTest::testChangeGroup() { - KConfig sc(TEST_SUBDIR "kconfigtest"); + KConfig sc(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup sc3(&sc, "Hello"); - QCOMPARE(sc3.name(), QString("Hello")); + QCOMPARE(sc3.name(), QStringLiteral("Hello")); KConfigGroup newGroup(sc3); #if KCONFIGCORE_ENABLE_DEPRECATED_SINCE(5, 0) newGroup.changeGroup("FooBar"); // deprecated! - QCOMPARE(newGroup.name(), QString("FooBar")); - QCOMPARE(sc3.name(), QString("Hello")); // unchanged + QCOMPARE(newGroup.name(), QStringLiteral("FooBar")); + QCOMPARE(sc3.name(), QStringLiteral("Hello")); // unchanged // Write into the "changed group" and check that it works newGroup.writeEntry("InFooBar", "FB"); - QCOMPARE(KConfigGroup(&sc, "FooBar").entryMap().value("InFooBar"), QString("FB")); - QCOMPARE(KConfigGroup(&sc, "Hello").entryMap().value("InFooBar"), QString()); + QCOMPARE(KConfigGroup(&sc, "FooBar").entryMap().value(QStringLiteral("InFooBar")), QStringLiteral("FB")); + QCOMPARE(KConfigGroup(&sc, "Hello").entryMap().value(QStringLiteral("InFooBar")), QString{}); #endif KConfigGroup rootGroup(sc.group("")); - QCOMPARE(rootGroup.name(), QString("<default>")); + QCOMPARE(rootGroup.name(), QStringLiteral("<default>")); KConfigGroup sc32(rootGroup.group("Hello")); - QCOMPARE(sc32.name(), QString("Hello")); + QCOMPARE(sc32.name(), QStringLiteral("Hello")); KConfigGroup newGroup2(sc32); #if KCONFIGCORE_ENABLE_DEPRECATED_SINCE(5, 0) newGroup2.changeGroup("FooBar"); // deprecated! - QCOMPARE(newGroup2.name(), QString("FooBar")); - QCOMPARE(sc32.name(), QString("Hello")); // unchanged + QCOMPARE(newGroup2.name(), QStringLiteral("FooBar")); + QCOMPARE(sc32.name(), QStringLiteral("Hello")); // unchanged #endif } // Simple test for deleteEntry void KConfigTest::testDeleteEntry() { - const char *configFile = TEST_SUBDIR "kconfigdeletetest"; + const QString configFile = TEST_SUBDIR + QLatin1String("kconfigdeletetest"); + { KConfig conf(configFile); conf.group("Hello").writeEntry("DelKey", "ToBeDeleted"); @@ -794,16 +785,16 @@ void KConfigTest::testDeleteEntry() KConfigGroup group(&sc, "Hello"); group.deleteEntry("DelKey"); - QCOMPARE(group.readEntry("DelKey", QString("Fietsbel")), QString("Fietsbel")); + QCOMPARE(group.readEntry("DelKey", QStringLiteral("Fietsbel")), QStringLiteral("Fietsbel")); QVERIFY(group.sync()); Q_ASSERT(!readLines(configFile).contains("DelKey=ToBeDeleted\n")); - QCOMPARE(group.readEntry("DelKey", QString("still deleted")), QString("still deleted")); + QCOMPARE(group.readEntry("DelKey", QStringLiteral("still deleted")), QStringLiteral("still deleted")); } void KConfigTest::testDelete() { - KConfig sc(TEST_SUBDIR "kconfigtest"); + KConfig sc(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup ct(&sc, "Complex Types"); @@ -814,7 +805,7 @@ void KConfigTest::testDelete() delgr.deleteGroup(); QVERIFY(!delgr.exists()); QVERIFY(!ct.hasGroup("Nested Group 3")); - QVERIFY(ct.groupList().contains("Nested Group 3")); + QVERIFY(ct.groupList().contains(QStringLiteral("Nested Group 3"))); KConfigGroup ng(&ct, "Nested Group 2"); QVERIFY(sc.hasGroup("Complex Types")); @@ -831,10 +822,10 @@ void KConfigTest::testDelete() KConfigGroup cg(&sc, "AAA"); cg.deleteGroup(); - QVERIFY(sc.entryMap("Complex Types").isEmpty()); - QVERIFY(sc.entryMap("AAA").isEmpty()); - QVERIFY(!sc.entryMap("Hello").isEmpty()); //not deleted group - QVERIFY(sc.entryMap("FooBar").isEmpty()); //inexistant group + QVERIFY(sc.entryMap(QStringLiteral("Complex Types")).isEmpty()); + QVERIFY(sc.entryMap(QStringLiteral("AAA")).isEmpty()); + QVERIFY(!sc.entryMap(QStringLiteral("Hello")).isEmpty()); //not deleted group + QVERIFY(sc.entryMap(QStringLiteral("FooBar")).isEmpty()); //inexistant group QVERIFY(cg.sync()); // Check what happens on disk @@ -848,7 +839,7 @@ void KConfigTest::testDelete() QVERIFY(lines.contains("[Hello]\n")); // a group that was not deleted // test for entries that are marked as deleted when there is no default - KConfig cf(TEST_SUBDIR "kconfigtest", KConfig::SimpleConfig); // make sure there are no defaults + KConfig cf(TEST_SUBDIR + QLatin1String("kconfigtest"), KConfig::SimpleConfig); // make sure there are no defaults cg = cf.group("Portable Devices"); cg.writeEntry("devices|manual|(null)", "whatever"); cg.writeEntry("devices|manual|/mnt/ipod", "/mnt/ipod"); @@ -871,40 +862,41 @@ void KConfigTest::testDelete() void KConfigTest::testDefaultGroup() { - KConfig sc(TEST_SUBDIR "kconfigtest"); + KConfig sc(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup defaultGroup(&sc, "<default>"); - QCOMPARE(defaultGroup.name(), QString("<default>")); + QCOMPARE(defaultGroup.name(), QStringLiteral("<default>")); QVERIFY(!defaultGroup.exists()); defaultGroup.writeEntry("TestKey", "defaultGroup"); QVERIFY(defaultGroup.exists()); - QCOMPARE(defaultGroup.readEntry("TestKey", QString()), QString("defaultGroup")); + QCOMPARE(defaultGroup.readEntry("TestKey", QString{}), QStringLiteral("defaultGroup")); QVERIFY(sc.sync()); { // Test reading it - KConfig sc2(TEST_SUBDIR "kconfigtest"); + KConfig sc2(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup defaultGroup2(&sc2, "<default>"); - QCOMPARE(defaultGroup2.name(), QString("<default>")); + QCOMPARE(defaultGroup2.name(), QStringLiteral("<default>")); QVERIFY(defaultGroup2.exists()); - QCOMPARE(defaultGroup2.readEntry("TestKey", QString()), QString("defaultGroup")); + QCOMPARE(defaultGroup2.readEntry("TestKey", QString{}), QStringLiteral("defaultGroup")); } { // Test reading it - KConfig sc2(TEST_SUBDIR "kconfigtest"); + KConfig sc2(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup emptyGroup(&sc2, ""); - QCOMPARE(emptyGroup.name(), QString("<default>")); + QCOMPARE(emptyGroup.name(), QStringLiteral("<default>")); QVERIFY(emptyGroup.exists()); - QCOMPARE(emptyGroup.readEntry("TestKey", QString()), QString("defaultGroup")); + QCOMPARE(emptyGroup.readEntry("TestKey", QString{}), QStringLiteral("defaultGroup")); } QList<QByteArray> lines = readLines(); QVERIFY(!lines.contains("[]\n")); + QVERIFY(!lines.isEmpty()); QCOMPARE(lines.first(), QByteArray("TestKey=defaultGroup\n")); // Now that the group exists make sure it isn't returned from groupList() const QStringList groupList = sc.groupList(); for (const QString &group : groupList) { - QVERIFY(!group.isEmpty() && group != "<default>"); + QVERIFY(!group.isEmpty() && group != QLatin1String("<default>")); } defaultGroup.deleteGroup(); @@ -917,30 +909,30 @@ void KConfigTest::testDefaultGroup() void KConfigTest::testEmptyGroup() { - KConfig sc(TEST_SUBDIR "kconfigtest"); + KConfig sc(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup emptyGroup(&sc, ""); - QCOMPARE(emptyGroup.name(), QString("<default>")); // confusing, heh? + QCOMPARE(emptyGroup.name(), QStringLiteral("<default>")); // confusing, heh? QVERIFY(!emptyGroup.exists()); emptyGroup.writeEntry("TestKey", "emptyGroup"); QVERIFY(emptyGroup.exists()); - QCOMPARE(emptyGroup.readEntry("TestKey", QString()), QString("emptyGroup")); + QCOMPARE(emptyGroup.readEntry("TestKey", QString{}), QStringLiteral("emptyGroup")); QVERIFY(sc.sync()); { // Test reading it - KConfig sc2(TEST_SUBDIR "kconfigtest"); + KConfig sc2(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup defaultGroup(&sc2, "<default>"); - QCOMPARE(defaultGroup.name(), QString("<default>")); + QCOMPARE(defaultGroup.name(), QStringLiteral("<default>")); QVERIFY(defaultGroup.exists()); - QCOMPARE(defaultGroup.readEntry("TestKey", QString()), QString("emptyGroup")); + QCOMPARE(defaultGroup.readEntry("TestKey", QString{}), QStringLiteral("emptyGroup")); } { // Test reading it - KConfig sc2(TEST_SUBDIR "kconfigtest"); + KConfig sc2(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup emptyGroup2(&sc2, ""); - QCOMPARE(emptyGroup2.name(), QString("<default>")); + QCOMPARE(emptyGroup2.name(), QStringLiteral("<default>")); QVERIFY(emptyGroup2.exists()); - QCOMPARE(emptyGroup2.readEntry("TestKey", QString()), QString("emptyGroup")); + QCOMPARE(emptyGroup2.readEntry("TestKey", QString{}), QStringLiteral("emptyGroup")); } QList<QByteArray> lines = readLines(); @@ -950,7 +942,7 @@ void KConfigTest::testEmptyGroup() // Now that the group exists make sure it isn't returned from groupList() const QStringList groupList = sc.groupList(); for (const QString &group : groupList) { - QVERIFY(!group.isEmpty() && group != "<default>"); + QVERIFY(!group.isEmpty() && group != QLatin1String("<default>")); } emptyGroup.deleteGroup(); QVERIFY(sc.sync()); @@ -971,11 +963,11 @@ void KConfigTest::testCascadingWithLocale() #ifdef Q_XDG_PLATFORM QTemporaryDir middleDir; QTemporaryDir globalDir; - qputenv("XDG_CONFIG_DIRS", qPrintable(middleDir.path() + QString(":") + globalDir.path())); + qputenv("XDG_CONFIG_DIRS", qPrintable(middleDir.path() + QLatin1Char(':') + globalDir.path())); - const QString globalConfigDir = globalDir.path() + "/" TEST_SUBDIR; + const QString globalConfigDir = globalDir.path() + QLatin1Char('/') + TEST_SUBDIR; QVERIFY(QDir().mkpath(globalConfigDir)); - QFile global(globalConfigDir + "foo.desktop"); + QFile global(globalConfigDir + QLatin1String("foo.desktop")); QVERIFY(global.open(QIODevice::WriteOnly | QIODevice::Text)); QTextStream globalOut(&global); globalOut << "[Group]\n" @@ -987,9 +979,9 @@ void KConfigTest::testCascadingWithLocale() << "Other[fr]=Global_FR\n"; global.close(); - const QString middleConfigDir = middleDir.path() + "/" TEST_SUBDIR; + const QString middleConfigDir = middleDir.path() + QLatin1Char('/') + TEST_SUBDIR; QVERIFY(QDir().mkpath(middleConfigDir)); - QFile local(middleConfigDir + "foo.desktop"); + QFile local(middleConfigDir + QLatin1String("foo.desktop")); QVERIFY(local.open(QIODevice::WriteOnly | QIODevice::Text)); QTextStream out(&local); out << "[Group]\n" @@ -1000,16 +992,16 @@ void KConfigTest::testCascadingWithLocale() << "Other=English Only\n"; local.close(); - KConfig config(TEST_SUBDIR "foo.desktop"); + KConfig config(TEST_SUBDIR + QLatin1String("foo.desktop")); KConfigGroup group = config.group("Group"); - QCOMPARE(group.readEntry("FromGlobal"), QString("true")); - QCOMPARE(group.readEntry("FromLocal"), QString("true")); - QCOMPARE(group.readEntry("Name"), QString("Local Testing")); + QCOMPARE(group.readEntry("FromGlobal"), QStringLiteral("true")); + QCOMPARE(group.readEntry("FromLocal"), QStringLiteral("true")); + QCOMPARE(group.readEntry("Name"), QStringLiteral("Local Testing")); config.setLocale(QStringLiteral("fr")); - QCOMPARE(group.readEntry("FromGlobal"), QString("vrai")); - QCOMPARE(group.readEntry("FromLocal"), QString("vrai")); - QCOMPARE(group.readEntry("Name"), QString("FR")); - QCOMPARE(group.readEntry("Other"), QString("English Only")); // Global_FR is locally overriden + QCOMPARE(group.readEntry("FromGlobal"), QStringLiteral("vrai")); + QCOMPARE(group.readEntry("FromLocal"), QStringLiteral("vrai")); + QCOMPARE(group.readEntry("Name"), QStringLiteral("FR")); + QCOMPARE(group.readEntry("Other"), QStringLiteral("English Only")); // Global_FR is locally overriden #endif } @@ -1017,7 +1009,7 @@ void KConfigTest::testMerge() { DefaultLocale defaultLocale; QLocale::setDefault(QLocale::c()); - KConfig config(TEST_SUBDIR "mergetest", KConfig::SimpleConfig); + KConfig config(TEST_SUBDIR + QLatin1String("mergetest"), KConfig::SimpleConfig); KConfigGroup cg = config.group("some group"); cg.writeEntry("entry", " random entry"); @@ -1025,7 +1017,7 @@ void KConfigTest::testMerge() { // simulate writing by another process - QFile file(testConfigDir() + "/mergetest"); + QFile file(m_testConfigDir + QLatin1String("/mergetest")); file.open(QIODevice::WriteOnly | QIODevice::Text); QTextStream out(&file); #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) @@ -1054,7 +1046,7 @@ void KConfigTest::testMerge() << "entry[de]=German\n" << "entry[es]=Spanish\n" << "entry[fr]=French\n"; - QFile file(testConfigDir() + "/mergetest"); + QFile file(m_testConfigDir + QLatin1String("/mergetest")); file.open(QIODevice::ReadOnly | QIODevice::Text); for (const QByteArray &line : qAsConst(lines)) { QCOMPARE(line, file.readLine()); @@ -1065,7 +1057,7 @@ void KConfigTest::testMerge() void KConfigTest::testImmutable() { { - QFile file(testConfigDir() + "/immutabletest"); + QFile file(m_testConfigDir + QLatin1String("/immutabletest")); file.open(QIODevice::WriteOnly | QIODevice::Text); QTextStream out(&file); #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) @@ -1077,7 +1069,7 @@ void KConfigTest::testImmutable() << "[group][subgroup][$i]\n"; } - KConfig config(TEST_SUBDIR "immutabletest", KConfig::SimpleConfig); + KConfig config(TEST_SUBDIR + QLatin1String("immutabletest"), KConfig::SimpleConfig); QVERIFY(config.isGroupImmutable(QByteArray())); KConfigGroup cg = config.group(QByteArray()); QVERIFY(cg.isEntryImmutable("entry1")); @@ -1092,7 +1084,7 @@ void KConfigTest::testImmutable() void KConfigTest::testOptionOrder() { { - QFile file(testConfigDir() + "/doubleattrtest"); + QFile file(m_testConfigDir + QLatin1String("/doubleattrtest")); file.open(QIODevice::WriteOnly | QIODevice::Text); QTextStream out(&file); #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) @@ -1102,14 +1094,14 @@ void KConfigTest::testOptionOrder() << "entry2=unlocalized\n" << "entry2[$i][de_DE]=t2\n"; } - KConfig config(TEST_SUBDIR "doubleattrtest", KConfig::SimpleConfig); + KConfig config(TEST_SUBDIR + QLatin1String("doubleattrtest"), KConfig::SimpleConfig); config.setLocale(QStringLiteral("de_DE")); KConfigGroup cg3 = config.group("group3"); QVERIFY(!cg3.isImmutable()); - QCOMPARE(cg3.readEntry("entry2", ""), QString("t2")); + QCOMPARE(cg3.readEntry("entry2", ""), QStringLiteral("t2")); QVERIFY(cg3.isEntryImmutable("entry2")); config.setLocale(QStringLiteral("C")); - QCOMPARE(cg3.readEntry("entry2", ""), QString("unlocalized")); + QCOMPARE(cg3.readEntry("entry2", ""), QStringLiteral("unlocalized")); QVERIFY(!cg3.isEntryImmutable("entry2")); cg3.writeEntry("entry2", "modified"); QVERIFY(config.sync()); @@ -1121,7 +1113,7 @@ void KConfigTest::testOptionOrder() << "entry2=modified\n" << "entry2[de_DE][$i]=t2\n"; - QFile file(testConfigDir() + "/doubleattrtest"); + QFile file(m_testConfigDir + QLatin1String("/doubleattrtest")); file.open(QIODevice::ReadOnly | QIODevice::Text); for (const QByteArray &line : qAsConst(lines)) { QCOMPARE(line, file.readLine()); @@ -1131,35 +1123,35 @@ void KConfigTest::testOptionOrder() void KConfigTest::testGroupEscape() { - KConfig config(TEST_SUBDIR "groupescapetest", KConfig::SimpleConfig); + KConfig config(TEST_SUBDIR + QLatin1String("groupescapetest"), KConfig::SimpleConfig); QVERIFY(config.group(DOLLARGROUP).exists()); } void KConfigTest::testSubGroup() { - KConfig sc(TEST_SUBDIR "kconfigtest"); + KConfig sc(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup cg(&sc, "ParentGroup"); - QCOMPARE(cg.readEntry("parentgrpstring", ""), QString("somevalue")); + QCOMPARE(cg.readEntry("parentgrpstring", ""), QStringLiteral("somevalue")); KConfigGroup subcg1(&cg, "SubGroup1"); - QCOMPARE(subcg1.name(), QString("SubGroup1")); - QCOMPARE(subcg1.readEntry("somestring", ""), QString("somevalue")); + QCOMPARE(subcg1.name(), QStringLiteral("SubGroup1")); + QCOMPARE(subcg1.readEntry("somestring", ""), QStringLiteral("somevalue")); KConfigGroup subcg2(&cg, "SubGroup2"); - QCOMPARE(subcg2.name(), QString("SubGroup2")); - QCOMPARE(subcg2.readEntry("substring", ""), QString("somevalue")); + QCOMPARE(subcg2.name(), QStringLiteral("SubGroup2")); + QCOMPARE(subcg2.readEntry("substring", ""), QStringLiteral("somevalue")); KConfigGroup subcg3(&cg, "SubGroup/3"); - QCOMPARE(subcg3.readEntry("sub3string", ""), QString("somevalue")); - QCOMPARE(subcg3.name(), QString("SubGroup/3")); + QCOMPARE(subcg3.readEntry("sub3string", ""), QStringLiteral("somevalue")); + QCOMPARE(subcg3.name(), QStringLiteral("SubGroup/3")); KConfigGroup rcg(&sc, ""); KConfigGroup srcg(&rcg, "ParentGroup"); - QCOMPARE(srcg.readEntry("parentgrpstring", ""), QString("somevalue")); + QCOMPARE(srcg.readEntry("parentgrpstring", ""), QStringLiteral("somevalue")); QStringList groupList = cg.groupList(); groupList.sort(); // comes from QSet, so order is undefined - QCOMPARE(groupList, (QStringList() << "SubGroup/3" << "SubGroup1" << "SubGroup2")); + QCOMPARE(groupList, (QStringList{QStringLiteral("SubGroup/3"), QStringLiteral("SubGroup1"), QStringLiteral("SubGroup2")})); - const QStringList expectedSubgroup3Keys = (QStringList() << QStringLiteral("sub3string")); + const QStringList expectedSubgroup3Keys{QStringLiteral("sub3string")}; QCOMPARE(subcg3.keyList(), expectedSubgroup3Keys); - const QStringList expectedParentGroupKeys(QStringList() << QStringLiteral("parentgrpstring")); + const QStringList expectedParentGroupKeys{QStringLiteral("parentgrpstring")}; QCOMPARE(cg.keyList(), expectedParentGroupKeys); @@ -1199,15 +1191,15 @@ void KConfigTest::testSubGroup() // This is what happens QStringList groups = neg.groupList(); groups.sort(); // Qt5 made the ordering unreliable, due to QHash - QCOMPARE(groups, QStringList() << "NEG Child1" << "NEG Child4"); + QCOMPARE(groups, (QStringList{QStringLiteral("NEG Child1"), QStringLiteral("NEG Child4")})); // make sure groupList() isn't returning something it shouldn't const QStringList listGroup = sc.groupList(); for (const QString &group : listGroup) { - QVERIFY(!group.isEmpty() && group != "<default>"); + QVERIFY(!group.isEmpty() && group != QLatin1String("<default>")); QVERIFY(!group.contains(QChar(0x1d))); - QVERIFY(!group.contains("subgroup")); - QVERIFY(!group.contains("SubGroup")); + QVERIFY(!group.contains(QLatin1String("subgroup"))); + QVERIFY(!group.contains(QLatin1String("SubGroup"))); } QVERIFY(sc.sync()); @@ -1223,21 +1215,21 @@ void KConfigTest::testSubGroup() void KConfigTest::testAddConfigSources() { - KConfig cf(TEST_SUBDIR "specificrc"); + KConfig cf(TEST_SUBDIR + QLatin1String("specificrc")); - cf.addConfigSources(QStringList() << testConfigDir() + "/baserc"); + cf.addConfigSources(QStringList{m_testConfigDir + QLatin1String("/baserc")}); cf.reparseConfiguration(); KConfigGroup specificgrp(&cf, "Specific Only Group"); - QCOMPARE(specificgrp.readEntry("ExistingEntry", ""), QString("DevValue")); + QCOMPARE(specificgrp.readEntry("ExistingEntry", ""), QStringLiteral("DevValue")); KConfigGroup sharedgrp(&cf, "Shared Group"); - QCOMPARE(sharedgrp.readEntry("SomeSpecificOnlyEntry", ""), QString("DevValue")); - QCOMPARE(sharedgrp.readEntry("SomeBaseOnlyEntry", ""), QString("BaseValue")); - QCOMPARE(sharedgrp.readEntry("SomeSharedEntry", ""), QString("DevValue")); + QCOMPARE(sharedgrp.readEntry("SomeSpecificOnlyEntry", ""), QStringLiteral("DevValue")); + QCOMPARE(sharedgrp.readEntry("SomeBaseOnlyEntry", ""), QStringLiteral("BaseValue")); + QCOMPARE(sharedgrp.readEntry("SomeSharedEntry", ""), QStringLiteral("DevValue")); KConfigGroup basegrp(&cf, "Base Only Group"); - QCOMPARE(basegrp.readEntry("ExistingEntry", ""), QString("BaseValue")); + QCOMPARE(basegrp.readEntry("ExistingEntry", ""), QStringLiteral("BaseValue")); basegrp.writeEntry("New Entry Base Only", "SomeValue"); KConfigGroup newgrp(&cf, "New Group"); @@ -1245,25 +1237,25 @@ void KConfigTest::testAddConfigSources() QVERIFY(cf.sync()); - KConfig plaincfg(TEST_SUBDIR "specificrc"); + KConfig plaincfg(TEST_SUBDIR + QLatin1String("specificrc")); KConfigGroup newgrp2(&plaincfg, "New Group"); - QCOMPARE(newgrp2.readEntry("New Entry", ""), QString("SomeValue")); + QCOMPARE(newgrp2.readEntry("New Entry", ""), QStringLiteral("SomeValue")); KConfigGroup basegrp2(&plaincfg, "Base Only Group"); - QCOMPARE(basegrp2.readEntry("New Entry Base Only", ""), QString("SomeValue")); + QCOMPARE(basegrp2.readEntry("New Entry Base Only", ""), QStringLiteral("SomeValue")); } void KConfigTest::testGroupCopyTo() { - KConfig cf1(TEST_SUBDIR "kconfigtest"); + KConfig cf1(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup original = cf1.group("Enum Types"); KConfigGroup copy = cf1.group("Enum Types Copy"); original.copyTo(©); // copy from one group to another QCOMPARE(copy.entryMap(), original.entryMap()); - KConfig cf2(TEST_SUBDIR "copy_of_kconfigtest", KConfig::SimpleConfig); + KConfig cf2(TEST_SUBDIR + QLatin1String("copy_of_kconfigtest"), KConfig::SimpleConfig); QVERIFY(!cf2.hasGroup(original.name())); QVERIFY(!cf2.hasGroup(copy.name())); @@ -1276,23 +1268,23 @@ void KConfigTest::testGroupCopyTo() void KConfigTest::testConfigCopyToSync() { - KConfig cf1(TEST_SUBDIR "kconfigtest"); + KConfig cf1(TEST_SUBDIR + QLatin1String("kconfigtest")); // Prepare source file KConfigGroup group(&cf1, "CopyToTest"); group.writeEntry("Type", "Test"); QVERIFY(cf1.sync()); // Copy to "destination" - const QString destination = testConfigDir() + "/kconfigcopytotest"; + const QString destination = m_testConfigDir + QLatin1String("/kconfigcopytotest"); QFile::remove(destination); - KConfig cf2(TEST_SUBDIR "kconfigcopytotest"); + KConfig cf2(TEST_SUBDIR + QLatin1String("kconfigcopytotest")); KConfigGroup group2(&cf2, "CopyToTest"); group.copyTo(&group2); QString testVal = group2.readEntry("Type"); - QCOMPARE(testVal, QString("Test")); + QCOMPARE(testVal, QStringLiteral("Test")); // should write to disk the copied data from group QVERIFY(cf2.sync()); QVERIFY(QFile::exists(destination)); @@ -1300,7 +1292,7 @@ void KConfigTest::testConfigCopyToSync() void KConfigTest::testConfigCopyTo() { - KConfig cf1(TEST_SUBDIR "kconfigtest"); + KConfig cf1(TEST_SUBDIR + QLatin1String("kconfigtest")); { // Prepare source file KConfigGroup group(&cf1, "CopyToTest"); @@ -1310,27 +1302,27 @@ void KConfigTest::testConfigCopyTo() { // Copy to "destination" - const QString destination = testConfigDir() + "/kconfigcopytotest"; + const QString destination = m_testConfigDir + QLatin1String("/kconfigcopytotest"); QFile::remove(destination); KConfig cf2; cf1.copyTo(destination, &cf2); KConfigGroup group2(&cf2, "CopyToTest"); QString testVal = group2.readEntry("Type"); - QCOMPARE(testVal, QString("Test")); + QCOMPARE(testVal, QStringLiteral("Test")); QVERIFY(cf2.sync()); QVERIFY(QFile::exists(destination)); } // Check copied config file on disk - KConfig cf3(TEST_SUBDIR "kconfigcopytotest"); + KConfig cf3(TEST_SUBDIR + QLatin1String("kconfigcopytotest")); KConfigGroup group3(&cf3, "CopyToTest"); QString testVal = group3.readEntry("Type"); - QCOMPARE(testVal, QString("Test")); + QCOMPARE(testVal, QStringLiteral("Test")); } void KConfigTest::testReparent() { - KConfig cf(TEST_SUBDIR "kconfigtest"); + KConfig cf(TEST_SUBDIR + QLatin1String("kconfigtest")); const QString name(QStringLiteral("Enum Types")); KConfigGroup group = cf.group(name); const QMap<QString, QString> originalMap = group.entryMap(); @@ -1356,7 +1348,7 @@ static void ageTimeStamp(const QString &path, int nsec) struct utimbuf utbuf; utbuf.actime = mtime.toSecsSinceEpoch(); utbuf.modtime = utbuf.actime; - utime(QFile::encodeName(path), &utbuf); + utime(QFile::encodeName(path).constData(), &utbuf); #else QTest::qSleep(nsec * 1000); #endif @@ -1365,10 +1357,10 @@ static void ageTimeStamp(const QString &path, int nsec) void KConfigTest::testWriteOnSync() { QDateTime oldStamp, newStamp; - KConfig sc(TEST_SUBDIR "kconfigtest", KConfig::IncludeGlobals); + KConfig sc(TEST_SUBDIR + QLatin1String("kconfigtest"), KConfig::IncludeGlobals); // Age the timestamp of global config file a few sec, and collect it. - QString globFile = kdeGlobalsPath(); + QString globFile = m_kdeGlobalsPath; ageTimeStamp(globFile, 2); // age 2 sec oldStamp = QFileInfo(globFile).lastModified(); @@ -1383,7 +1375,7 @@ void KConfigTest::testWriteOnSync() QCOMPARE(newStamp, oldStamp); // Age the timestamp of local config file a few sec, and collect it. - QString locFile = testConfigDir() + "/kconfigtest"; + QString locFile = m_testConfigDir + QLatin1String("/kconfigtest"); ageTimeStamp(locFile, 2); // age 2 sec oldStamp = QFileInfo(locFile).lastModified(); @@ -1401,13 +1393,13 @@ void KConfigTest::testWriteOnSync() void KConfigTest::testFailOnReadOnlyFileSync() { - KConfig sc(TEST_SUBDIR "kconfigfailonreadonlytest"); + KConfig sc(TEST_SUBDIR + QLatin1String("kconfigfailonreadonlytest")); KConfigGroup cgLocal(&sc, "Locals"); cgLocal.writeEntry("someLocalString", "whatever"); QVERIFY(cgLocal.sync()); - QFile f(testConfigDir() + "kconfigfailonreadonlytest"); + QFile f(m_testConfigDir + QLatin1String("kconfigfailonreadonlytest")); QVERIFY(f.exists()); QVERIFY(f.setPermissions(QFileDevice::ReadOwner)); @@ -1425,7 +1417,7 @@ void KConfigTest::testFailOnReadOnlyFileSync() void KConfigTest::testDirtyOnEqual() { QDateTime oldStamp, newStamp; - KConfig sc(TEST_SUBDIR "kconfigtest"); + KConfig sc(TEST_SUBDIR + QLatin1String("kconfigtest")); // Initialize value KConfigGroup cgLocal(&sc, "random"); @@ -1433,7 +1425,7 @@ void KConfigTest::testDirtyOnEqual() QVERIFY(sc.sync()); // Age the timestamp of local config file a few sec, and collect it. - QString locFile = testConfigDir() + "/kconfigtest"; + QString locFile = m_testConfigDir + QLatin1String("/kconfigtest"); ageTimeStamp(locFile, 2); // age 2 sec oldStamp = QFileInfo(locFile).lastModified(); @@ -1453,7 +1445,7 @@ void KConfigTest::testDirtyOnEqualOverdo() QByteArray val2("\0""two", 4); QByteArray defvalr; - KConfig sc(TEST_SUBDIR "kconfigtest"); + KConfig sc(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigGroup cgLocal(&sc, "random"); cgLocal.writeEntry("someKey", val1); QCOMPARE(cgLocal.readEntry("someKey", defvalr), val1); @@ -1464,9 +1456,9 @@ void KConfigTest::testDirtyOnEqualOverdo() void KConfigTest::testCreateDir() { // Test auto-creating the parent directory when needed (KConfigIniBackend::createEnclosing) - QString kdehome = QDir::home().canonicalPath() + "/.kde-unit-test"; - QString subdir = kdehome + "/newsubdir"; - QString file = subdir + "/foo.desktop"; + const QString kdehome = QDir::home().canonicalPath() + QLatin1String("/.kde-unit-test"); + const QString subdir = kdehome + QLatin1String("/newsubdir"); + const QString file = subdir + QLatin1String("/foo.desktop"); QFile::remove(file); QDir().rmdir(subdir); QVERIFY(!QDir().exists(subdir)); @@ -1485,7 +1477,7 @@ void KConfigTest::testSyncOnExit() // Often, the KGlobalPrivate global static's destructor ends up calling ~KConfig -> // KConfig::sync ... and if that code triggers KGlobal code again then things could crash. // So here's a test for modifying KSharedConfig::openConfig() and not syncing, the process exit will sync. - KConfigGroup grp(KSharedConfig::openConfig(TEST_SUBDIR "syncOnExitRc"), "syncOnExit"); + KConfigGroup grp(KSharedConfig::openConfig(TEST_SUBDIR + QLatin1String("syncOnExitRc")), "syncOnExit"); grp.writeEntry("key", "value"); } @@ -1494,24 +1486,22 @@ void KConfigTest::testSharedConfig() // Can I use a KConfigGroup even after the KSharedConfigPtr goes out of scope? KConfigGroup myConfigGroup; { - KSharedConfigPtr config = KSharedConfig::openConfig(TEST_SUBDIR "kconfigtest"); + KSharedConfigPtr config = KSharedConfig::openConfig(TEST_SUBDIR + QLatin1String("kconfigtest")); myConfigGroup = KConfigGroup(config, "Hello"); } - QCOMPARE(myConfigGroup.readEntry("stringEntry1"), QString(STRINGENTRY1)); + QCOMPARE(myConfigGroup.readEntry("stringEntry1"), STRINGENTRY1); // Get the main config KSharedConfigPtr mainConfig = KSharedConfig::openConfig(); KConfigGroup mainGroup(mainConfig, "Main"); - QCOMPARE(mainGroup.readEntry("Key", QString()), QString("Value")); + QCOMPARE(mainGroup.readEntry("Key", QString{}), QStringLiteral("Value")); } void KConfigTest::testLocaleConfig() { // Initialize the testdata - QDir dir; - QString subdir = testConfigDir(); - dir.mkpath(subdir); - QString file = subdir + "/localized.test"; + QDir().mkpath(m_testConfigDir); + const QString file = m_testConfigDir + QLatin1String("/localized.test"); QFile::remove(file); QFile f(file); QVERIFY(f.open(QIODevice::WriteOnly)); @@ -1546,11 +1536,11 @@ void KConfigTest::testLocaleConfig() // Now check the correct config group KConfigGroup cg2(&config, "Test_Right"); - QCOMPARE(cg2.readEntry("foo"), QString("5")); + QCOMPARE(cg2.readEntry("foo"), QStringLiteral("5")); QCOMPARE(cg2.readEntry("foo", 3), 5); - QCOMPARE(cg2.readEntry("foostring"), QString("nice")); - QCOMPARE(cg2.readEntry("foostring", "ugly"), QString("nice")); - QCOMPARE(cg2.readEntry("foobool"), QString("true")); + QCOMPARE(cg2.readEntry("foostring"), QStringLiteral("nice")); + QCOMPARE(cg2.readEntry("foostring", "ugly"), QStringLiteral("nice")); + QCOMPARE(cg2.readEntry("foobool"), QStringLiteral("true")); QCOMPARE(cg2.readEntry("foobool", false), true); // Clean up after the testcase @@ -1560,10 +1550,9 @@ void KConfigTest::testLocaleConfig() void KConfigTest::testDeleteWhenLocalized() { // Initialize the testdata - QDir dir; - QString subdir = QDir::home().canonicalPath() + "/.kde-unit-test/"; - dir.mkpath(subdir); - QString file = subdir + "/localized_delete.test"; + const QString subdir = QDir::home().canonicalPath() + QLatin1String("/.kde-unit-test/"); + QDir().mkpath(subdir); + const QString file = subdir + QLatin1String("/localized_delete.test"); QFile::remove(file); QFile f(file); QVERIFY(f.open(QIODevice::WriteOnly)); @@ -1615,7 +1604,7 @@ void KConfigTest::testDeleteWhenLocalized() QVERIFY(cg.hasKey("foo")); // Check where the wrong values come from. // We get the "de" value. - QCOMPARE(cg.readEntry("foostring", "nothing"), QString("schoen")); + QCOMPARE(cg.readEntry("foostring", "nothing"), QStringLiteral("schoen")); // We get the "de" value. QCOMPARE(cg.readEntry("foobool", false), true); @@ -1631,7 +1620,7 @@ void KConfigTest::testDeleteWhenLocalized() QVERIFY(cg.hasKey("foo")); // Check where the wrong values come from. // We get the primary value because the "ca" value was deleted. - QCOMPARE(cg.readEntry("foostring", "nothing"), QString("ugly")); + QCOMPARE(cg.readEntry("foostring", "nothing"), QStringLiteral("ugly")); // We get the "ca" value. QCOMPARE(cg.readEntry("foobool", false), true); @@ -1660,7 +1649,7 @@ void KConfigTest::testDeleteWhenLocalized() QVERIFY(!cg.hasKey("foobool")); // Check where the wrong values come from. // We get the "de" value. - QCOMPARE(cg.readEntry("foostring", "nothing"), QString("schoen")); + QCOMPARE(cg.readEntry("foostring", "nothing"), QStringLiteral("schoen")); // We get the "de" value. QCOMPARE(cg.readEntry("foobool", false), true); // We get the "de" value. @@ -1696,10 +1685,10 @@ void KConfigTest::testKdeGlobals() KConfig globRead(QStringLiteral("kdeglobals")); const KConfigGroup general(&globRead, "General"); - QCOMPARE(general.readEntry("testKG"), QString("1")); + QCOMPARE(general.readEntry("testKG"), QStringLiteral("1")); // Check we wrote into kdeglobals - const QList<QByteArray> lines = readLines("kdeglobals"); + const QList<QByteArray> lines = readLines(QStringLiteral("kdeglobals")); QVERIFY(lines.contains("[General]\n")); QVERIFY(lines.contains("testKG=1\n")); @@ -1711,13 +1700,13 @@ void KConfigTest::testKdeGlobals() QVERIFY(glob.sync()); } globRead.reparseConfiguration(); - QCOMPARE(general.readEntry("testKG"), QString("2")); + QCOMPARE(general.readEntry("testKG"), QStringLiteral("2")); // Reading using NoGlobals { KConfig globReadNoGlob(QStringLiteral("kdeglobals"), KConfig::NoGlobals); const KConfigGroup generalNoGlob(&globReadNoGlob, "General"); - QCOMPARE(generalNoGlob.readEntry("testKG"), QString("2")); + QCOMPARE(generalNoGlob.readEntry("testKG"), QStringLiteral("2")); } // TODO now use kconfigtest and writeEntry(,Global) -> should go into kdeglobals @@ -1729,7 +1718,7 @@ void KConfigTest::testAnonymousConfig() KConfigGroup general(&anonConfig, "General"); QCOMPARE(general.readEntry("testKG"), QString()); // no kdeglobals merging general.writeEntry("Foo", "Bar"); - QCOMPARE(general.readEntry("Foo"), QString("Bar")); + QCOMPARE(general.readEntry("Foo"), QStringLiteral("Bar")); } void KConfigTest::testQByteArrayUtf8() @@ -1853,12 +1842,12 @@ void KConfigTest::testXdgListEntry() KConfigGroup grp = anonConfig.group("General"); QStringList invalidList; // use this as a default when an empty list is expected invalidList << QStringLiteral("Error! Default value read!"); - QCOMPARE(grp.readXdgListEntry("Key1", invalidList), QStringList()); - QCOMPARE(grp.readXdgListEntry("Key2", invalidList), QStringList() << QString()); - QCOMPARE(grp.readXdgListEntry("Key3", invalidList), QStringList() << QString() << QString()); - QCOMPARE(grp.readXdgListEntry("Key4", invalidList), QStringList()<< QString() << QString() << QString()); - QCOMPARE(grp.readXdgListEntry("Key5", invalidList), QStringList() << ";"); - QCOMPARE(grp.readXdgListEntry("Key6", invalidList), QStringList() << "1" << "2;3" << QString()); + QCOMPARE(grp.readXdgListEntry("Key1", invalidList), (QStringList{})); + QCOMPARE(grp.readXdgListEntry("Key2", invalidList), (QStringList{QString{}})); + QCOMPARE(grp.readXdgListEntry("Key3", invalidList), (QStringList{QString{}, QString{}})); + QCOMPARE(grp.readXdgListEntry("Key4", invalidList), (QStringList{QString{}, QString{}, QString{}})); + QCOMPARE(grp.readXdgListEntry("Key5", invalidList), (QStringList{QStringLiteral(";")})); + QCOMPARE(grp.readXdgListEntry("Key6", invalidList), (QStringList{QStringLiteral("1"), QStringLiteral("2;3"), QString{}})); } #include <QThreadPool> @@ -1890,15 +1879,15 @@ void KConfigTest::testNotify() QSKIP("KConfig notification requires DBus"); #endif - KConfig config(TEST_SUBDIR "kconfigtest"); + KConfig config(TEST_SUBDIR + QLatin1String("kconfigtest")); auto myConfigGroup = KConfigGroup(&config, "TopLevelGroup"); //mimics a config in another process, which is watching for events - auto remoteConfig = KSharedConfig::openConfig(TEST_SUBDIR "kconfigtest"); + auto remoteConfig = KSharedConfig::openConfig(TEST_SUBDIR + QLatin1String("kconfigtest")); KConfigWatcher::Ptr watcher = KConfigWatcher::create(remoteConfig); //some random config that shouldn't be changing when kconfigtest changes, only on kdeglobals - auto otherRemoteConfig = KSharedConfig::openConfig(TEST_SUBDIR "kconfigtest2"); + auto otherRemoteConfig = KSharedConfig::openConfig(TEST_SUBDIR + QLatin1String("kconfigtest2")); KConfigWatcher::Ptr otherWatcher = KConfigWatcher::create(otherRemoteConfig); QSignalSpy watcherSpy(watcher.data(), &KConfigWatcher::configChanged); @@ -1974,21 +1963,21 @@ void KConfigTest::testKdeglobalsVsDefault() generalGlob.writeEntry("testRestore", "global"); QVERIFY(glob.sync()); - KConfig local(QStringLiteral(TEST_SUBDIR "restorerc")); + KConfig local(TEST_SUBDIR + QLatin1String("restorerc")); KConfigGroup generalLocal(&local, "General"); // Check if we get global and not the default value from cpp (defaultcpp) when reading data from restorerc - QCOMPARE(generalLocal.readEntry("testRestore", "defaultcpp"), "global"); + QCOMPARE(generalLocal.readEntry("testRestore", "defaultcpp"), QStringLiteral("global")); // Add test restore key with restore value in restorerc file generalLocal.writeEntry("testRestore", "restore"); QVERIFY(local.sync()); local.reparseConfiguration(); // We expect to get the value from restorerc file - QCOMPARE(generalLocal.readEntry("testRestore", "defaultcpp"), "restore"); + QCOMPARE(generalLocal.readEntry("testRestore", "defaultcpp"), QStringLiteral("restore")); // Revert to default testRestore key and we expect to get default value and not the global one generalLocal.revertToDefault("testRestore"); local.sync(); local.reparseConfiguration(); - QCOMPARE(generalLocal.readEntry("testRestore", "defaultcpp"), "defaultcpp"); + QCOMPARE(generalLocal.readEntry("testRestore", "defaultcpp"), QStringLiteral("defaultcpp")); } diff --git a/autotests/kconfigtest.h b/autotests/kconfigtest.h index 7617d0e7..1a248c74 100644 --- a/autotests/kconfigtest.h +++ b/autotests/kconfigtest.h @@ -77,6 +77,10 @@ private Q_SLOTS: // should be last void testSyncOnExit(); + +private: + QString m_testConfigDir; + QString m_kdeGlobalsPath; }; Q_DECLARE_OPERATORS_FOR_FLAGS(KConfigTest::Flags) |