Skip to content

Commit 0eb30ec

Browse files
committed
Add regression tests for getting the user language and layout
1 parent 17fb182 commit 0eb30ec

13 files changed

+350
-79
lines changed

NEWS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
Overview of changes in lightdm 1.1.2
2+
3+
* Add regression tests for getting the user language and layout
4+
15
Overview of changes in lightdm 1.1.1
26

37
* Add a --disable-tests option

liblightdm-gobject/user.c

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1173,6 +1173,12 @@ get_string_property (GDBusProxy *proxy, const gchar *property)
11731173
}
11741174

11751175
g_variant_get (answer, "s", &rv);
1176+
1177+
if (strcmp (rv, "") == 0)
1178+
{
1179+
g_free (rv);
1180+
rv = NULL;
1181+
}
11761182

11771183
g_variant_unref (answer);
11781184
return rv;
@@ -1295,16 +1301,6 @@ lightdm_user_get_logged_in (LightDMUser *user)
12951301
static void
12961302
lightdm_user_init (LightDMUser *user)
12971303
{
1298-
LightDMUserPrivate *priv = GET_USER_PRIVATE (user);
1299-
1300-
priv->name = g_strdup ("");
1301-
priv->real_name = g_strdup ("");
1302-
priv->home_directory = g_strdup ("");
1303-
priv->image = g_strdup ("");
1304-
priv->background = g_strdup ("");
1305-
priv->language = g_strdup ("");
1306-
priv->layout = g_strdup ("");
1307-
priv->session = g_strdup ("");
13081304
}
13091305

13101306
static void

tests/Makefile.am

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ TESTS = \
1717
test-autologin-guest \
1818
test-autologin-guest-fail-setup-script \
1919
test-autologin-guest-logout \
20+
test-keyboard-layout \
21+
test-no-keyboard-layout \
2022
test-login-gobject \
2123
test-login-gobject-manual \
2224
test-login-gobject-manual-previous-session \
@@ -100,6 +102,8 @@ EXTRA_DIST = \
100102
scripts/greeter-xserver-crash.conf \
101103
scripts/headless.conf \
102104
scripts/home-dir-on-authenticate.conf \
105+
scripts/keyboard-layout.conf \
106+
scripts/language.conf \
103107
scripts/login.conf \
104108
scripts/login-guest.conf \
105109
scripts/login-guest-disabled.conf \
@@ -120,6 +124,8 @@ EXTRA_DIST = \
120124
scripts/no-accounts-service.conf \
121125
scripts/no-config.conf \
122126
scripts/no-console-kit.conf \
127+
scripts/no-keyboard-layout.conf \
128+
scripts/no-language.conf \
123129
scripts/plymouth-active-vt.conf \
124130
scripts/plymouth-inactive-vt.conf \
125131
scripts/plymouth-no-seat.conf \

tests/scripts/keyboard-layout.conf

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#
2+
# Check returns correct layout for a user
3+
#
4+
5+
[LightDM]
6+
minimum-display-number=50
7+
8+
[test-greeter-config]
9+
log-keyboard-layout=bob
10+
11+
#?RUNNER DAEMON-START
12+
13+
# X server starts
14+
#?XSERVER :50 START
15+
#?XSERVER :50 INDICATE-READY
16+
17+
# LightDM connects to X server
18+
#?XSERVER :50 ACCEPT-CONNECT
19+
20+
# Greeter starts
21+
#?GREETER START
22+
#?XSERVER :50 ACCEPT-CONNECT
23+
#?GREETER CONNECT-XSERVER :50
24+
#?GREETER CONNECT-TO-DAEMON
25+
#?GREETER CONNECTED-TO-DAEMON
26+
27+
# Correct layout is found
28+
#?GREETER GET-LAYOUT USERNAME=bob LAYOUT=us
29+
30+
# Cleanup
31+
#?*STOP-DAEMON
32+
# Don't know what order they will terminate
33+
#?(GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
34+
#?(GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
35+
#?RUNNER DAEMON-EXIT STATUS=0

tests/scripts/language.conf

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#
2+
# Check returns correct language for a user
3+
#
4+
5+
[LightDM]
6+
minimum-display-number=50
7+
8+
[test-greeter-config]
9+
log-language=bob
10+
11+
#?RUNNER DAEMON-START
12+
13+
# X server starts
14+
#?XSERVER :50 START
15+
#?XSERVER :50 INDICATE-READY
16+
17+
# LightDM connects to X server
18+
#?XSERVER :50 ACCEPT-CONNECT
19+
20+
# Greeter starts
21+
#?GREETER START
22+
#?XSERVER :50 ACCEPT-CONNECT
23+
#?GREETER CONNECT-XSERVER :50
24+
#?GREETER CONNECT-TO-DAEMON
25+
#?GREETER CONNECTED-TO-DAEMON
26+
27+
# Correct layout is found
28+
#?GREETER GET-LANGUAGE USERNAME=bob LANGUAGE=en_AU
29+
30+
# Cleanup
31+
#?*STOP-DAEMON
32+
# Don't know what order they will terminate
33+
#?(GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
34+
#?(GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
35+
#?RUNNER DAEMON-EXIT STATUS=0

tests/scripts/no-keyboard-layout.conf

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#
2+
# Check handles user that has no keyboard layout
3+
#
4+
5+
[LightDM]
6+
minimum-display-number=50
7+
8+
[test-greeter-config]
9+
log-keyboard-layout=alice
10+
11+
#?RUNNER DAEMON-START
12+
13+
# X server starts
14+
#?XSERVER :50 START
15+
#?XSERVER :50 INDICATE-READY
16+
17+
# LightDM connects to X server
18+
#?XSERVER :50 ACCEPT-CONNECT
19+
20+
# Greeter starts
21+
#?GREETER START
22+
#?XSERVER :50 ACCEPT-CONNECT
23+
#?GREETER CONNECT-XSERVER :50
24+
#?GREETER CONNECT-TO-DAEMON
25+
#?GREETER CONNECTED-TO-DAEMON
26+
27+
# Correct layout is found
28+
#?GREETER GET-LAYOUT USERNAME=alice LAYOUT=
29+
30+
# Cleanup
31+
#?*STOP-DAEMON
32+
# Don't know what order they will terminate
33+
#?(GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
34+
#?(GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
35+
#?RUNNER DAEMON-EXIT STATUS=0

tests/scripts/no-language.conf

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#
2+
# Check handles user that has no language set
3+
#
4+
5+
[LightDM]
6+
minimum-display-number=50
7+
8+
[test-greeter-config]
9+
log-language=alice
10+
11+
#?RUNNER DAEMON-START
12+
13+
# X server starts
14+
#?XSERVER :50 START
15+
#?XSERVER :50 INDICATE-READY
16+
17+
# LightDM connects to X server
18+
#?XSERVER :50 ACCEPT-CONNECT
19+
20+
# Greeter starts
21+
#?GREETER START
22+
#?XSERVER :50 ACCEPT-CONNECT
23+
#?GREETER CONNECT-XSERVER :50
24+
#?GREETER CONNECT-TO-DAEMON
25+
#?GREETER CONNECTED-TO-DAEMON
26+
27+
# Correct layout is found
28+
#?GREETER GET-LANGUAGE USERNAME=alice LANGUAGE=
29+
30+
# Cleanup
31+
#?*STOP-DAEMON
32+
# Don't know what order they will terminate
33+
#?(GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
34+
#?(GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
35+
#?RUNNER DAEMON-EXIT STATUS=0

tests/src/test-gobject-greeter.c

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#include <stdio.h>
33
#include <string.h>
44
#include <xcb/xcb.h>
5-
#include <lightdm/greeter.h>
5+
#include <lightdm.h>
66

77
#include "status.h"
88

@@ -69,6 +69,7 @@ main (int argc, char **argv)
6969
{
7070
GMainLoop *main_loop;
7171
LightDMGreeter *greeter;
72+
gchar *layout_username, *language_username;
7273

7374
signal (SIGINT, signal_cb);
7475
signal (SIGTERM, signal_cb);
@@ -113,6 +114,30 @@ main (int argc, char **argv)
113114

114115
notify_status ("GREETER CONNECTED-TO-DAEMON");
115116

117+
layout_username = g_key_file_get_string (config, "test-greeter-config", "log-keyboard-layout", NULL);
118+
if (layout_username)
119+
{
120+
LightDMUser *user;
121+
const gchar *layout;
122+
123+
user = lightdm_user_list_get_user_by_name (lightdm_user_list_get_instance (), layout_username);
124+
layout = lightdm_user_get_layout (user);
125+
126+
notify_status ("GREETER GET-LAYOUT USERNAME=%s LAYOUT=%s", layout_username, layout ? layout : "");
127+
}
128+
129+
language_username = g_key_file_get_string (config, "test-greeter-config", "log-language", NULL);
130+
if (language_username)
131+
{
132+
LightDMUser *user;
133+
const gchar *language;
134+
135+
user = lightdm_user_list_get_user_by_name (lightdm_user_list_get_instance (), language_username);
136+
language = lightdm_user_get_language (user);
137+
138+
notify_status ("GREETER GET-LANGUAGE USERNAME=%s LANGUAGE=%s", language_username, language ? language : "");
139+
}
140+
116141
if (g_key_file_get_boolean (config, "test-greeter-config", "crash-xserver", NULL))
117142
{
118143
gchar *crash_lock;

0 commit comments

Comments
 (0)