summaryrefslogtreecommitdiffstats
path: root/src/test-fus
diff options
context:
space:
mode:
authorWilliam Jon McCann <mccann@jhu.edu>2006-10-31 22:40:34 -0500
committerWilliam Jon McCann <mccann@jhu.edu>2006-10-31 22:40:34 -0500
commit26b40c39ef74eec4f0e9cc7834cfd033a4decbb3 (patch)
tree9aa1e5d8ea473d5b03d8e6dd16cbb4b5910d66df /src/test-fus
parent1d77428175b9684acf582717e7b12b3775ec7e4e (diff)
Add a script to test FUS related functionality.
Fix a problem where error was reported twice.
Diffstat (limited to 'src/test-fus')
-rwxr-xr-xsrc/test-fus63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/test-fus b/src/test-fus
new file mode 100755
index 0000000..3ac7921
--- /dev/null
+++ b/src/test-fus
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+#
+# Test fast-user-switch functionality
+#
+
+import os
+import sys
+import gobject
+import dbus
+import dbus.glib
+
+def activate_reply (res):
+ print "session activated"
+
+def activate_error (e):
+ print str (e)
+
+def session_added_cb (ssid):
+ print "Session added: %s" % ssid
+
+def session_removed_cb (ssid):
+ print "Session removed: %s" % ssid
+
+def active_session_changed_cb (ssid):
+ print "Active session changed: %s" % ssid
+
+bus = dbus.SystemBus ()
+
+manager_obj = bus.get_object ('org.freedesktop.ConsoleKit', '/org/freedesktop/ConsoleKit/Manager')
+
+manager = dbus.Interface (manager_obj, 'org.freedesktop.ConsoleKit.Manager')
+
+current_ssid = manager.GetCurrentSession ()
+current_session_obj = bus.get_object ('org.freedesktop.ConsoleKit', current_ssid)
+current_session = dbus.Interface (current_session_obj, 'org.freedesktop.ConsoleKit.Session')
+
+sid = current_session.GetSeatId ()
+if not sid:
+ print "Current session is not attached to a seat, no switching possible"
+ sys.exit ()
+
+seat_obj = bus.get_object ('org.freedesktop.ConsoleKit', sid)
+seat = dbus.Interface (seat_obj, 'org.freedesktop.ConsoleKit.Seat')
+seat.connect_to_signal ('SessionAdded', session_added_cb)
+seat.connect_to_signal ('SessionRemoved', session_removed_cb)
+seat.connect_to_signal ('ActiveSessionChanged', active_session_changed_cb)
+
+# Show a list of sessions on the current 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 ()
+ print "Session %s user=%u" % (ssid, uid)
+
+# then pretend a session-ID is selected:
+ssid = current_ssid
+session_obj = bus.get_object ('org.freedesktop.ConsoleKit', ssid)
+session = dbus.Interface (session_obj, 'org.freedesktop.ConsoleKit.Session')
+session.Activate (reply_handler = activate_reply, error_handler = activate_error)
+
+mainloop = gobject.MainLoop ()
+mainloop.run()