summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2016-08-12 11:34:54 +1200
committerRobert Ancell <robert.ancell@canonical.com>2016-08-12 11:34:54 +1200
commit36cd7c2e3a670b9992860b458cd11f859a77574a (patch)
tree7c0e22998cc87decdd7785dfe4a70d72ecbda474
parent071dbbfa457af8d5718b00dbf77aec226a373e54 (diff)
downloadlightdm-git-36cd7c2e3a670b9992860b458cd11f859a77574a.tar.gz
Set hints for in-session-greeters
-rw-r--r--src/seat.c5
-rw-r--r--tests/Makefile.am10
-rw-r--r--tests/scripts/session-greeter-allow-guest.conf38
-rw-r--r--tests/scripts/session-greeter-default-session.conf39
-rw-r--r--tests/scripts/session-greeter-hide-users.conf38
-rw-r--r--tests/scripts/session-greeter-show-manual-login.conf38
-rw-r--r--tests/scripts/session-greeter-show-remote-login.conf38
-rw-r--r--tests/src/test-session.c46
-rwxr-xr-xtests/test-session-greeter-allow-guest2
-rwxr-xr-xtests/test-session-greeter-default-session2
-rwxr-xr-xtests/test-session-greeter-hide-users2
-rwxr-xr-xtests/test-session-greeter-show-manual-login2
-rwxr-xr-xtests/test-session-greeter-show-remote-login2
13 files changed, 256 insertions, 6 deletions
diff --git a/src/seat.c b/src/seat.c
index 457152cc..021fd3f4 100644
--- a/src/seat.c
+++ b/src/seat.c
@@ -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