From: Michael Terry Date: Thu, 24 Apr 2014 21:12:37 +0000 (-0400) Subject: Add a bunch of tests; fix some small bugs X-Git-Url: http://rtime.felk.cvut.cz/gitweb/sojka/lightdm.git/commitdiff_plain/6d9b745f059f1396652f7f73c61a523959897f8c Add a bunch of tests; fix some small bugs --- diff --git a/src/greeter.c b/src/greeter.c index 7643fb53..2fc06a76 100644 --- a/src/greeter.c +++ b/src/greeter.c @@ -881,7 +881,7 @@ read_cb (GIOChannel *source, GIOCondition condition, gpointer data) g_free (username); break; case GREETER_MESSAGE_SET_RESETTABLE: - greeter->priv->resettable = read_int (greeter, &offset); + greeter->priv->resettable = (gboolean)read_int (greeter, &offset); break; default: l_warning (greeter, "Unknown message from greeter: %d", id); diff --git a/src/seat.c b/src/seat.c index 10ec7a06..83c383b0 100644 --- a/src/seat.c +++ b/src/seat.c @@ -223,8 +223,11 @@ seat_set_active_session (Seat *seat, Session *session) Greeter *greeter = GREETER (s); if (greeter_get_resettable (greeter)) { - l_debug (seat, "Idling greeter"); - greeter_idle (greeter); + if (seat->priv->active_session == greeter) + { + l_debug (seat, "Idling greeter"); + greeter_idle (greeter); + } } else { @@ -1132,7 +1135,8 @@ greeter_start_session_cb (Greeter *greeter, SessionType type, const gchar *sessi /* If can re-use the display server, stop the greeter first */ display_server = session_get_display_server (SESSION (greeter)); - if (can_share_display_server (seat, display_server) && + if (!greeter_get_resettable (greeter) && + can_share_display_server (seat, display_server) && strcmp (display_server_get_session_type (display_server), session_get_session_type (session)) == 0) { l_debug (seat, "Stopping greeter; display server will be re-used for user session"); diff --git a/tests/scripts/lock-seat-resettable.conf b/tests/scripts/lock-seat-resettable.conf new file mode 100644 index 00000000..94bc6729 --- /dev/null +++ b/tests/scripts/lock-seat-resettable.conf @@ -0,0 +1,68 @@ +# +# Check can lock a seat from D-Bus +# Uses a resettable greeter +# + +[SeatDefaults] +user-session=default + +[test-greeter-config] +resettable=true + +#?*START-DAEMON +#?RUNNER DAEMON-START +#?*WAIT + +# X server starts +#?XSERVER-0 START VT=7 SEAT=seat0 + +# Daemon connects when X server is ready +#?*XSERVER-0 INDICATE-READY +#?XSERVER-0 INDICATE-READY +#?XSERVER-0 ACCEPT-CONNECT + +# Greeter starts +#?GREETER-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?XSERVER-0 ACCEPT-CONNECT +#?GREETER-X-0 CONNECT-XSERVER +#?GREETER-X-0 CONNECT-TO-DAEMON +#?GREETER-X-0 CONNECTED-TO-DAEMON + +# Log into account with a password +#?*GREETER-X-0 AUTHENTICATE USERNAME=no-password1 +#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=no-password1 AUTHENTICATED=TRUE +#?*GREETER-X-0 START-SESSION + +# Start new X server for session +#?XSERVER-1 START VT=8 SEAT=seat0 +#?*XSERVER-1 INDICATE-READY +#?XSERVER-1 INDICATE-READY +#?XSERVER-1 ACCEPT-CONNECT +#?VT ACTIVATE VT=8 +#?GREETER-X-0 IDLE + +# Session starts +#?SESSION-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_GREETER_DATA_DIR=.*/no-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=no-password1 +#?LOGIN1 ACTIVATE-SESSION SESSION=c1 +#?XSERVER-1 ACCEPT-CONNECT +#?SESSION-X-1 CONNECT-XSERVER + +# Lock the seat +#?*SESSION-X-1 LOCK-SEAT +#?SESSION-X-1 LOCK-SEAT + +# Back to greeter +#?LOGIN1 LOCK-SESSION +#?GREETER-X-0 RESET +#?GREETER-X-0 LOCK-HINT +#?VT ACTIVATE VT=7 +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 + +# Cleanup +#?*STOP-DAEMON +#?GREETER-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?SESSION-X-1 TERMINATE SIGNAL=15 +#?XSERVER-1 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/lock-session-resettable.conf b/tests/scripts/lock-session-resettable.conf new file mode 100644 index 00000000..09afb562 --- /dev/null +++ b/tests/scripts/lock-session-resettable.conf @@ -0,0 +1,69 @@ +# +# Check can lock a session from D-Bus +# Uses a resettable greeter +# + +[SeatDefaults] +user-session=default + +[test-greeter-config] +resettable=true + +#?*START-DAEMON +#?RUNNER DAEMON-START +#?*WAIT + +# X server starts +#?XSERVER-0 START VT=7 SEAT=seat0 + +# Daemon connects when X server is ready +#?*XSERVER-0 INDICATE-READY +#?XSERVER-0 INDICATE-READY +#?XSERVER-0 ACCEPT-CONNECT + +# Greeter starts +#?GREETER-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?XSERVER-0 ACCEPT-CONNECT +#?GREETER-X-0 CONNECT-XSERVER +#?GREETER-X-0 CONNECT-TO-DAEMON +#?GREETER-X-0 CONNECTED-TO-DAEMON + +# Log into account with a password +#?*GREETER-X-0 AUTHENTICATE USERNAME=no-password1 +#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=no-password1 AUTHENTICATED=TRUE +#?*GREETER-X-0 START-SESSION + +# Start new X server for session +#?XSERVER-1 START VT=8 SEAT=seat0 +#?*XSERVER-1 INDICATE-READY +#?XSERVER-1 INDICATE-READY +#?XSERVER-1 ACCEPT-CONNECT +#?VT ACTIVATE VT=8 +#?GREETER-X-0 IDLE + +# Session starts +#?SESSION-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_GREETER_DATA_DIR=.*/no-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=no-password1 +#?LOGIN1 ACTIVATE-SESSION SESSION=c1 +#?XSERVER-1 ACCEPT-CONNECT +#?SESSION-X-1 CONNECT-XSERVER + +# Lock the session +#?*SESSION-X-1 LOCK-SESSION +#?SESSION-X-1 LOCK-SESSION + +# Back to greeter with session user selected +#?LOGIN1 LOCK-SESSION +#?GREETER-X-0 RESET +#?GREETER-X-0 SELECT-USER-HINT USERNAME=no-password1 +#?GREETER-X-0 LOCK-HINT +#?VT ACTIVATE VT=7 +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 + +# Cleanup +#?*STOP-DAEMON +#?GREETER-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?SESSION-X-1 TERMINATE SIGNAL=15 +#?XSERVER-1 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/switch-to-greeter-resettable.conf b/tests/scripts/switch-to-greeter-resettable.conf new file mode 100644 index 00000000..4bd0756e --- /dev/null +++ b/tests/scripts/switch-to-greeter-resettable.conf @@ -0,0 +1,71 @@ +# +# Use D-Bus interface to show the greeter +# Uses a resettable greeter +# + +[SeatDefaults] +allow-guest=false +user-session=default + +[test-greeter-config] +resettable=true + +#?*START-DAEMON +#?RUNNER DAEMON-START + +# X server starts +#?XSERVER-0 START VT=7 SEAT=seat0 + +# Daemon connects when X server is ready +#?*XSERVER-0 INDICATE-READY +#?XSERVER-0 INDICATE-READY +#?XSERVER-0 ACCEPT-CONNECT + +# Greeter starts +#?GREETER-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?XSERVER-0 ACCEPT-CONNECT +#?GREETER-X-0 CONNECT-XSERVER +#?GREETER-X-0 CONNECT-TO-DAEMON +#?GREETER-X-0 CONNECTED-TO-DAEMON +#?GREETER-X-0 HAS-GUEST-ACCOUNT-HINT=FALSE + +# Log into account with a password +#?*GREETER-X-0 AUTHENTICATE USERNAME=have-password1 +#?GREETER-X-0 SHOW-PROMPT TEXT="Password:" +#?*GREETER-X-0 RESPOND TEXT="password" +#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE +#?*GREETER-X-0 START-SESSION + +# Start new X server for session +#?XSERVER-1 START VT=8 SEAT=seat0 +#?*XSERVER-1 INDICATE-READY +#?XSERVER-1 INDICATE-READY +#?XSERVER-1 ACCEPT-CONNECT +#?VT ACTIVATE VT=8 +#?GREETER-X-0 IDLE + +# Session starts +#?SESSION-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=have-password1 +#?LOGIN1 ACTIVATE-SESSION SESSION=c1 +#?XSERVER-1 ACCEPT-CONNECT +#?SESSION-X-1 CONNECT-XSERVER + +# Show the greeter +#?*SWITCH-TO-GREETER +#?RUNNER SWITCH-TO-GREETER + +# Session is locked +#?LOGIN1 LOCK-SESSION + +# Switch to greeter +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?VT ACTIVATE VT=7 + +# Cleanup +#?*STOP-DAEMON +#?XSERVER-0 TERMINATE SIGNAL=15 +#?GREETER-X-0 TERMINATE SIGNAL=15 +#?XSERVER-1 TERMINATE SIGNAL=15 +#?SESSION-X-1 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/switch-to-guest-fail-resettable.conf b/tests/scripts/switch-to-guest-fail-resettable.conf new file mode 100644 index 00000000..7242950e --- /dev/null +++ b/tests/scripts/switch-to-guest-fail-resettable.conf @@ -0,0 +1,81 @@ +# +# Check D-Bus interface can trigger/switch to guest session +# Uses a resettable greeter +# + +[LightDM] +guest-account-script=false + +[SeatDefaults] +user-session=default + +[test-greeter-config] +resettable=true + +#?*START-DAEMON +#?RUNNER DAEMON-START + +# X server starts +#?XSERVER-0 START VT=7 SEAT=seat0 + +# Daemon connects when X server is ready +#?*XSERVER-0 INDICATE-READY +#?XSERVER-0 INDICATE-READY +#?XSERVER-0 ACCEPT-CONNECT + +# Greeter starts +#?GREETER-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?XSERVER-0 ACCEPT-CONNECT +#?GREETER-X-0 CONNECT-XSERVER +#?GREETER-X-0 CONNECT-TO-DAEMON +#?GREETER-X-0 CONNECTED-TO-DAEMON + +# Log into account with a password +#?*GREETER-X-0 AUTHENTICATE USERNAME=have-password1 +#?GREETER-X-0 SHOW-PROMPT TEXT="Password:" +#?*GREETER-X-0 RESPOND TEXT="password" +#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE +#?*GREETER-X-0 START-SESSION + +# Start new X server for session +#?XSERVER-1 START VT=8 SEAT=seat0 +#?*XSERVER-1 INDICATE-READY +#?XSERVER-1 INDICATE-READY +#?XSERVER-1 ACCEPT-CONNECT +#?VT ACTIVATE VT=8 +#?GREETER-X-0 IDLE + +# Session starts +#?SESSION-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=have-password1 +#?LOGIN1 ACTIVATE-SESSION SESSION=c1 +#?XSERVER-1 ACCEPT-CONNECT +#?SESSION-X-1 CONNECT-XSERVER + +# Switch to guest +#?*SWITCH-TO-GUEST +#?RUNNER SWITCH-TO-GUEST + +# Start new X server for guest +#?XSERVER-2 START VT=9 SEAT=seat0 +#?*XSERVER-2 INDICATE-READY +#?XSERVER-2 INDICATE-READY +#?XSERVER-2 ACCEPT-CONNECT + +# (guest account attempts to start and fails) + +# Back to greeter +#?LOGIN1 LOCK-SESSION +#?GREETER-X-0 RESET +#?GREETER-X-0 SELECT-GUEST-HINT +#?VT ACTIVATE VT=7 +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 + +# Cleanup +#?*STOP-DAEMON +#?GREETER-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?SESSION-X-1 TERMINATE SIGNAL=15 +#?XSERVER-1 TERMINATE SIGNAL=15 +#?XSERVER-2 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/switch-to-user-existing-resettable.conf b/tests/scripts/switch-to-user-existing-resettable.conf new file mode 100644 index 00000000..da9b47e7 --- /dev/null +++ b/tests/scripts/switch-to-user-existing-resettable.conf @@ -0,0 +1,96 @@ +# +# Check that switching to an existing account with a password shows the greeter +# Uses a resettable greeter +# + +[SeatDefaults] +user-session=default + +[test-greeter-config] +resettable=true + +#?*START-DAEMON +#?RUNNER DAEMON-START +#?*WAIT + +# X server starts +#?XSERVER-0 START VT=7 SEAT=seat0 + +# Daemon connects when X server is ready +#?*XSERVER-0 INDICATE-READY +#?XSERVER-0 INDICATE-READY +#?XSERVER-0 ACCEPT-CONNECT + +# Greeter starts +#?GREETER-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?XSERVER-0 ACCEPT-CONNECT +#?GREETER-X-0 CONNECT-XSERVER +#?GREETER-X-0 CONNECT-TO-DAEMON +#?GREETER-X-0 CONNECTED-TO-DAEMON + +# Log into account with a password +#?*GREETER-X-0 AUTHENTICATE USERNAME=have-password1 +#?GREETER-X-0 SHOW-PROMPT TEXT="Password:" +#?*GREETER-X-0 RESPOND TEXT="password" +#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE +#?*GREETER-X-0 START-SESSION + +# Start new X server for session +#?XSERVER-1 START VT=8 SEAT=seat0 +#?*XSERVER-1 INDICATE-READY +#?XSERVER-1 INDICATE-READY +#?XSERVER-1 ACCEPT-CONNECT +#?VT ACTIVATE VT=8 +#?GREETER-X-0 IDLE + +# Session starts +#?SESSION-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=have-password1 +#?LOGIN1 ACTIVATE-SESSION SESSION=c1 +#?XSERVER-1 ACCEPT-CONNECT +#?SESSION-X-1 CONNECT-XSERVER + +# Switch to another user +#?*SWITCH-TO-USER USERNAME=no-password1 +#?RUNNER SWITCH-TO-USER USERNAME=no-password1 + +# New X server starts +#?XSERVER-2 START VT=9 SEAT=seat0 + +# Daemon connects when X server is ready +#?*XSERVER-2 INDICATE-READY +#?XSERVER-2 INDICATE-READY +#?XSERVER-2 ACCEPT-CONNECT + +# Old session is locked +#?LOGIN1 LOCK-SESSION + +# New session starts +#?SESSION-X-2 START XDG_SEAT=seat0 XDG_VTNR=9 XDG_GREETER_DATA_DIR=.*/no-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=no-password1 +#?XSERVER-2 ACCEPT-CONNECT +#?SESSION-X-2 CONNECT-XSERVER + +# Switch to new session +#?LOGIN1 ACTIVATE-SESSION SESSION=c2 +#?VT ACTIVATE VT=9 + +# Switch back to first user +#?*SWITCH-TO-USER USERNAME=have-password1 +#?RUNNER SWITCH-TO-USER USERNAME=have-password1 + +# Which switches to greeter +#?LOGIN1 LOCK-SESSION +#?GREETER-X-0 RESET +#?GREETER-X-0 SELECT-USER-HINT USERNAME=have-password1 +#?VT ACTIVATE VT=7 +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 + +# Cleanup +#?*STOP-DAEMON +#?GREETER-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?SESSION-X-1 TERMINATE SIGNAL=15 +#?XSERVER-1 TERMINATE SIGNAL=15 +#?SESSION-X-2 TERMINATE SIGNAL=15 +#?XSERVER-2 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/switch-to-user-logout-active-resettable.conf b/tests/scripts/switch-to-user-logout-active-resettable.conf new file mode 100644 index 00000000..42bc7866 --- /dev/null +++ b/tests/scripts/switch-to-user-logout-active-resettable.conf @@ -0,0 +1,91 @@ +# +# Check that switching to a user and logging out the active session starts a greeter +# Uses a resettable greeter +# + +[SeatDefaults] +user-session=default + +[test-greeter-config] +resettable=true + +#?*START-DAEMON +#?RUNNER DAEMON-START +#?*WAIT + +# X server starts +#?XSERVER-0 START VT=7 SEAT=seat0 + +# Daemon connects when X server is ready +#?*XSERVER-0 INDICATE-READY +#?XSERVER-0 INDICATE-READY +#?XSERVER-0 ACCEPT-CONNECT + +# Greeter starts +#?GREETER-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?XSERVER-0 ACCEPT-CONNECT +#?GREETER-X-0 CONNECT-XSERVER +#?GREETER-X-0 CONNECT-TO-DAEMON +#?GREETER-X-0 CONNECTED-TO-DAEMON + +# Log into account with a password +#?*GREETER-X-0 AUTHENTICATE USERNAME=have-password1 +#?GREETER-X-0 SHOW-PROMPT TEXT="Password:" +#?*GREETER-X-0 RESPOND TEXT="password" +#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE +#?*GREETER-X-0 START-SESSION + +# Start new X server for session +#?XSERVER-1 START VT=8 SEAT=seat0 +#?*XSERVER-1 INDICATE-READY +#?XSERVER-1 INDICATE-READY +#?XSERVER-1 ACCEPT-CONNECT +#?VT ACTIVATE VT=8 +#?GREETER-X-0 IDLE + +# Session starts +#?SESSION-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=have-password1 +#?LOGIN1 ACTIVATE-SESSION SESSION=c1 +#?XSERVER-1 ACCEPT-CONNECT +#?SESSION-X-1 CONNECT-XSERVER + +# Switch user +#?*SWITCH-TO-USER USERNAME=no-password2 +#?RUNNER SWITCH-TO-USER USERNAME=no-password2 + +# New X server starts +#?XSERVER-2 START VT=9 SEAT=seat0 + +# Daemon connects when X server is ready +#?*XSERVER-2 INDICATE-READY +#?XSERVER-2 INDICATE-READY +#?XSERVER-2 ACCEPT-CONNECT + +# Session is locked +#?LOGIN1 LOCK-SESSION + +# Session starts +#?SESSION-X-2 START XDG_SEAT=seat0 XDG_VTNR=9 XDG_GREETER_DATA_DIR=.*/no-password2 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=no-password2 +#?XSERVER-2 ACCEPT-CONNECT +#?SESSION-X-2 CONNECT-XSERVER + +# Switch to new session +#?LOGIN1 ACTIVATE-SESSION SESSION=c2 +#?VT ACTIVATE VT=9 + +# Log out new session +#?*SESSION-X-2 LOGOUT +#?XSERVER-2 TERMINATE SIGNAL=15 + +# Switch back to greeter +#?VT ACTIVATE VT=7 +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 + +# Cleanup +#?*STOP-DAEMON +#?GREETER-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?SESSION-X-1 TERMINATE SIGNAL=15 +#?XSERVER-1 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/switch-to-user-resettable.conf b/tests/scripts/switch-to-user-resettable.conf new file mode 100644 index 00000000..ed5e5772 --- /dev/null +++ b/tests/scripts/switch-to-user-resettable.conf @@ -0,0 +1,74 @@ +# +# Check that switching to a user shows the greeter +# Uses a resettable greeter +# + +[SeatDefaults] +user-session=default + +[test-greeter-config] +resettable=true + +#?*START-DAEMON +#?RUNNER DAEMON-START +#?*WAIT + +# X server starts +#?XSERVER-0 START VT=7 SEAT=seat0 + +# Daemon connects when X server is ready +#?*XSERVER-0 INDICATE-READY +#?XSERVER-0 INDICATE-READY +#?XSERVER-0 ACCEPT-CONNECT + +# Greeter starts +#?GREETER-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?XSERVER-0 ACCEPT-CONNECT +#?GREETER-X-0 CONNECT-XSERVER +#?GREETER-X-0 CONNECT-TO-DAEMON +#?GREETER-X-0 CONNECTED-TO-DAEMON + +# Log into account with a password +#?*GREETER-X-0 AUTHENTICATE USERNAME=have-password1 +#?GREETER-X-0 SHOW-PROMPT TEXT="Password:" +#?*GREETER-X-0 RESPOND TEXT="password" +#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE +#?*GREETER-X-0 START-SESSION + +# Start new X server for session +#?XSERVER-1 START VT=8 SEAT=seat0 +#?*XSERVER-1 INDICATE-READY +#?XSERVER-1 INDICATE-READY +#?XSERVER-1 ACCEPT-CONNECT +#?VT ACTIVATE VT=8 +#?GREETER-X-0 IDLE + +# Session starts +#?SESSION-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=have-password1 +#?LOGIN1 ACTIVATE-SESSION SESSION=c1 +#?XSERVER-1 ACCEPT-CONNECT +#?SESSION-X-1 CONNECT-XSERVER + +# Switch to an account with a password +#?*SWITCH-TO-USER USERNAME=have-password2 +#?RUNNER SWITCH-TO-USER USERNAME=have-password2 + +# Switch to greeter +#?LOGIN1 LOCK-SESSION +#?GREETER-X-0 RESET +#?VT ACTIVATE VT=7 +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 + +# Requested user is automatically selected +#?GREETER-X-0 SELECT-USER-HINT USERNAME=have-password2 +#?*GREETER-X-0 AUTHENTICATE USERNAME=have-password2 +#?GREETER-X-0 SHOW-PROMPT TEXT="Password:" + +# Cleanup +#?*STOP-DAEMON +#?GREETER-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?SESSION-X-1 TERMINATE SIGNAL=15 +#?XSERVER-1 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/src/test-gobject-greeter.c b/tests/src/test-gobject-greeter.c index 0be56c0b..86b5fb6c 100644 --- a/tests/src/test-gobject-greeter.c +++ b/tests/src/test-gobject-greeter.c @@ -437,13 +437,6 @@ main (int argc, char **argv) g_signal_connect (lightdm_user_list_get_instance (), "user-removed", G_CALLBACK (user_removed_cb), NULL); } - if (g_key_file_get_boolean (config, "test-greeter-config", "resettable", NULL)) - { - lightdm_greeter_set_resettable (greeter, TRUE); - g_signal_connect (greeter, "idle", G_CALLBACK (idle_cb), NULL); - g_signal_connect (greeter, "reset", G_CALLBACK (reset_cb), NULL); - } - status_notify ("%s CONNECT-TO-DAEMON", greeter_id); if (!lightdm_greeter_connect_sync (greeter, NULL)) { @@ -453,6 +446,13 @@ main (int argc, char **argv) status_notify ("%s CONNECTED-TO-DAEMON", greeter_id); + if (g_key_file_get_boolean (config, "test-greeter-config", "resettable", NULL)) + { + lightdm_greeter_set_resettable (greeter, TRUE); + g_signal_connect (greeter, "idle", G_CALLBACK (idle_cb), NULL); + g_signal_connect (greeter, "reset", G_CALLBACK (reset_cb), NULL); + } + print_hints (greeter); g_main_loop_run (loop); diff --git a/tests/src/test-python-greeter b/tests/src/test-python-greeter index 2bc80e3e..01294064 100755 --- a/tests/src/test-python-greeter +++ b/tests/src/test-python-greeter @@ -270,6 +270,13 @@ if log_user_changes: LightDM.UserList.get_instance ().connect ('user-added', user_added_cb) LightDM.UserList.get_instance ().connect ('user-removed', user_removed_cb) +status_notify ('%s CONNECT-TO-DAEMON' % greeter_id) +if not greeter.connect_sync (): + status_notify ('%s FAIL-CONNECT-DAEMON' % greeter_id) + exit (1) + +status_notify ('%s CONNECTED-TO-DAEMON' % greeter_id) + def idle_cb (greeter): status_notify ('%s IDLE' % (greeter_id)) def reset_cb (greeter): @@ -285,13 +292,6 @@ if resettable: LightDM.Greeter.get_instance ().connect ('idle', idle_cb) LightDM.Greeter.get_instance ().connect ('reset', reset_cb) -status_notify ('%s CONNECT-TO-DAEMON' % greeter_id) -if not greeter.connect_sync (): - status_notify ('%s FAIL-CONNECT-DAEMON' % greeter_id) - exit (1) - -status_notify ('%s CONNECTED-TO-DAEMON' % greeter_id) - print_hints (greeter) loop.run () diff --git a/tests/src/test-qt-greeter.cpp b/tests/src/test-qt-greeter.cpp index bac1fea8..1fb7f360 100644 --- a/tests/src/test-qt-greeter.cpp +++ b/tests/src/test-qt-greeter.cpp @@ -298,13 +298,6 @@ main(int argc, char *argv[]) QObject::connect (users_model, SIGNAL(rowsAboutToBeRemoved(const QModelIndex&, int, int)), greeter, SLOT(userRowsRemoved(const QModelIndex&, int, int))); } - if (config->value ("test-greeter-config/resettable", "false") == "true") - { - greeter->setResettable (true); - QObject::connect (greeter, SIGNAL(idle()), greeter, SLOT(idle())); - QObject::connect (greeter, SIGNAL(reset()), greeter, SLOT(reset())); - } - status_notify ("%s CONNECT-TO-DAEMON", greeter_id); if (!greeter->connectSync()) { @@ -314,6 +307,13 @@ main(int argc, char *argv[]) status_notify ("%s CONNECTED-TO-DAEMON", greeter_id); + if (config->value ("test-greeter-config/resettable", "false") == "true") + { + greeter->setResettable (true); + QObject::connect (greeter, SIGNAL(idle()), greeter, SLOT(idle())); + QObject::connect (greeter, SIGNAL(reset()), greeter, SLOT(reset())); + } + greeter->printHints(); return app->exec(); diff --git a/tests/test-lock-seat-resettable b/tests/test-lock-seat-resettable new file mode 100755 index 00000000..0fb41991 --- /dev/null +++ b/tests/test-lock-seat-resettable @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner lock-seat-resettable test-gobject-greeter diff --git a/tests/test-lock-session-resettable b/tests/test-lock-session-resettable new file mode 100755 index 00000000..0e0b3caa --- /dev/null +++ b/tests/test-lock-session-resettable @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner lock-session-resettable test-gobject-greeter diff --git a/tests/test-switch-to-greeter-resettable b/tests/test-switch-to-greeter-resettable new file mode 100755 index 00000000..82d9cf28 --- /dev/null +++ b/tests/test-switch-to-greeter-resettable @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner switch-to-greeter-resettable test-gobject-greeter diff --git a/tests/test-switch-to-guest-fail-resettable b/tests/test-switch-to-guest-fail-resettable new file mode 100755 index 00000000..bf110f23 --- /dev/null +++ b/tests/test-switch-to-guest-fail-resettable @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner switch-to-guest-fail-resettable test-gobject-greeter diff --git a/tests/test-switch-to-user-existing-resettable b/tests/test-switch-to-user-existing-resettable new file mode 100755 index 00000000..9d31c4a2 --- /dev/null +++ b/tests/test-switch-to-user-existing-resettable @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner switch-to-user-existing-resettable test-gobject-greeter diff --git a/tests/test-switch-to-user-logout-active-resettable b/tests/test-switch-to-user-logout-active-resettable new file mode 100755 index 00000000..c4461a5a --- /dev/null +++ b/tests/test-switch-to-user-logout-active-resettable @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner switch-to-user-logout-active-resettable test-gobject-greeter diff --git a/tests/test-switch-to-user-resettable b/tests/test-switch-to-user-resettable new file mode 100755 index 00000000..93358f80 --- /dev/null +++ b/tests/test-switch-to-user-resettable @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner switch-to-user-resettable test-gobject-greeter