summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDavid Faure <david.faure@kdab.com>2015-01-06 11:44:22 +0100
committerDavid Faure <david.faure@kdab.com>2015-01-09 12:15:59 +0100
commit4c980aedc17c1da8f7160989fbb845ea72b36f44 (patch)
tree31ad4926d76d3a92585cd473a2ea5e01bc1e6f82 /tests
parent3b9629e8bdbf23bb793c88f967b2cfe2b8256278 (diff)
QStandardPaths: add AppConfigLocation.
ConfigLocation was erroneously inconsistent, by adding the org name and app name on Windows (unintentionally) and not on Unix (while having subdirs in ~/.config is actually common practice for some XDG desktops) Therefore this adds AppConfigLocation, which always has the org name and app name (while GenericConfigLocation never does). [ChangeLog][QtCore][QStandardPaths] Added QStandardPaths::AppConfigLocation, for application-specific configuration directory. ConfigLocation was inconsistent. Task-number: QTBUG-38872 Task-number: QTBUG-38845 Change-Id: I80fb98f296436261f3996c9df87571c29b06ab35 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp28
1 files changed, 26 insertions, 2 deletions
diff --git a/tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp b/tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp
index 21e020404b..8dc9838e4f 100644
--- a/tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp
+++ b/tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp
@@ -48,7 +48,8 @@
#define Q_XDG_PLATFORM
#endif
-static const int MaxStandardLocation = QStandardPaths::AppDataLocation;
+// Update this when adding new enum values; update enumNames too
+static const int MaxStandardLocation = QStandardPaths::AppConfigLocation;
class tst_qstandardpaths : public QObject
{
@@ -61,6 +62,7 @@ private slots:
void enableTestMode();
void testLocateAll();
void testDataLocation();
+ void testAppConfigLocation();
void testFindExecutable_data();
void testFindExecutable();
void testFindExecutableLinkToDirectory();
@@ -122,7 +124,8 @@ static const char * const enumNames[MaxStandardLocation + 1 - int(QStandardPaths
"DownloadLocation",
"GenericCacheLocation",
"GenericConfigLocation",
- "AppDataLocation"
+ "AppDataLocation",
+ "AppConfigLocation"
};
void tst_qstandardpaths::dump()
@@ -305,6 +308,27 @@ void tst_qstandardpaths::testDataLocation()
QCOMPARE(appDataDirs.at(1), QString::fromLatin1("/usr/local/share/Qt/QtTest"));
QCOMPARE(appDataDirs.at(2), QString::fromLatin1("/usr/share/Qt/QtTest"));
#endif
+
+ // reset for other tests
+ QCoreApplication::setOrganizationName(QString());
+ QCoreApplication::setApplicationName(QString());
+}
+
+void tst_qstandardpaths::testAppConfigLocation()
+{
+ // On all platforms where applications are not sandboxed,
+ // AppConfigLocation should be GenericConfigLocation / organization name / app name
+#if !defined(Q_OS_BLACKBERRY) && !defined(Q_OS_ANDROID) && !defined(Q_OS_WINRT)
+ const QString base = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation);
+ QCOMPARE(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation), base + "/tst_qstandardpaths");
+ QCoreApplication::setOrganizationName("Qt");
+ QCOMPARE(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation), base + "/Qt/tst_qstandardpaths");
+ QCoreApplication::setApplicationName("QtTest");
+ QCOMPARE(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation), base + "/Qt/QtTest");
+ // reset for other tests
+ QCoreApplication::setOrganizationName(QString());
+ QCoreApplication::setApplicationName(QString());
+#endif
}
#ifndef Q_OS_WIN