File indexing completed on 2024-04-28 15:19:31

0001 /*  This file is part of the KDE libraries
0002     SPDX-FileCopyrightText: 2011 David Faure <faure@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include <QObject>
0008 
0009 #include <QStandardPaths>
0010 #include <QTest>
0011 #include <ksharedconfig.h>
0012 
0013 #include <kconfig.h>
0014 #include <kconfiggroup.h>
0015 
0016 class KConfigNoKdeHomeTest : public QObject
0017 {
0018     Q_OBJECT
0019 
0020 private Q_SLOTS:
0021     void testNoKdeHome();
0022 };
0023 
0024 void KConfigNoKdeHomeTest::testNoKdeHome()
0025 {
0026     QStandardPaths::setTestModeEnabled(true);
0027     QString configPath = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation);
0028     QDir configDir(configPath);
0029     QVERIFY(configDir.removeRecursively());
0030     QVERIFY(!QFile::exists(configPath));
0031 
0032     // Do what kf5-config does, and ensure the config directory doesn't get created (#233892)
0033     QVERIFY(!QFile::exists(configPath));
0034     KSharedConfig::openConfig();
0035     QVERIFY(!QFile::exists(configPath));
0036 
0037     // Now try to actually save something, see if it works.
0038     KConfigGroup group(KSharedConfig::openConfig(), "Group");
0039     group.writeEntry("Key", "Value");
0040     group.sync();
0041     QVERIFY(QFile::exists(configPath));
0042     const QString rcFile = QCoreApplication::applicationName() + QStringLiteral("rc");
0043     QVERIFY(QFile::exists(configPath + QLatin1Char('/') + rcFile));
0044 
0045     // Cleanup
0046     configDir.removeRecursively();
0047 }
0048 
0049 QTEST_MAIN(KConfigNoKdeHomeTest)
0050 
0051 #include "kconfignokdehometest.moc"