aboutsummaryrefslogtreecommitdiff
path: root/autotests/kdesktopfiletest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'autotests/kdesktopfiletest.cpp')
-rw-r--r--autotests/kdesktopfiletest.cpp49
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());
+ }
+}