Skip to content

Commit 53998d5

Browse files
committed
Add tests to check session listing works in greeters
1 parent a01cfef commit 53998d5

9 files changed

+87
-2
lines changed

tests/Makefile.am

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ TESTS = \
7272
test-xauthority \
7373
test-corrupt-xauthority \
7474
test-system-xauthority \
75+
test-sessions-gobject \
7576
test-user-renamed \
7677
test-user-renamed-invalid \
7778
test-user-name \
@@ -282,6 +283,7 @@ TESTS = \
282283

283284
TESTS += \
284285
test-cancel-authentication-python \
286+
test-sessions-python \
285287
test-users-python \
286288
test-login-python \
287289
test-login-manual-python \
@@ -345,6 +347,7 @@ TESTS += \
345347
test-login-guest-fail-setup-script-qt4 \
346348
test-login-guest-logout-qt4 \
347349
test-login-remote-session-qt4 \
350+
test-sessions-qt4 \
348351
test-users-qt4 \
349352
test-power-qt4 \
350353
test-power-no-console-kit-qt4 \
@@ -382,6 +385,7 @@ TESTS += \
382385
test-login-guest-fail-setup-script-qt5 \
383386
test-login-guest-logout-qt5 \
384387
test-login-remote-session-qt5 \
388+
test-sessions-qt5 \
385389
test-users-qt5 \
386390
test-power-qt5 \
387391
test-power-no-console-kit-qt5 \
@@ -562,6 +566,8 @@ EXTRA_DIST = \
562566
scripts/script-hook-greeter-setup-missing.conf \
563567
scripts/script-hook-session-setup-fail.conf \
564568
scripts/script-hook-session-setup-missing.conf \
569+
scripts/seatdefaults-still-supported.conf \
570+
scripts/sessions.conf \
565571
scripts/session-greeter.conf \
566572
scripts/session-greeter-allow-guest.conf \
567573
scripts/session-greeter-autologin.conf \
@@ -680,5 +686,4 @@ EXTRA_DIST = \
680686
scripts/xremote-login.conf \
681687
scripts/xserver-config.conf \
682688
scripts/xserver-fail-start.conf \
683-
scripts/xserver-no-share.conf \
684-
scripts/seatdefaults-still-supported.conf
689+
scripts/xserver-no-share.conf

tests/scripts/sessions.conf

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#
2+
# Check can list available sessions
3+
#
4+
5+
[Seat:*]
6+
user-session=default
7+
8+
#?*START-DAEMON
9+
#?RUNNER DAEMON-START
10+
11+
# X server starts
12+
#?XSERVER-0 START VT=7 SEAT=seat0
13+
14+
# Daemon connects when X server is ready
15+
#?*XSERVER-0 INDICATE-READY
16+
#?XSERVER-0 INDICATE-READY
17+
#?XSERVER-0 ACCEPT-CONNECT
18+
19+
# Greeter starts
20+
#?GREETER-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter
21+
#?LOGIN1 ACTIVATE-SESSION SESSION=c0
22+
#?XSERVER-0 ACCEPT-CONNECT
23+
#?GREETER-X-0 CONNECT-XSERVER
24+
#?GREETER-X-0 CONNECT-TO-DAEMON
25+
#?GREETER-X-0 CONNECTED-TO-DAEMON
26+
27+
# List sessions
28+
#?*GREETER-X-0 LOG-SESSIONS
29+
#?GREETER-X-0 LOG-SESSION KEY=alternative
30+
#?GREETER-X-0 LOG-SESSION KEY=default
31+
#?GREETER-X-0 LOG-SESSION KEY=mir
32+
#?GREETER-X-0 LOG-SESSION KEY=named-legacy
33+
#?GREETER-X-0 LOG-SESSION KEY=named
34+
#?GREETER-X-0 LOG-SESSION KEY=wayland
35+
#?GREETER-X-0 LOG-SESSION KEY=greeter
36+
37+
# Cleanup
38+
#?*STOP-DAEMON
39+
#?GREETER-X-0 TERMINATE SIGNAL=15
40+
#?XSERVER-0 TERMINATE SIGNAL=15
41+
#?RUNNER DAEMON-EXIT STATUS=0

tests/src/test-gobject-greeter.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,18 @@ request_cb (const gchar *name, GHashTable *params)
357357
}
358358
}
359359

360+
else if (strcmp (name, "LOG-SESSIONS") == 0)
361+
{
362+
GList *sessions, *link;
363+
364+
sessions = lightdm_get_sessions ();
365+
for (link = sessions; link; link = link->next)
366+
{
367+
LightDMSession *session = link->data;
368+
status_notify ("%s LOG-SESSION KEY=%s", greeter_id, lightdm_session_get_key (session));
369+
}
370+
}
371+
360372
else if (strcmp (name, "GET-CAN-SUSPEND") == 0)
361373
{
362374
gboolean can_suspend = lightdm_get_can_suspend ();

tests/src/test-python-greeter

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,12 @@ def request_cb (channel, condition):
104104
for user in users:
105105
status_notify ('%s LOG-USER USERNAME=%s' % (greeter_id, user.get_name ()))
106106

107+
r = '%s LOG-SESSIONS' % greeter_id
108+
if request == r:
109+
sessions = LightDM.get_sessions ();
110+
for session in sessions:
111+
status_notify ('%s LOG-SESSION KEY=%s' % (greeter_id, session.get_key ()))
112+
107113
r = '%s LOG-LAYOUT' % greeter_id
108114
if request == r:
109115
layout = LightDM.get_layout ().get_name ()

tests/src/test-qt-greeter.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <QLightDM/Greeter>
88
#include <QLightDM/Power>
99
#include <QLightDM/UsersModel>
10+
#include <QLightDM/SessionsModel>
1011
#include <QtCore/QSettings>
1112
#include <QtCore/QDebug>
1213
#include <QtCore/QCoreApplication>
@@ -20,6 +21,7 @@ static QSettings *config = NULL;
2021
static QLightDM::PowerInterface *power = NULL;
2122
static TestGreeter *greeter = NULL;
2223
static QLightDM::UsersModel *users_model = NULL;
24+
static QLightDM::SessionsModel *sessions_model = NULL;
2325

2426
TestGreeter::TestGreeter ()
2527
{
@@ -193,6 +195,15 @@ request_cb (const gchar *name, GHashTable *params)
193195
}
194196
}
195197

198+
else if (strcmp (name, "LOG-SESSIONS") == 0)
199+
{
200+
for (int i = 0; i < sessions_model->rowCount (QModelIndex ()); i++)
201+
{
202+
QString key = sessions_model->data (sessions_model->index (i, 0), QLightDM::SessionsModel::KeyRole).toString ();
203+
status_notify ("%s LOG-SESSION KEY=%s", greeter_id, qPrintable (key));
204+
}
205+
}
206+
196207
else if (strcmp (name, "GET-CAN-SUSPEND") == 0)
197208
{
198209
gboolean can_suspend = power->canSuspend ();
@@ -322,6 +333,8 @@ main(int argc, char *argv[])
322333
QObject::connect (users_model, SIGNAL(rowsAboutToBeRemoved(const QModelIndex&, int, int)), greeter, SLOT(userRowsRemoved(const QModelIndex&, int, int)));
323334
}
324335

336+
sessions_model = new QLightDM::SessionsModel();
337+
325338
status_notify ("%s CONNECT-TO-DAEMON", greeter_id);
326339
if (!greeter->connectSync())
327340
{

tests/test-sessions-gobject

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
./src/dbus-env ./src/test-runner sessions test-gobject-greeter

tests/test-sessions-python

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
./src/dbus-env ./src/test-runner sessions test-python-greeter

tests/test-sessions-qt4

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
./src/dbus-env ./src/test-runner sessions test-qt4-greeter

tests/test-sessions-qt5

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
./src/dbus-env ./src/test-runner sessions test-qt5-greeter

0 commit comments

Comments
 (0)