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