diff options
author | David Edmundson <kde@davidedmundson.co.uk> | 2016-05-19 21:13:28 +0100 |
---|---|---|
committer | David Edmundson <kde@davidedmundson.co.uk> | 2016-05-19 22:18:35 +0100 |
commit | 4015794d1275833758198d5705bbdf811c7ed89d (patch) | |
tree | efcd785aabe4783396d77ff4f4779fa26600af48 | |
parent | d7893439b0da3a6526044121d8e545c40730b219 (diff) | |
download | kconfig-4015794d1275833758198d5705bbdf811c7ed89d.tar.gz kconfig-4015794d1275833758198d5705bbdf811c7ed89d.tar.bz2 |
Add autotest for broken KAuthorised check in tryExec()
-rw-r--r-- | autotests/kdesktopfiletest.cpp | 49 | ||||
-rw-r--r-- | autotests/kdesktopfiletest.h | 2 |
2 files changed, 51 insertions, 0 deletions
diff --git a/autotests/kdesktopfiletest.cpp b/autotests/kdesktopfiletest.cpp index a90faf3c..393a6a03 100644 --- a/autotests/kdesktopfiletest.cpp +++ b/autotests/kdesktopfiletest.cpp @@ -18,6 +18,7 @@ #include "kdesktopfiletest.h" #include "helper.h" #include <kconfiggroup.h> +#include <ksharedconfig.h> #include <qtemporaryfile.h> #include "kdesktopfile.h" @@ -26,6 +27,14 @@ QTEST_MAIN(KDesktopFileTest) +void KDesktopFileTest::initTestCase() +{ + QStandardPaths::enableTestMode(true); + + KConfigGroup actionRestrictions(KSharedConfig::openConfig(), "KDE Action Restrictions"); + actionRestrictions.writeEntry("someBlockedAction", false); +} + void KDesktopFileTest::testRead() { QTemporaryFile file("testReadXXXXXX.desktop"); @@ -206,3 +215,43 @@ void KDesktopFileTest::testIsAuthorizedDesktopFile() qWarning("Skipping test for plasma-desktop.desktop, not found. kde-workspace not installed?"); } } + +void KDesktopFileTest::testTryExecWithAuthorizeAction() +{ + { + QTemporaryFile file("testAuthActionXXXXXX.desktop"); + QVERIFY(file.open()); + const QString fileName = file.fileName(); + QTextStream ts(&file); + ts << + "[Desktop Entry]\n" + "Type=Application\n" + "Name=My Application\n" + "Exec=kfoo\n" + "TryExec=bash\n" + "X-KDE-AuthorizeAction=someAction" + "\n"; + file.close(); + + KDesktopFile desktopFile(fileName); + QVERIFY(desktopFile.tryExec()); + } + { + QTemporaryFile file("testAuthActionXXXXXX.desktop"); + QVERIFY(file.open()); + const QString fileName = file.fileName(); + QTextStream ts(&file); + ts << + "[Desktop Entry]\n" + "Type=Application\n" + "Name=My Application\n" + "Exec=kfoo\n" + "TryExec=bash\n" + "X-KDE-AuthorizeAction=someBlockedAction" + "\n"; + file.close(); + + KDesktopFile desktopFile(fileName); + QVERIFY(!desktopFile.tryExec()); + } +} diff --git a/autotests/kdesktopfiletest.h b/autotests/kdesktopfiletest.h index f4e0c96b..eb0bd1df 100644 --- a/autotests/kdesktopfiletest.h +++ b/autotests/kdesktopfiletest.h @@ -25,6 +25,7 @@ class KDesktopFileTest : public QObject { Q_OBJECT private Q_SLOTS: + void initTestCase(); void testRead(); void testReadLocalized_data(); void testReadLocalized(); @@ -32,6 +33,7 @@ private Q_SLOTS: void testSuccessfulTryExec(); void testActionGroup(); void testIsAuthorizedDesktopFile(); + void testTryExecWithAuthorizeAction(); }; |