diff options
Diffstat (limited to 'autotests/kdesktopfiletest.cpp')
-rw-r--r-- | autotests/kdesktopfiletest.cpp | 49 |
1 files changed, 49 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()); + } +} |