In my continuing mission to make the frameworks green on Jenkins: This makes the tests work even when not installed, even when kde4support is installed to a separate prefix to the rest of frameworks (as it is on Jenkins -- although this setup is dangerous for *real* users of KStandardDirs).
The one bit that is still failing is testSetXdgDataDirs() and testRestrictedResources(), which both fail for the same reason. Basically, the test checks that CMAKE_INSTALL_PREFIX "/share/applications/" is in the xdgdata-apps resource. However, KStandardDirs puts CMAKE_INSTALL_PREFIX "/share/applications/kde5/" in the xdgdata-apps resource. Which is right: the test or KStandardDirs? Alex
diff --git a/autotests/kstandarddirstest.cpp b/autotests/kstandarddirstest.cpp index 3455b74..27c648d 100644 --- a/autotests/kstandarddirstest.cpp +++ b/autotests/kstandarddirstest.cpp @@ -45,16 +45,40 @@ QTEST_GUILESS_MAIN(KStandarddirsTest) #define EXT "" #endif +void KStandarddirsTest::init() +{ + QVERIFY(m_configHome.contains(".kde-unit-test")); + QVERIFY(m_dataHome.contains(".kde-unit-test")); + // delete and recreate + QDir(m_configHome).removeRecursively(); + QDir(m_dataHome).removeRecursively(); + QDir::root().mkpath(m_configHome); + QDir::root().mkpath(m_dataHome); +} + +void KStandarddirsTest::cleanup() +{ + QVERIFY(m_configHome.contains(".kde-unit-test")); + QVERIFY(m_dataHome.contains(".kde-unit-test")); + QDir(m_configHome).removeRecursively(); + QDir(m_dataHome).removeRecursively(); +} + void KStandarddirsTest::initTestCase() { + QDir::home().mkpath(QLatin1String(".kde-unit-test/xdg/config")); m_configHome = QDir::homePath() + QLatin1String("/.kde-unit-test/xdg/config"); qputenv("XDG_CONFIG_HOME", QFile::encodeName(m_configHome)); + QDir::home().mkpath(QLatin1String(".kde-unit-test/xdg/local")); m_dataHome = QDir::homePath() + QLatin1String("/.kde-unit-test/xdg/local"); qputenv("XDG_DATA_HOME", QFile::encodeName(m_dataHome)); - const QString configDirs = QDir::currentPath() + "/xdg"; - qputenv("XDG_CONFIG_DIRS", QFile::encodeName(configDirs)); + // make sure we have consistent values for the relevant environment variables + // note that the installation prefix will always be included, though + qputenv("XDG_CONFIG_DIRS", QFile::encodeName(QFINDTESTDATA("xdg"))); + qputenv("XDG_DATA_DIRS", QFile::encodeName(QFINDTESTDATA("share"))); + qputenv("KDEDIRS", QFile::encodeName(QFINDTESTDATA("kdedir"))); QFile::remove(KGlobal::dirs()->saveLocation("config") + "kstandarddirstestrc"); @@ -62,8 +86,8 @@ void KStandarddirsTest::initTestCase() // data. KComponentData mainData("kstandarddirstest"); - // Must initialize KStandardDirs only after all the setenv() calls. - QCOMPARE(KGlobal::dirs()->localxdgconfdir(), QString(m_configHome + '/')); + // Must initialize KStandardDirs only after all the qputenv() calls. + QCOMPARE_PATHS(KGlobal::dirs()->localxdgconfdir(), QString(m_configHome + '/')); } void KStandarddirsTest::testSaveLocation() @@ -121,21 +145,35 @@ static bool isKde4supportInstalled() return QFile::exists(CMAKE_INSTALL_PREFIX "/bin/kf5-config"); } -void KStandarddirsTest::testFindResource() +void KStandarddirsTest::testFindResourceInstalled() { - const QString bin = KGlobal::dirs()->findResource("exe", "kconf_update" EXT); + if (!isKde4supportInstalled()) { + // We cannot depend on any applications being installed but our own. + // In particular, other frameworks may be installed in other locations. + QSKIP("kde4support not installed yet"); + } + + const QString bin = KGlobal::dirs()->findResource("exe", "fileshareset" EXT); QVERIFY(!bin.isEmpty()); #ifdef Q_OS_WIN - QVERIFY(bin.endsWith("bin/kconf_update.exe")); + QVERIFY2(bin.endsWith("bin/fileshareset.exe"), qPrintable(bin)); #else - QVERIFY(bin.endsWith("kde5/libexec/kconf_update")); + QVERIFY2(bin.endsWith("kde5/libexec/fileshareset"), qPrintable(bin)); #endif - QVERIFY(!QDir::isRelativePath(bin)); + QVERIFY2(!QDir::isRelativePath(bin), qPrintable(bin)); + + const QString data = KGlobal::dirs()->findResource("data", "kssl/ca-bundle.crt"); + QVERIFY(!data.isEmpty()); + QVERIFY2(!QDir::isRelativePath(data), qPrintable(data)); + QVERIFY2(data.endsWith("kssl/ca-bundle.crt"), qPrintable(data)); +} - const QString data = KGlobal::dirs()->findResource("data", "dbus-1/interfaces/org.kde.JobView.xml"); +void KStandarddirsTest::testFindResource() +{ + const QString data = KGlobal::dirs()->findResource("data", "testdir1/testdir1.1/testfile1"); QVERIFY(!data.isEmpty()); - QVERIFY(data.endsWith(QLatin1String("dbus-1/interfaces/org.kde.JobView.xml"))); - QVERIFY(!QDir::isRelativePath(data)); + QVERIFY2(!QDir::isRelativePath(data), qPrintable(data)); + QCOMPARE_PATHS(data, QFINDTESTDATA("share/testdir1/testdir1.1/testfile1")); } static bool oneEndsWith(const QStringList &lst, const QString &str) @@ -148,73 +186,89 @@ static bool oneEndsWith(const QStringList &lst, const QString &str) return false; } -void KStandarddirsTest::testFindAllResources() +void KStandarddirsTest::testFindAllResourcesInstalled() { - const QStringList dbusInterfaceFiles = KGlobal::dirs()->findAllResources("data", "dbus-1/interfaces/"); - QVERIFY(!dbusInterfaceFiles.isEmpty()); - QVERIFY(dbusInterfaceFiles.count() > 20); // I have 21 here, installed by kdelibs. + if (!isKde4supportInstalled()) { + QSKIP("kde4support not installed yet"); + } + + const QStringList qimageioplugins = KGlobal::dirs()->findAllResources("data", "kde5/services/qimageioplugins/"); + QVERIFY(!qimageioplugins.isEmpty()); + QVERIFY2(qimageioplugins.count() >= 15, qPrintable(qimageioplugins.join(","))); // the number installed by kde4support + QVERIFY2(oneEndsWith(qimageioplugins, "kde5/services/qimageioplugins/jpeg.desktop"), qPrintable(qimageioplugins.join(","))); + + const QStringList configFiles = KGlobal::dirs()->findAllResources("config"); + QVERIFY(!configFiles.isEmpty()); + QVERIFY2(oneEndsWith(configFiles, "etc/xdg/kdebugrc"), qPrintable(configFiles.join(","))); + QVERIFY2(oneEndsWith(configFiles, "etc/xdg/kdebug.areas"), qPrintable(configFiles.join(","))); + QVERIFY2(oneEndsWith(configFiles, "etc/xdg/ksslcalist"), qPrintable(configFiles.join(","))); + QVERIFY2(!oneEndsWith(configFiles, "etc/xdg/colors/Web.colors"), qPrintable(configFiles.join(","))); // recursive was false +} - // Create a local config file, the file will be used as expected result - const QString localConfigFile = m_configHome + "/foorc"; +QString KStandarddirsTest::createLocalConfig(const QString &name) +{ + const QString localConfigFile = m_configHome + "/" + name; QFile::remove(localConfigFile); - KConfig foorc("foorc"); - KConfigGroup dummyGroup(&foorc, "Dummy"); + KConfig config(name); + KConfigGroup dummyGroup(&config, "Dummy"); dummyGroup.writeEntry("someEntry", true); dummyGroup.sync(); + return localConfigFile; +} + +void KStandarddirsTest::testFindAllResources() +{ + const QStringList testdir1Files = KGlobal::dirs()->findAllResources("data", "testdir1/testdir1.1/"); + QVERIFY(!testdir1Files.isEmpty()); + QVERIFY2(testdir1Files.contains(QFINDTESTDATA("share/testdir1/testdir1.1/testfile1")), qPrintable(testdir1Files.join(","))); + QVERIFY2(testdir1Files.contains(QFINDTESTDATA("share/testdir1/testdir1.1/testfile2")), qPrintable(testdir1Files.join(","))); + + const QString localConfigFile = createLocalConfig("foorc"); QVERIFY2(QFile::exists(localConfigFile), qPrintable(localConfigFile)); - const QStringList configFiles = KGlobal::dirs()->findAllResources("config"); - QVERIFY(!configFiles.isEmpty()); - QVERIFY(configFiles.count() > 5); // I have 9 here - QVERIFY(oneEndsWith(configFiles, "etc/xdg/kdebugrc")); - QVERIFY(oneEndsWith(configFiles, "kde-unit-test/xdg/config/foorc")); - QVERIFY(!oneEndsWith(configFiles, "etc/xdg/colors/Web.colors")); // recursive was false + { + const QStringList configFiles = KGlobal::dirs()->findAllResources("config"); + QVERIFY(!configFiles.isEmpty()); + QVERIFY2(configFiles.contains(QFINDTESTDATA("xdg/test1rc")), qPrintable(configFiles.join(","))); + QVERIFY2(configFiles.contains(QFINDTESTDATA("xdg/testcnf1")), qPrintable(configFiles.join(","))); + QVERIFY2(!configFiles.contains(QFINDTESTDATA("xdg/testcnfdir/test2rc")), qPrintable(configFiles.join(","))); // recursive was false + QVERIFY2(!configFiles.contains(QFINDTESTDATA("xdg/testcnfdir/testcnf2")), qPrintable(configFiles.join(","))); // recursive was false + QVERIFY2(configFiles.contains(localConfigFile), qPrintable(configFiles.join(","))); + } { const QStringList configFilesRecursive = KGlobal::dirs()->findAllResources("config", QString(), KStandardDirs::Recursive); QVERIFY(!configFilesRecursive.isEmpty()); - QVERIFY(configFilesRecursive.count() > 5); // I have 15 here - QVERIFY(oneEndsWith(configFilesRecursive, "etc/xdg/kdebugrc")); - QVERIFY(oneEndsWith(configFilesRecursive, "etc/xdg/colors/Web.colors")); // proves that recursive worked + QVERIFY2(configFilesRecursive.contains(QFINDTESTDATA("xdg/test1rc")), qPrintable(configFilesRecursive.join(","))); + QVERIFY2(configFilesRecursive.contains(QFINDTESTDATA("xdg/testcnf1")), qPrintable(configFilesRecursive.join(","))); + QVERIFY2(configFilesRecursive.contains(QFINDTESTDATA("xdg/testcnfdir/test2rc")), qPrintable(configFilesRecursive.join(","))); + QVERIFY2(configFilesRecursive.contains(QFINDTESTDATA("xdg/testcnfdir/testcnf2")), qPrintable(configFilesRecursive.join(","))); + QVERIFY2(configFilesRecursive.contains(localConfigFile), qPrintable(configFilesRecursive.join(","))); } { const QStringList configFilesRecursiveWithFilter = KGlobal::dirs()->findAllResources("config", "*rc", KStandardDirs::Recursive); QVERIFY(!configFilesRecursiveWithFilter.isEmpty()); - //qDebug() << configFilesRecursiveWithFilter; - QVERIFY(configFilesRecursiveWithFilter.count() >= 3); // foorc, kdebugrc, ui/ui_standards.rc - QVERIFY(oneEndsWith(configFilesRecursiveWithFilter, "kde-unit-test/xdg/config/foorc")); - QVERIFY(oneEndsWith(configFilesRecursiveWithFilter, "etc/xdg/kdebugrc")); - QVERIFY(oneEndsWith(configFilesRecursiveWithFilter, "etc/xdg/ui/ui_standards.rc")); - QVERIFY(!oneEndsWith(configFilesRecursiveWithFilter, "etc/xdg/colors/Web.colors")); // didn't match the filter + QVERIFY2(configFilesRecursiveWithFilter.contains(QFINDTESTDATA("xdg/test1rc")), qPrintable(configFilesRecursiveWithFilter.join(","))); + QVERIFY2(!configFilesRecursiveWithFilter.contains(QFINDTESTDATA("xdg/testcnf1")), qPrintable(configFilesRecursiveWithFilter.join(","))); // did not match + QVERIFY2(configFilesRecursiveWithFilter.contains(QFINDTESTDATA("xdg/testcnfdir/test2rc")), qPrintable(configFilesRecursiveWithFilter.join(","))); + QVERIFY2(!configFilesRecursiveWithFilter.contains(QFINDTESTDATA("xdg/testcnfdir/testcnf2")), qPrintable(configFilesRecursiveWithFilter.join(","))); // did not match + QVERIFY2(configFilesRecursiveWithFilter.contains(localConfigFile), qPrintable(configFilesRecursiveWithFilter.join(","))); } { QStringList fileNames; const QStringList configFilesWithFilter = KGlobal::dirs()->findAllResources("config", "*rc", KStandardDirs::NoDuplicates, fileNames); QVERIFY(!configFilesWithFilter.isEmpty()); - QVERIFY2(configFilesWithFilter.count() >= 2, qPrintable(configFilesWithFilter.join(","))); - QVERIFY(oneEndsWith(configFilesWithFilter, "kde-unit-test/xdg/config/foorc")); - QVERIFY(oneEndsWith(configFilesWithFilter, "kdebugrc")); // either global (etc/xdg/) or local (XDG_HOME) - QVERIFY(!oneEndsWith(configFilesWithFilter, "etc/xdg/ui/ui_standards.rc")); // recursive not set - QVERIFY(!oneEndsWith(configFilesWithFilter, "etc/xdg/accept-languages.codes")); // didn't match the filter - QCOMPARE(fileNames.count(), configFilesWithFilter.count()); - QVERIFY(fileNames.contains("kdebugrc")); - } - -#if 0 - list = t.findAllResources("html", "en/*/index.html", false); - for (QStringList::ConstIterator it = list.begin(); it != list.end(); ++it) { - kDebug() << "docs " << (*it).toLatin1().constData(); - } - - list = t.findAllResources("html", "*/*/*.html", false); - for (QStringList::ConstIterator it = list.begin(); it != list.end(); ++it) { - kDebug() << "docs " << (*it).toLatin1().constData(); + QVERIFY2(configFilesWithFilter.contains(QFINDTESTDATA("xdg/test1rc")), qPrintable(configFilesWithFilter.join(","))); + QVERIFY2(!configFilesWithFilter.contains(QFINDTESTDATA("xdg/testcnf1")), qPrintable(configFilesWithFilter.join(","))); // did not match + QVERIFY2(!configFilesWithFilter.contains(QFINDTESTDATA("xdg/testcnfdir/test2rc")), qPrintable(configFilesWithFilter.join(","))); // no recursion + QVERIFY2(!configFilesWithFilter.contains(QFINDTESTDATA("xdg/testcnfdir/testcnf2")), qPrintable(configFilesWithFilter.join(","))); // did not match + QCOMPARE_PATHS(fileNames.count(), configFilesWithFilter.count()); + QVERIFY2(fileNames.contains("test1rc"), qPrintable(fileNames.join(","))); } -#endif } void KStandarddirsTest::testFindAllResourcesNewDir() @@ -232,70 +286,68 @@ void KStandarddirsTest::testFindAllResourcesNewDir() file.close(); const int newCount = KGlobal::dirs()->findAllResources("data", "cmake/modules/").count(); - QCOMPARE(newCount, origCount + 1); + QCOMPARE_PATHS(newCount, origCount + 1); file.remove(); QDir().rmpath(dir); } void KStandarddirsTest::testFindDirs() { - const QString t = KStandardDirs::locateLocal("data", "kconf_update/"); - QCOMPARE(t, QString(m_dataHome + "/kconf_update/")); - const QStringList dirs = KGlobal::dirs()->findDirs("data", "kconf_update"); + QDir localDataDir(m_dataHome); + localDataDir.mkdir("testdir1"); + QString localTestDir1 = m_dataHome + "/testdir1/"; + const QString t = KStandardDirs::locateLocal("data", "testdir1/"); + QCOMPARE_PATHS(t, localTestDir1); + const QStringList dirs = KGlobal::dirs()->findDirs("data", "testdir1"); QVERIFY(!dirs.isEmpty()); - QVERIFY2(dirs.count() >= 2, qPrintable(dirs.join(","))); // at least local and global + QVERIFY2(dirs.contains(localTestDir1), qPrintable(dirs.join(","))); + QVERIFY2(dirs.contains(QFINDTESTDATA("share/testdir1/")), qPrintable(dirs.join(","))); //qDebug() << dirs; } void KStandarddirsTest::testFindResourceDir() { + createLocalConfig("foorc"); const QString configDir = KGlobal::dirs()->findResourceDir("config", "foorc"); QVERIFY(!configDir.isEmpty()); QVERIFY2(configDir.endsWith(QLatin1String("/xdg/config/")), qPrintable(configDir)); } -void KStandarddirsTest::testFindExeLibExec() +void KStandarddirsTest::testFindExe() { -#ifndef Q_OS_UNIX - QSKIP("non-UNIX system"); -#endif if (!isKde4supportInstalled()) { - // KStandardDirs::findExe only finds libexec executables in the installed location QSKIP("kde4support not installed"); } - // findExe with a result in libexec - const QString libexe = KGlobal::dirs()->findExe("fileshareset"); - QVERIFY(!libexe.isEmpty()); - QVERIFY(libexe.endsWith(LIB_INSTALL_DIR "/kde5/libexec/fileshareset" EXT, PATH_SENSITIVITY)); -} - -void KStandarddirsTest::testFindExe() -{ // findExe with a result in bin - const QString binexe = KGlobal::dirs()->findExe("kconfig_compiler"); + const QString binexe = KGlobal::dirs()->findExe("kf5-config"); QVERIFY(!binexe.isEmpty()); #ifdef Q_OS_MAC - QVERIFY2(binexe.endsWith("kconfig_compiler", PATH_SENSITIVITY), qPrintable(binexe)); + QVERIFY2(binexe.endsWith("kf5-config", PATH_SENSITIVITY), qPrintable(binexe)); #else - QVERIFY2(binexe.endsWith("bin/kconfig_compiler" EXT, PATH_SENSITIVITY), qPrintable(binexe)); + QVERIFY2(binexe.endsWith("bin/kf5-config" EXT, PATH_SENSITIVITY), qPrintable(binexe)); #endif #ifndef Q_OS_MAC // kconfig_compiler is a bundle on Mac, so the below doesn't work // Check the "exe" resource too QString binexePath1 = KStandardDirs::realFilePath(binexe); - QString binexePath2 = KGlobal::dirs()->locate("exe", "kconfig_compiler"); + QString binexePath2 = KGlobal::dirs()->locate("exe", "kf5-config"); QCOMPARE_PATHS(binexePath1, binexePath2); // Check realFilePath behavior with complete command lines, like KRun does const QString cmd = binexe + " -c foo -x bar"; const QString fromKStdDirs = KStandardDirs::realFilePath(cmd); - QCOMPARE(fromKStdDirs, cmd); + QCOMPARE_PATHS(fromKStdDirs, cmd); const QString fromQFileInfo = QFileInfo(cmd).canonicalFilePath(); QVERIFY(fromQFileInfo.isEmpty()); // !! different result, since this doesn't exist as a file #endif #ifdef Q_OS_UNIX + // findExe with a result in libexec + const QString libexe = KGlobal::dirs()->findExe("fileshareset"); + QVERIFY(!libexe.isEmpty()); + QVERIFY(libexe.endsWith(LIB_INSTALL_DIR "/kde5/libexec/fileshareset" EXT, PATH_SENSITIVITY)); + // locate("exe") with a result in libexec const QString locateLibExe = KGlobal::dirs()->locate("exe", "fileshareset"); QVERIFY(locateLibExe.endsWith(LIB_INSTALL_DIR "/kde5/libexec/fileshareset" EXT, PATH_SENSITIVITY)); @@ -340,26 +392,14 @@ void KStandarddirsTest::testFindExe() void KStandarddirsTest::testLocate() { - QString textPlain = "text/x-patch.xml"; - Q_FOREACH (const QString &path, KGlobal::dirs()->resourceDirs("xdgdata-mime")) { - if (QFile::exists(path + textPlain)) { - textPlain = path + textPlain; - break; - } - } - if (textPlain == "text/x-patch.xml") { - QSKIP("xdg-share-mime not installed"); - } - - const QString res = KGlobal::dirs()->locate("xdgdata-mime", "text/x-patch.xml"); - QCOMPARE_PATHS(res, textPlain); + const QString res = KGlobal::dirs()->locate("xdgdata-mime", "text/x-kstddirsunittest.xml"); + QCOMPARE_PATHS(res, QFINDTESTDATA("share/mime/text/x-kstddirsunittest.xml")); } void KStandarddirsTest::testRelativeLocation() { - const QString file = "kdebugrc"; - QString located = KGlobal::dirs()->locate("config", file); - QCOMPARE_PATHS(KGlobal::dirs()->relativeLocation("config", located), file); + QCOMPARE_PATHS(KGlobal::dirs()->relativeLocation("config", QFINDTESTDATA("xdg/test1rc")), "test1rc"); + QCOMPARE_PATHS(KGlobal::dirs()->relativeLocation("config", QFINDTESTDATA("xdg/testcnfdir/test2rc")), "testcnfdir/test2rc"); } void KStandarddirsTest::testAddResourceType() @@ -368,26 +408,25 @@ void KStandarddirsTest::testAddResourceType() QSKIP("kde4support not installed"); } - QString ret = KStandardDirs::locate("dtd", "customization/catalog.xml"); - QCOMPARE(ret, QString()); // normal, there's no "dtd" resource in kstandarddirs by default + QDir(m_dataHome).mkpath("testdir1"); - KGlobal::dirs()->addResourceType("dtd", "data", "ksgmltools2/"); - ret = KStandardDirs::locate("dtd", "customization/catalog.xml"); + QString ret = KStandardDirs::locate("testd", "testdir1.1/testfile1"); + QCOMPARE(ret, QString()); // normal, there's no "testd" resource in kstandarddirs by default + + KGlobal::dirs()->addResourceType("testd", "data", "testdir1/"); + ret = KStandardDirs::locate("testd", "testdir1.1/testfile1"); QVERIFY(!ret.isEmpty()); - ret = KStandardDirs::locate("dtd", "customization/kde-chunk.xsl"); + ret = KStandardDirs::locate("testd", "testdir1.1/testfile2"); QVERIFY(!ret.isEmpty()); - const QStringList files = KGlobal::dirs()->findAllResources("dtd", "customization/*", KStandardDirs::NoDuplicates); - QVERIFY(files.count() > 2); + const QStringList files = KGlobal::dirs()->findAllResources("testd", "testdir1.1/*", KStandardDirs::NoDuplicates); + QCOMPARE(files.count(), 2); - KGlobal::dirs()->addResourceType("xdgdata-ontology", 0, "ontology"); - const QStringList ontologyDirs = KGlobal::dirs()->resourceDirs("xdgdata-ontology"); - QCOMPARE(ontologyDirs.first(), KStandardDirs::realPath(QString(qgetenv("XDG_DATA_HOME")) + "/ontology/")); - if (QFile::exists("/usr/share/ontology") && - QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation).contains("/usr/share")) { - QVERIFY(ontologyDirs.contains("/usr/share/ontology/")); - } + const QStringList dirs = KGlobal::dirs()->resourceDirs("testd"); + QVERIFY(!dirs.isEmpty()); + QVERIFY2(dirs.contains(QFINDTESTDATA("share/testdir1/")), qPrintable(dirs.join(","))); + QVERIFY2(dirs.contains(m_dataHome + "/testdir1/"), qPrintable(dirs.join(","))); } void KStandarddirsTest::testAddResourceDir() @@ -510,18 +549,18 @@ void KStandarddirsTest::testSymlinkResolution() // The issue at this point is that saveLoc does not actually exist yet. QVERIFY(QDir(saveLoc).canonicalPath().isEmpty()); // this is why we can't use canonicalPath QVERIFY(!QFile::exists(saveLoc)); - QCOMPARE(saveLoc, KStandardDirs::realPath(saveLoc)); // must be resolved - QCOMPARE(saveLoc, expected); + QCOMPARE_PATHS(saveLoc, KStandardDirs::realPath(saveLoc)); // must be resolved + QCOMPARE_PATHS(saveLoc, expected); QVERIFY(QDir(baseDir).mkpath("real/test")); // KConfig calls mkdir on its own, we simulate that here const QString sameSaveLoc = KGlobal::dirs()->resourceDirs("david").first(); - QCOMPARE(sameSaveLoc, saveLoc); - QCOMPARE(sameSaveLoc, KGlobal::dirs()->saveLocation("david")); + QCOMPARE_PATHS(sameSaveLoc, saveLoc); + QCOMPARE_PATHS(sameSaveLoc, KGlobal::dirs()->saveLocation("david")); // While we're here... - QCOMPARE(KStandardDirs::realPath(QString()), QString()); - QCOMPARE(KStandardDirs::realPath(QString("/")), QString("/")); + QCOMPARE_PATHS(KStandardDirs::realPath(QString()), QString()); + QCOMPARE_PATHS(KStandardDirs::realPath(QString("/")), QString("/")); - QCOMPARE(KStandardDirs::realPath(QString("/does_not_exist/")), QString("/does_not_exist/")); + QCOMPARE_PATHS(KStandardDirs::realPath(QString("/does_not_exist/")), QString("/does_not_exist/")); #endif } diff --git a/autotests/kstandarddirstest.h b/autotests/kstandarddirstest.h index fb1058d..4417257 100644 --- a/autotests/kstandarddirstest.h +++ b/autotests/kstandarddirstest.h @@ -26,18 +26,21 @@ class KStandarddirsTest : public QObject Q_OBJECT private Q_SLOTS: void initTestCase(); + void init(); + void cleanup(); void testSaveLocation(); void testLocateLocal(); void testResourceDirs(); void testAppData(); void testChangeSaveLocation(); + void testFindResourceInstalled(); void testFindResource(); void testFindAllResources(); + void testFindAllResourcesInstalled(); void testFindAllResourcesNewDir(); void testFindDirs(); void testFindResourceDir(); void testFindExe(); - void testFindExeLibExec(); void testLocate(); void testRelativeLocation(); void testAddResourceType(); @@ -48,6 +51,8 @@ private Q_SLOTS: void testThreads(); private: + QString createLocalConfig(const QString &name); + QString m_configHome; QString m_dataHome; }; diff --git a/autotests/share/dbus-1/interfaces/org.kde.JobView.xml b/autotests/share/dbus-1/interfaces/org.kde.JobView.xml new file mode 100644 index 0000000..f64d232 --- /dev/null +++ b/autotests/share/dbus-1/interfaces/org.kde.JobView.xml @@ -0,0 +1,50 @@ +<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" +"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> +<node> + <interface name="org.kde.JobView"> + <method name="terminate"> + <arg name="errorMessage" type="s" direction="in"/> + <annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/> + </method> + <method name="setSuspended"> + <arg name="suspended" type="b" direction="in"/> + <annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/> + </method> + <method name="setTotalAmount"> + <arg name="amount" type="t" direction="in"/> + <arg name="unit" type="s" direction="in"/> + <annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/> + </method> + <method name="setProcessedAmount"> + <arg name="amount" type="t" direction="in"/> + <arg name="unit" type="s" direction="in"/> + <annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/> + </method> + <method name="setPercent"> + <arg name="percent" type="u" direction="in"/> + <annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/> + </method> + <method name="setSpeed"> + <arg name="bytesPerSecond" type="t" direction="in"/> + <annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/> + </method> + <method name="setInfoMessage"> + <arg name="message" type="s" direction="in"/> + <annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/> + </method> + <method name="setDescriptionField"> + <arg name="number" type="u" direction="in"/> + <arg name="name" type="s" direction="in"/> + <arg name="value" type="s" direction="in"/> + <arg name="res" type="b" direction="out"/> + </method> + <method name="clearDescriptionField"> + <arg name="number" type="u" direction="in"/> + <annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/> + </method> + + <signal name="suspendRequested"/> + <signal name="resumeRequested"/> + <signal name="cancelRequested"/> + </interface> +</node> diff --git a/autotests/share/dbus-1/interfaces/org.kde.KMediaPlayer.xml b/autotests/share/dbus-1/interfaces/org.kde.KMediaPlayer.xml new file mode 100644 index 0000000..40b11c4 --- /dev/null +++ b/autotests/share/dbus-1/interfaces/org.kde.KMediaPlayer.xml @@ -0,0 +1,26 @@ +<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" +"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> +<node> + <interface name="org.kde.KMediaPlayer"> + <method name="openUrl"> + <arg name="file" type="s" direction="in"/> + <arg type="b" direction="out"/> + </method> + <method name="pause"/> + <method name="play"/> + <method name="stop"/> + <method name="seek"> + <arg name="msec" type="x" direction="in"/> + </method> + <property name="seekable" type="b" access="read"> + <annotation name="com.trolltech.QtDBus.propertyGetter" value="isSeekable"/> + </property> + <property name="position" type="x" access="read"/> + <property name="hasLength" type="b" access="read"/> + <property name="length" type="x" access="read"/> + <property name="looping" type="b" access="readwrite"> + <annotation name="com.trolltech.QtDBus.propertyGetter" value="isLooping"/> + </property> + <property name="state" type="i" access="readwrite"/> + </interface> +</node> diff --git a/autotests/share/mime/text/x-kstddirsunittest.xml b/autotests/share/mime/text/x-kstddirsunittest.xml new file mode 100644 index 0000000..88a7921 --- /dev/null +++ b/autotests/share/mime/text/x-kstddirsunittest.xml @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<mime-type xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="text/x-kstddirsunittest"> +</mime-type> diff --git a/autotests/share/testdir1/testdir1.1/testfile1 b/autotests/share/testdir1/testdir1.1/testfile1 new file mode 100644 index 0000000..e9373cd --- /dev/null +++ b/autotests/share/testdir1/testdir1.1/testfile1 @@ -0,0 +1 @@ +testfile1 diff --git a/autotests/share/testdir1/testdir1.1/testfile2 b/autotests/share/testdir1/testdir1.1/testfile2 new file mode 100644 index 0000000..7d57647 --- /dev/null +++ b/autotests/share/testdir1/testdir1.1/testfile2 @@ -0,0 +1 @@ +testfile2 diff --git a/autotests/xdg/test1rc b/autotests/xdg/test1rc new file mode 100644 index 0000000..4d6cf3d --- /dev/null +++ b/autotests/xdg/test1rc @@ -0,0 +1,2 @@ +[Dummy] +someEntry=true diff --git a/autotests/xdg/testcnf1 b/autotests/xdg/testcnf1 new file mode 100644 index 0000000..4d6cf3d --- /dev/null +++ b/autotests/xdg/testcnf1 @@ -0,0 +1,2 @@ +[Dummy] +someEntry=true diff --git a/autotests/xdg/testcnfdir/test2rc b/autotests/xdg/testcnfdir/test2rc new file mode 100644 index 0000000..4d6cf3d --- /dev/null +++ b/autotests/xdg/testcnfdir/test2rc @@ -0,0 +1,2 @@ +[Dummy] +someEntry=true diff --git a/autotests/xdg/testcnfdir/testcnf2 b/autotests/xdg/testcnfdir/testcnf2 new file mode 100644 index 0000000..4d6cf3d --- /dev/null +++ b/autotests/xdg/testcnfdir/testcnf2 @@ -0,0 +1,2 @@ +[Dummy] +someEntry=true
_______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel