diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2016-08-12 11:34:54 +1200 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2016-08-12 11:34:54 +1200 |
commit | 36cd7c2e3a670b9992860b458cd11f859a77574a (patch) | |
tree | 7c0e22998cc87decdd7785dfe4a70d72ecbda474 | |
parent | 071dbbfa457af8d5718b00dbf77aec226a373e54 (diff) | |
download | lightdm-git-36cd7c2e3a670b9992860b458cd11f859a77574a.tar.gz |
Set hints for in-session-greeters
-rw-r--r-- | src/seat.c | 5 | ||||
-rw-r--r-- | tests/Makefile.am | 10 | ||||
-rw-r--r-- | tests/scripts/session-greeter-allow-guest.conf | 38 | ||||
-rw-r--r-- | tests/scripts/session-greeter-default-session.conf | 39 | ||||
-rw-r--r-- | tests/scripts/session-greeter-hide-users.conf | 38 | ||||
-rw-r--r-- | tests/scripts/session-greeter-show-manual-login.conf | 38 | ||||
-rw-r--r-- | tests/scripts/session-greeter-show-remote-login.conf | 38 | ||||
-rw-r--r-- | tests/src/test-session.c | 46 | ||||
-rwxr-xr-x | tests/test-session-greeter-allow-guest | 2 | ||||
-rwxr-xr-x | tests/test-session-greeter-default-session | 2 | ||||
-rwxr-xr-x | tests/test-session-greeter-hide-users | 2 | ||||
-rwxr-xr-x | tests/test-session-greeter-show-manual-login | 2 | ||||
-rwxr-xr-x | tests/test-session-greeter-show-remote-login | 2 |
13 files changed, 256 insertions, 6 deletions
@@ -1886,12 +1886,17 @@ create_greeter_cb (Session *session, Seat *seat) Greeter *greeter; greeter = greeter_new (); + greeter_set_pam_services (greeter, seat_get_string_property (seat, "pam-service"), seat_get_string_property (seat, "pam-autologin-service")); g_signal_connect (greeter, GREETER_SIGNAL_CREATE_SESSION, G_CALLBACK (create_session_cb), seat); g_signal_connect (greeter, GREETER_SIGNAL_START_SESSION, G_CALLBACK (greeter_start_session_cb), seat); + /* Set hints to greeter */ + greeter_set_allow_guest (greeter, seat_get_allow_guest (seat)); + set_greeter_hints (seat, greeter); + return greeter; } diff --git a/tests/Makefile.am b/tests/Makefile.am index 2665b949..6a64e847 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -173,6 +173,11 @@ TESTS = \ test-session-greeter-unlock-twice \ test-session-greeter-switch \ test-session-greeter-multiple-login \ + test-session-greeter-default-session \ + test-session-greeter-allow-guest \ + test-session-greeter-hide-users \ + test-session-greeter-show-manual-login \ + test-session-greeter-show-remote-login \ test-vnc-login \ test-vnc-command \ test-vnc-dimensions \ @@ -551,9 +556,14 @@ EXTRA_DIST = \ scripts/script-hook-session-setup-fail.conf \ scripts/script-hook-session-setup-missing.conf \ scripts/session-greeter.conf \ + scripts/session-greeter-allow-guest.conf \ scripts/session-greeter-autologin.conf \ + scripts/session-greeter-default-session.conf \ + scripts/session-greeter-hide-users.conf \ scripts/session-greeter-multiple-login.conf \ scripts/session-greeter-reconnect.conf \ + scripts/session-greeter-show-manual-login.conf \ + scripts/session-greeter-show-remote-login.conf \ scripts/session-greeter-switch.conf \ scripts/session-greeter-unlock.conf \ scripts/session-greeter-unlock-twice.conf \ diff --git a/tests/scripts/session-greeter-allow-guest.conf b/tests/scripts/session-greeter-allow-guest.conf new file mode 100644 index 00000000..0b5c493f --- /dev/null +++ b/tests/scripts/session-greeter-allow-guest.conf @@ -0,0 +1,38 @@ +# +# Check in-session greeter is informed if manual login should be showed (it defaults to show) +# + +[Seat:*] +autologin-user=have-password1 +user-session=greeter +greeter-allow-guest=false + +#?*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 + +# Session starts +#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=greeter USER=have-password1 +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?XSERVER-0 ACCEPT-CONNECT +#?SESSION-X-0 CONNECT-XSERVER + +# Start greeter inside session +#?*SESSION-X-0 GREETER-START +#?SESSION-X-0 GREETER-STARTED + +# Check has correct hint to allow guest +#?SESSION-X-0 GREETER-HAS-GUEST-ACCOUNT-HINT=FALSE + +# Cleanup +#?*STOP-DAEMON +#?SESSION-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/session-greeter-default-session.conf b/tests/scripts/session-greeter-default-session.conf new file mode 100644 index 00000000..84126720 --- /dev/null +++ b/tests/scripts/session-greeter-default-session.conf @@ -0,0 +1,39 @@ +# +# Check in-session greeter is informed of the default user session +# + +[Seat:*] +autologin-user=have-password1 +autologin-session=greeter +user-session=alternative + +#?*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 + +# Session starts +#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=greeter USER=have-password1 +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?XSERVER-0 ACCEPT-CONNECT +#?SESSION-X-0 CONNECT-XSERVER + +# Start greeter inside session +#?*SESSION-X-0 GREETER-START +#?SESSION-X-0 GREETER-STARTED + +# Check has correct user session +#?*SESSION-X-0 GREETER-LOG-DEFAULT-SESSION +#?SESSION-X-0 GREETER-LOG-DEFAULT-SESSION SESSION=alternative + +# Cleanup +#?*STOP-DAEMON +#?SESSION-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/session-greeter-hide-users.conf b/tests/scripts/session-greeter-hide-users.conf new file mode 100644 index 00000000..ca01d973 --- /dev/null +++ b/tests/scripts/session-greeter-hide-users.conf @@ -0,0 +1,38 @@ +# +# Check in-session greeter is informed if user list should be hidden +# + +[Seat:*] +autologin-user=have-password1 +user-session=greeter +greeter-hide-users=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 + +# Session starts +#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=greeter USER=have-password1 +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?XSERVER-0 ACCEPT-CONNECT +#?SESSION-X-0 CONNECT-XSERVER + +# Start greeter inside session +#?*SESSION-X-0 GREETER-START +#?SESSION-X-0 GREETER-STARTED + +# Check has correct hint to allow guest +#?SESSION-X-0 GREETER-HIDE-USERS-HINT + +# Cleanup +#?*STOP-DAEMON +#?SESSION-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/session-greeter-show-manual-login.conf b/tests/scripts/session-greeter-show-manual-login.conf new file mode 100644 index 00000000..ea7ec274 --- /dev/null +++ b/tests/scripts/session-greeter-show-manual-login.conf @@ -0,0 +1,38 @@ +# +# Check in-session greeter is informed if manual login should be showed +# + +[Seat:*] +autologin-user=have-password1 +user-session=greeter +greeter-show-manual-login=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 + +# Session starts +#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=greeter USER=have-password1 +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?XSERVER-0 ACCEPT-CONNECT +#?SESSION-X-0 CONNECT-XSERVER + +# Start greeter inside session +#?*SESSION-X-0 GREETER-START +#?SESSION-X-0 GREETER-STARTED + +# Check has correct hint to allow guest +#?SESSION-X-0 GREETER-SHOW-MANUAL-LOGIN-HINT + +# Cleanup +#?*STOP-DAEMON +#?SESSION-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/session-greeter-show-remote-login.conf b/tests/scripts/session-greeter-show-remote-login.conf new file mode 100644 index 00000000..a92e3ff2 --- /dev/null +++ b/tests/scripts/session-greeter-show-remote-login.conf @@ -0,0 +1,38 @@ +# +# Check in-session greeter is informed if remote login should be showed (it defaults to show) +# + +[Seat:*] +autologin-user=have-password1 +user-session=greeter +greeter-show-remote-login=false + +#?*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 + +# Session starts +#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=greeter USER=have-password1 +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?XSERVER-0 ACCEPT-CONNECT +#?SESSION-X-0 CONNECT-XSERVER + +# Start greeter inside session +#?*SESSION-X-0 GREETER-START +#?SESSION-X-0 GREETER-STARTED + +# Check has correct hint to show remote login +#?SESSION-X-0 GREETER-SHOW-REMOTE-LOGIN-HINT=FALSE + +# Cleanup +#?*STOP-DAEMON +#?SESSION-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/src/test-session.c b/tests/src/test-session.c index 1b2669fd..08bf6f9e 100644 --- a/tests/src/test-session.c +++ b/tests/src/test-session.c @@ -258,6 +258,7 @@ request_cb (const gchar *name, GHashTable *params) else if (strcmp (name, "GREETER-START") == 0) { + int timeout; GError *error = NULL; g_assert (greeter == NULL); @@ -268,14 +269,41 @@ request_cb (const gchar *name, GHashTable *params) if (lightdm_greeter_connect_to_daemon_sync (greeter, &error)) status_notify ("%s GREETER-STARTED", session_id); else - status_notify ("%s GREETER-FAILED", session_id); + status_notify ("%s GREETER-FAILED", session_id); + + if (lightdm_greeter_get_select_user_hint (greeter)) + status_notify ("%s GREETER-SELECT-USER-HINT USERNAME=%s", session_id, lightdm_greeter_get_select_user_hint (greeter)); + if (lightdm_greeter_get_select_guest_hint (greeter)) + status_notify ("%s GREETER-SELECT-GUEST-HINT", session_id); + if (lightdm_greeter_get_lock_hint (greeter)) + status_notify ("%s GREETER-LOCK-HINT", session_id); + if (!lightdm_greeter_get_has_guest_account_hint (greeter)) + status_notify ("%s GREETER-HAS-GUEST-ACCOUNT-HINT=FALSE", session_id); + if (lightdm_greeter_get_hide_users_hint (greeter)) + status_notify ("%s GREETER-HIDE-USERS-HINT", session_id); + if (lightdm_greeter_get_show_manual_login_hint (greeter)) + status_notify ("%s GREETER-SHOW-MANUAL-LOGIN-HINT", session_id); + if (!lightdm_greeter_get_show_remote_login_hint (greeter)) + status_notify ("%s GREETER-SHOW-REMOTE-LOGIN-HINT=FALSE", session_id); + timeout = lightdm_greeter_get_autologin_timeout_hint (greeter); + if (lightdm_greeter_get_autologin_user_hint (greeter)) + { + if (timeout != 0) + status_notify ("%s GREETER-AUTOLOGIN-USER USERNAME=%s TIMEOUT=%d", session_id, lightdm_greeter_get_autologin_user_hint (greeter), timeout); + else + status_notify ("%s GREETER-AUTOLOGIN-USER USERNAME=%s", session_id, lightdm_greeter_get_autologin_user_hint (greeter)); + } + else if (lightdm_greeter_get_autologin_guest_hint (greeter)) + { + if (timeout != 0) + status_notify ("%s GREETER-AUTOLOGIN-GUEST TIMEOUT=%d", session_id, timeout); + else + status_notify ("%s GREETER-AUTOLOGIN-GUEST", session_id); + } } - else if (strcmp (name, "GREETER-STOP") == 0) - { - g_assert (greeter != NULL); - g_clear_object (&greeter); - } + else if (strcmp (name, "GREETER-LOG-DEFAULT-SESSION") == 0) + status_notify ("%s GREETER-LOG-DEFAULT-SESSION SESSION=%s", session_id, lightdm_greeter_get_default_session_hint (greeter)); else if (strcmp (name, "GREETER-AUTHENTICATE") == 0) { @@ -295,6 +323,12 @@ request_cb (const gchar *name, GHashTable *params) g_clear_error (&error); } } + + else if (strcmp (name, "GREETER-STOP") == 0) + { + g_assert (greeter != NULL); + g_clear_object (&greeter); + } } int diff --git a/tests/test-session-greeter-allow-guest b/tests/test-session-greeter-allow-guest new file mode 100755 index 00000000..9f5d48e3 --- /dev/null +++ b/tests/test-session-greeter-allow-guest @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner session-greeter-allow-guest test-gobject-greeter diff --git a/tests/test-session-greeter-default-session b/tests/test-session-greeter-default-session new file mode 100755 index 00000000..278d1c6f --- /dev/null +++ b/tests/test-session-greeter-default-session @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner session-greeter-default-session test-gobject-greeter diff --git a/tests/test-session-greeter-hide-users b/tests/test-session-greeter-hide-users new file mode 100755 index 00000000..a988b097 --- /dev/null +++ b/tests/test-session-greeter-hide-users @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner session-greeter-hide-users test-gobject-greeter diff --git a/tests/test-session-greeter-show-manual-login b/tests/test-session-greeter-show-manual-login new file mode 100755 index 00000000..da0f67dc --- /dev/null +++ b/tests/test-session-greeter-show-manual-login @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner session-greeter-show-manual-login test-gobject-greeter diff --git a/tests/test-session-greeter-show-remote-login b/tests/test-session-greeter-show-remote-login new file mode 100755 index 00000000..b6318345 --- /dev/null +++ b/tests/test-session-greeter-show-remote-login @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner session-greeter-show-remote-login test-gobject-greeter |