summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2016-11-22 17:10:21 +1300
committerRobert Ancell <robert.ancell@canonical.com>2016-11-22 17:10:21 +1300
commit53998d514872581c061b7671430569a1e145a9c8 (patch)
treebe560969cc28347925a8a4490f036219c8281dc0
parenta01cfef22be17048da417fab2094aaf0a7fd785f (diff)
downloadlightdm-git-53998d514872581c061b7671430569a1e145a9c8.tar.gz
Add tests to check session listing works in greeters
-rw-r--r--tests/Makefile.am9
-rw-r--r--tests/scripts/sessions.conf41
-rw-r--r--tests/src/test-gobject-greeter.c12
-rwxr-xr-xtests/src/test-python-greeter6
-rw-r--r--tests/src/test-qt-greeter.cpp13
-rwxr-xr-xtests/test-sessions-gobject2
-rwxr-xr-xtests/test-sessions-python2
-rwxr-xr-xtests/test-sessions-qt42
-rwxr-xr-xtests/test-sessions-qt52
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