summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichele Calgaro <[email protected]>2021-11-23 00:11:22 +0900
committerMichele Calgaro <[email protected]>2021-11-23 00:11:22 +0900
commit26fc60d30352bb3bbf00f8a392bbc695ff8cf29f (patch)
treeebfaffc782da646c5ca5a5547121aeb05b68cdac
parent652c2aea23bd9dea082f5de2c0babe1728ac608f (diff)
downloadpolkit-tqt-26fc60d30352bb3bbf00f8a392bbc695ff8cf29f.tar.gz
polkit-tqt-26fc60d30352bb3bbf00f8a392bbc695ff8cf29f.zip
Removed original test folder and add more manual tests.
Signed-off-by: Michele Calgaro <[email protected]>
-rw-r--r--test/CMakeLists.txt20
-rw-r--r--test/test.cpp235
-rw-r--r--test/test.h20
-rw-r--r--tests/CMakeLists.txt1
-rw-r--r--tests/test_auth_enum_actions.cpp56
-rw-r--r--tests/test_check_authorization.cpp1
6 files changed, 57 insertions, 276 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
deleted file mode 100644
index f862c0b14..000000000
--- a/test/CMakeLists.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-enable_testing()
-
-include_directories(
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_CURRENT_BINARY_DIR}
- ${CMAKE_SOURCE_DIR}/agent
-)
-
-automoc4_add_executable(polkit-tqt-test
- test.cpp
-)
-
-target_link_libraries(polkit-tqt-test
- ${TQT_TQTCORE_LIBRARY}
- ${TQT_TQTTEST_LIBRARY}
- ${TQT_TQTGUI_LIBRARY}
- polkit-tqt-core-1
-)
-
-add_test(BaseTest ${CMAKE_CURRENT_BINARY_DIR}/polkit-tqt-test)
diff --git a/test/test.cpp b/test/test.cpp
deleted file mode 100644
index 62a3ecbfa..000000000
--- a/test/test.cpp
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-#include "test.h"
-#include "core/polkittqt1-authority.h"
-#include "agent/polkittqt1-agent-session.h"
-#include "core/polkittqt1-details.h"
-#include <stdlib.h>
-#include <unistd.h>
-#include <pwd.h>
-#include <TQtDBus/TQDBusMessage>
-#include <TQtDBus/TQDBusConnection>
-using namespace PolkitTQt;
-using namespace PolkitTQt::Agent;
-
-void wait()
-{
- for (int i = 0; i < 100; i++) {
- usleep(100);
- TQCoreApplication::processEvents();
- }
-}
-
-void TestAuth::test_Auth_checkAuthorization()
-{
- // This needs the file org.tqt.policykit.examples.policy from examples to be installed
- UnixProcessSubject process(TQCoreApplication::applicationPid());
- Authority::Result result;
- // Check if this method returns good authorization results
- Authority *authority = Authority::instance();
- result = authority->checkAuthorizationSync("org.tqt.policykit.examples.kick", process, Authority::None);
- TQCOMPARE(result, Authority::No);
- TQVERIFY(!authority->hasError());
- result = authority->checkAuthorizationSync("org.tqt.policykit.examples.cry", process, Authority::None);
- TQCOMPARE(result, Authority::Yes);
- TQVERIFY(!authority->hasError());
- result = authority->checkAuthorizationSync("org.tqt.policykit.examples.bleed", process, Authority::None);
- TQCOMPARE(result, Authority::Challenge);
- TQVERIFY(!authority->hasError());
-
- // Now we try async methods
- TQSignalSpy spy(authority, SIGNAL(checkAuthorizationFinished(PolkitTQt::Authority::Result)));
- // Call asynchronous checkAuthorization
- authority->checkAuthorization("org.tqt.policykit.examples.kick", process, Authority::None);
- // Give the polkit time to obtain the result and emit the signal with it
- wait();
- // Test if the signal was emitted
- TQCOMPARE(spy.count(), 1);
- // Test the result
- result = qVariantValue<PolkitTQt::Authority::Result> (spy.takeFirst()[0]);
- TQCOMPARE(result, Authority::No);
- TQVERIFY(!authority->hasError());
- spy.clear();
-
- // Let's test the cancellability
- authority->checkAuthorization("org.tqt.policykit.examples.kick", process, Authority::None);
- authority->checkAuthorizationCancel();
- // Wait and check if the signal arrieved
- wait();
- TQCOMPARE(spy.count(), 0);
-
- // Check if it can cancel user authentication dialog
- authority->checkAuthorization("org.tqt.policykit.examples.bleed", process, Authority::AllowUserInteraction);
- // Show it for second
- sleep(1);
- // And now kill it
- authority->checkAuthorizationCancel();
- TQVERIFY(!authority->hasError());
- // But how to test if it was successful?
- tqWarning() << "You should see an authentication dialog for a short period.";
-}
-
-void TestAuth::test_Auth_enumerateActions()
-{
- // This needs the file org.tqt.policykit.examples.policy from examples to be installed
- ActionDescription::List list = Authority::instance()->enumerateActionsSync();
- TQVERIFY(!Authority::instance()->hasError());
- // Check whether enumerateAction returns at least example actions
- int count = 0;
- Q_FOREACH(const ActionDescription &ad, list) {
- if ((ad.actionId() == "org.tqt.policykit.examples.kick") ||
- (ad.actionId() == "org.tqt.policykit.examples.cry") ||
- (ad.actionId() == "org.tqt.policykit.examples.bleed"))
- count++;
- }
- TQCOMPARE(count, 3);
-
-
- // Test asynchronous version as well
- list.clear();
- count = 0;
- TQSignalSpy spy(Authority::instance(), SIGNAL(enumerateActionsFinished(PolkitTQt::ActionDescription::List)));
- Authority::instance()->enumerateActions();
- wait();
- TQCOMPARE(spy.count(), 1);
- list = qVariantValue<PolkitTQt::ActionDescription::List> (spy.takeFirst()[0]);
- TQVERIFY(!Authority::instance()->hasError());
- Q_FOREACH(const ActionDescription &ad, list) {
- if ((ad.actionId() == "org.tqt.policykit.examples.kick") ||
- (ad.actionId() == "org.tqt.policykit.examples.cry") ||
- (ad.actionId() == "org.tqt.policykit.examples.bleed"))
- count++;
- }
- TQCOMPARE(count, 3);
-
- // Test cancelling the enumeration
- spy.clear();
- Authority::instance()->enumerateActions();
- Authority::instance()->enumerateActionsCancel();
- wait();
- TQCOMPARE(spy.count(), 0);
- TQVERIFY(!Authority::instance()->hasError());
-}
-
-void TestAuth::test_Identity()
-{
- // Get real name and id of current user and group
- struct passwd *userinfo = getpwuid(getuid());
- TQString userName = userinfo->pw_name;
- unsigned int userId = userinfo->pw_uid;
- unsigned int groupId = userinfo->pw_gid;
-
- // Try to create UnixUser from username
- UnixUserIdentity user(userName);
- TQVERIFY(user.identity());
-
- // Create generic Identity from UnixUser via string representation
- Identity id = Identity::fromString(user.toString());
- // Compare obtained uid with real uid
- TQCOMPARE(id.toUnixUserIdentity().uid(), userId);
-
- // Create generic Identity from UnixGroup via string representation
- UnixGroupIdentity group(groupId);
- TQVERIFY(group.identity());
- id = Identity::fromString(group.toString());
- TQCOMPARE(id.toUnixGroupIdentity().gid(), groupId);
-
- // Test setting gid to another value
- group.setGid(9999U);
- id = Identity::fromString(group.toString());
- TQCOMPARE(id.toUnixGroupIdentity().gid(), 9999U);
-}
-
-void TestAuth::test_Authority()
-{
- Authority *authority = Authority::instance();
- TQVERIFY(authority);
- TQVERIFY(!authority->hasError());
-
- // Verify emiting of the signals
- TQSignalSpy spy(authority, SIGNAL(consoleKitDBChanged()));
- TQDBusMessage msg = TQDBusMessage::createMethodCall("org.freedesktop.ConsoleKit",
- "/org/freedesktop/ConsoleKit/Manager",
- "org.freedesktop.ConsoleKit.Manager",
- "OpenSession");
- TQDBusMessage reply = TQDBusConnection::systemBus().call(msg);
- TQString cookie;
- cookie = qVariantValue<TQString> (reply.arguments()[0]);
-
-
- msg = TQDBusMessage::createMethodCall("org.freedesktop.ConsoleKit",
- "/org/freedesktop/ConsoleKit/Manager",
- "org.freedesktop.ConsoleKit.Manager",
- "CloseSession");
- msg.setArguments(TQList<TQVariant> () << cookie);
- TQDBusConnection::systemBus().call(msg);
- // FIXME: Emitting consoleKitDBChanged is not working now
- tqWarning() << "Emitting consoleKitDBChanged is not working now, test will be skipped";
- //TQVERIFY(spy.count() > 0);
- TQVERIFY(!authority->hasError());
-
- // configChanged signal from authority requires changing some policy files
- // and it would require user interaction (typing the password)
- // so this is not covered by this test
-}
-
-void TestAuth::test_Subject()
-{
- // Get pid of this appication
- TQ_LONG pid = TQCoreApplication::applicationPid();
- // Create unix process for it
- UnixProcessSubject *process = new UnixProcessSubject(pid);
- // Test if pid doesn't differ
- TQCOMPARE(process->pid(), pid);
-
- // Serialize and deserialize subject
- //Subject *subject = Subject::fromString(process->toString());
- // and try it
- //TQCOMPARE(((UnixProcess *) subject)->pid(), pid);
- delete process;
-}
-
-void TestAuth::test_Session()
-{
- /*
- UnixUser user(getuid());
- Session *session = new Session(&user, "/org/freedesktop/ConsoleKit/Session2");
- TQSignalSpy spy_completed(session, SIGNAL(completed(bool)));
- TQSignalSpy spy_request(session, SIGNAL(request(TQString,bool)));
- TQSignalSpy spy_error(session, SIGNAL(showError(TQString)));
- TQSignalSpy spy_info(session, SIGNAL(showInfo(TQString)));
- session->initiate();
- session->response("aaa");
- // Canceling should emit the "completed" signal
- session->cancel();
- TQCOMPARE(spy_completed.count(), 1);
-
- //UnixProcess *process = new UnixProcess(TQCoreApplication::applicationPid());
- //Authority::instance()->checkAuthorization("org.tqt.policykit.examples.kick", process, Authority::None);
-
- tqDebug() << "COMPLETED:" << spy_completed.count();
- tqDebug() << "REQUEST:" << spy_request.count();
- tqDebug() << "ERROR:" << spy_error.count();
- tqDebug() << "INFO:" << spy_info.count();
- */
-}
-
-void TestAuth::test_Details()
-{
- Details details;
- details.insert("1", "aaa");
- details.insert("2", "bbb");
- details.insert("3", "ccc");
- details.insert("4", "ddd");
- TQCOMPARE(details.lookup("1"), TQString("aaa"));
- TQCOMPARE(details.lookup("2"), TQString("bbb"));
- TQCOMPARE(details.lookup("3"), TQString("ccc"));
- TQCOMPARE(details.lookup("4"), TQString("ddd"));
- TQList<TQString> list = details.keys();
- TQVERIFY(list.contains("1"));
- TQVERIFY(list.contains("2"));
- TQVERIFY(list.contains("3"));
- TQVERIFY(list.contains("4"));
-}
-
-TQTEST_MAIN(TestAuth)
diff --git a/test/test.h b/test/test.h
deleted file mode 100644
index 4a3579d89..000000000
--- a/test/test.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef TEST_H
-#define TEST_H
-
-#include <TQtCore/TQObject>
-#include <TQtTest/TQtTest>
-
-class TestAuth : public TQObject
-{
- Q_OBJECT
-private Q_SLOTS:
- void test_Auth_checkAuthorization();
- void test_Auth_enumerateActions();
- void test_Identity();
- void test_Authority();
- void test_Subject();
- void test_Session();
- void test_Details();
-};
-
-#endif // TEST_H
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index cc2083861..92a8543d0 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -50,6 +50,7 @@ set( _test_auto_executables
# ${CMAKE_CURRENT_SOURCE_DIR}/run_test.sh <path/to/test_executable_file>
set( _test_manual_executables
test_check_authorization
+ test_auth_enum_actions
)
foreach( _test_name ${_test_auto_executables} )
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;
+}
+
diff --git a/tests/test_check_authorization.cpp b/tests/test_check_authorization.cpp
index 4fb6674c1..61b836920 100644
--- a/tests/test_check_authorization.cpp
+++ b/tests/test_check_authorization.cpp
@@ -1,5 +1,4 @@
-#include <unistd.h>
#include <tqstring.h>
#include "core/polkit-tqt-authority.h"