summaryrefslogtreecommitdiff
path: root/src/test-open-session-with-parameters
diff options
context:
space:
mode:
Diffstat (limited to 'src/test-open-session-with-parameters')
-rwxr-xr-xsrc/test-open-session-with-parameters54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/test-open-session-with-parameters b/src/test-open-session-with-parameters
new file mode 100755
index 0000000..e9e3358
--- /dev/null
+++ b/src/test-open-session-with-parameters
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+#
+# Test opening a new session
+#
+
+import os
+import gobject
+import dbus
+import dbus.glib
+
+bus = dbus.SystemBus ()
+
+manager_obj = bus.get_object ('org.freedesktop.ConsoleKit', '/org/freedesktop/ConsoleKit/Manager')
+
+manager = dbus.Interface (manager_obj, 'org.freedesktop.ConsoleKit.Manager')
+
+params = dbus.Array ([], signature = "sv")
+params.append (("user", dbus.Variant (730)))
+params.append (("session-type", dbus.Variant ("gnome-session")))
+#params.append (("x11-display", dbus.Variant (":0.0")))
+params.append (("display-device", dbus.Variant ("/dev/tty8")))
+params.append (("is-local", dbus.Variant (True)))
+params.append (("bogus-property", dbus.Variant ("Something bogus")))
+params.append (("cookie", dbus.Variant ("This should be ignored")))
+params.append (("id", dbus.Variant ("This should be ignored too")))
+
+cookie = manager.OpenSessionWithParameters (params)
+os.environ['XDG_SESSION_COOKIE'] = cookie
+print "Got cookie: %s" % cookie
+
+seats = manager.GetSeats ()
+for sid in seats:
+ seat_obj = bus.get_object ('org.freedesktop.ConsoleKit', sid)
+ seat = dbus.Interface (seat_obj, 'org.freedesktop.ConsoleKit.Seat')
+ sessions = seat.GetSessions ()
+ for ssid in sessions:
+ session_obj = bus.get_object ('org.freedesktop.ConsoleKit', ssid)
+ session = dbus.Interface (session_obj, 'org.freedesktop.ConsoleKit.Session')
+ uid = session.GetUser ()
+
+# Hmm looks like the proc environment doesn't get updated when
+# os.environ is set. So, we won't use GetCurrentSession.
+#current_session = manager.GetCurrentSession ()
+current_session = manager.GetSessionForCookie (cookie)
+print "Current session: %s" % current_session
+
+session_obj = bus.get_object ('org.freedesktop.ConsoleKit', ssid)
+session = dbus.Interface (session_obj, 'org.freedesktop.ConsoleKit.Session')
+
+mainloop = gobject.MainLoop ()
+
+gobject.timeout_add (30000, mainloop.quit)
+
+mainloop.run()