diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2016-11-22 17:10:21 +1300 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2016-11-22 17:10:21 +1300 |
commit | 53998d514872581c061b7671430569a1e145a9c8 (patch) | |
tree | be560969cc28347925a8a4490f036219c8281dc0 | |
parent | a01cfef22be17048da417fab2094aaf0a7fd785f (diff) | |
download | lightdm-git-53998d514872581c061b7671430569a1e145a9c8.tar.gz |
Add tests to check session listing works in greeters
-rw-r--r-- | tests/Makefile.am | 9 | ||||
-rw-r--r-- | tests/scripts/sessions.conf | 41 | ||||
-rw-r--r-- | tests/src/test-gobject-greeter.c | 12 | ||||
-rwxr-xr-x | tests/src/test-python-greeter | 6 | ||||
-rw-r--r-- | tests/src/test-qt-greeter.cpp | 13 | ||||
-rwxr-xr-x | tests/test-sessions-gobject | 2 | ||||
-rwxr-xr-x | tests/test-sessions-python | 2 | ||||
-rwxr-xr-x | tests/test-sessions-qt4 | 2 | ||||
-rwxr-xr-x | tests/test-sessions-qt5 | 2 |
9 files changed, 87 insertions, 2 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index c0b0b86f..a0db3da1 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -72,6 +72,7 @@ TESTS = \ test-xauthority \ test-corrupt-xauthority \ test-system-xauthority \ + test-sessions-gobject \ test-user-renamed \ test-user-renamed-invalid \ test-user-name \ @@ -282,6 +283,7 @@ TESTS = \ TESTS += \ test-cancel-authentication-python \ + test-sessions-python \ test-users-python \ test-login-python \ test-login-manual-python \ @@ -345,6 +347,7 @@ TESTS += \ test-login-guest-fail-setup-script-qt4 \ test-login-guest-logout-qt4 \ test-login-remote-session-qt4 \ + test-sessions-qt4 \ test-users-qt4 \ test-power-qt4 \ test-power-no-console-kit-qt4 \ @@ -382,6 +385,7 @@ TESTS += \ test-login-guest-fail-setup-script-qt5 \ test-login-guest-logout-qt5 \ test-login-remote-session-qt5 \ + test-sessions-qt5 \ test-users-qt5 \ test-power-qt5 \ test-power-no-console-kit-qt5 \ @@ -562,6 +566,8 @@ EXTRA_DIST = \ scripts/script-hook-greeter-setup-missing.conf \ scripts/script-hook-session-setup-fail.conf \ scripts/script-hook-session-setup-missing.conf \ + scripts/seatdefaults-still-supported.conf \ + scripts/sessions.conf \ scripts/session-greeter.conf \ scripts/session-greeter-allow-guest.conf \ scripts/session-greeter-autologin.conf \ @@ -680,5 +686,4 @@ EXTRA_DIST = \ scripts/xremote-login.conf \ scripts/xserver-config.conf \ scripts/xserver-fail-start.conf \ - scripts/xserver-no-share.conf \ - scripts/seatdefaults-still-supported.conf + scripts/xserver-no-share.conf diff --git a/tests/scripts/sessions.conf b/tests/scripts/sessions.conf new file mode 100644 index 00000000..fa25652d --- /dev/null +++ b/tests/scripts/sessions.conf @@ -0,0 +1,41 @@ +# +# Check can list available sessions +# + +[Seat:*] +user-session=default + +#?*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 + +# List sessions +#?*GREETER-X-0 LOG-SESSIONS +#?GREETER-X-0 LOG-SESSION KEY=alternative +#?GREETER-X-0 LOG-SESSION KEY=default +#?GREETER-X-0 LOG-SESSION KEY=mir +#?GREETER-X-0 LOG-SESSION KEY=named-legacy +#?GREETER-X-0 LOG-SESSION KEY=named +#?GREETER-X-0 LOG-SESSION KEY=wayland +#?GREETER-X-0 LOG-SESSION KEY=greeter + +# Cleanup +#?*STOP-DAEMON +#?GREETER-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 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 6479f4c0..94ebf519 100644 --- a/tests/src/test-gobject-greeter.c +++ b/tests/src/test-gobject-greeter.c @@ -357,6 +357,18 @@ request_cb (const gchar *name, GHashTable *params) } } + else if (strcmp (name, "LOG-SESSIONS") == 0) + { + GList *sessions, *link; + + sessions = lightdm_get_sessions (); + for (link = sessions; link; link = link->next) + { + LightDMSession *session = link->data; + status_notify ("%s LOG-SESSION KEY=%s", greeter_id, lightdm_session_get_key (session)); + } + } + else if (strcmp (name, "GET-CAN-SUSPEND") == 0) { gboolean can_suspend = lightdm_get_can_suspend (); diff --git a/tests/src/test-python-greeter b/tests/src/test-python-greeter index 6c8fa79b..63865418 100755 --- a/tests/src/test-python-greeter +++ b/tests/src/test-python-greeter @@ -104,6 +104,12 @@ def request_cb (channel, condition): for user in users: status_notify ('%s LOG-USER USERNAME=%s' % (greeter_id, user.get_name ())) + r = '%s LOG-SESSIONS' % greeter_id + if request == r: + sessions = LightDM.get_sessions (); + for session in sessions: + status_notify ('%s LOG-SESSION KEY=%s' % (greeter_id, session.get_key ())) + r = '%s LOG-LAYOUT' % greeter_id if request == r: layout = LightDM.get_layout ().get_name () diff --git a/tests/src/test-qt-greeter.cpp b/tests/src/test-qt-greeter.cpp index 5df66b49..d2c7602a 100644 --- a/tests/src/test-qt-greeter.cpp +++ b/tests/src/test-qt-greeter.cpp @@ -7,6 +7,7 @@ #include <QLightDM/Greeter> #include <QLightDM/Power> #include <QLightDM/UsersModel> +#include <QLightDM/SessionsModel> #include <QtCore/QSettings> #include <QtCore/QDebug> #include <QtCore/QCoreApplication> @@ -20,6 +21,7 @@ static QSettings *config = NULL; static QLightDM::PowerInterface *power = NULL; static TestGreeter *greeter = NULL; static QLightDM::UsersModel *users_model = NULL; +static QLightDM::SessionsModel *sessions_model = NULL; TestGreeter::TestGreeter () { @@ -193,6 +195,15 @@ request_cb (const gchar *name, GHashTable *params) } } + else if (strcmp (name, "LOG-SESSIONS") == 0) + { + for (int i = 0; i < sessions_model->rowCount (QModelIndex ()); i++) + { + QString key = sessions_model->data (sessions_model->index (i, 0), QLightDM::SessionsModel::KeyRole).toString (); + status_notify ("%s LOG-SESSION KEY=%s", greeter_id, qPrintable (key)); + } + } + else if (strcmp (name, "GET-CAN-SUSPEND") == 0) { gboolean can_suspend = power->canSuspend (); @@ -322,6 +333,8 @@ main(int argc, char *argv[]) QObject::connect (users_model, SIGNAL(rowsAboutToBeRemoved(const QModelIndex&, int, int)), greeter, SLOT(userRowsRemoved(const QModelIndex&, int, int))); } + sessions_model = new QLightDM::SessionsModel(); + status_notify ("%s CONNECT-TO-DAEMON", greeter_id); if (!greeter->connectSync()) { diff --git a/tests/test-sessions-gobject b/tests/test-sessions-gobject new file mode 100755 index 00000000..b66b5b3a --- /dev/null +++ b/tests/test-sessions-gobject @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner sessions test-gobject-greeter diff --git a/tests/test-sessions-python b/tests/test-sessions-python new file mode 100755 index 00000000..80afc423 --- /dev/null +++ b/tests/test-sessions-python @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner sessions test-python-greeter diff --git a/tests/test-sessions-qt4 b/tests/test-sessions-qt4 new file mode 100755 index 00000000..db339f87 --- /dev/null +++ b/tests/test-sessions-qt4 @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner sessions test-qt4-greeter diff --git a/tests/test-sessions-qt5 b/tests/test-sessions-qt5 new file mode 100755 index 00000000..c1ee070f --- /dev/null +++ b/tests/test-sessions-qt5 @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner sessions test-qt5-greeter |