diff options
-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(); }; |