summaryrefslogtreecommitdiffstats
path: root/tests/test_auth_enum_actions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_auth_enum_actions.cpp')
-rw-r--r--tests/test_auth_enum_actions.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/test_auth_enum_actions.cpp b/tests/test_auth_enum_actions.cpp
new file mode 100644
index 000000000..d7c992a97
--- /dev/null
+++ b/tests/test_auth_enum_actions.cpp
@@ -0,0 +1,56 @@
+
+#include <tqstring.h>
+
+#include "core/polkit-tqt-authority.h"
+#include "core/polkit-tqt-details.h"
+
+#define TEST_PASSED 0
+#define TEST_FAILED 1
+
+using namespace PolkitTQt;
+
+void wait()
+{
+ for (int i = 0; i < 100; i++)
+ {
+ usleep(100);
+ }
+}
+
+int main(void)
+{
+ // This needs the file org.tqt.policykit.examples.policy from examples to be installed
+ ActionDescription::List list = Authority::instance()->enumerateActionsSync();
+ if (Authority::instance()->hasError())
+ {
+ return TEST_FAILED;
+ }
+ // Check whether enumerateAction returns at least example actions
+ int count = 0;
+ ActionDescription::List::const_iterator adIt;
+ for (adIt = list.begin(); adIt != list.end(); ++adIt)
+ {
+ if (((*adIt).actionId() == "org.tqt.policykit.examples.kick") ||
+ ((*adIt).actionId() == "org.tqt.policykit.examples.cry") ||
+ ((*adIt).actionId() == "org.tqt.policykit.examples.bleed"))
+ {
+ count++;
+ }
+ }
+ if (count != 3)
+ {
+ return TEST_FAILED;
+ }
+
+ // Test cancelling the enumeration
+ Authority::instance()->enumerateActions();
+ Authority::instance()->enumerateActionsCancel();
+ wait();
+ if (Authority::instance()->hasError())
+ {
+ return TEST_FAILED;
+ }
+
+ return TEST_PASSED;
+}
+