}
else
{
+ const gchar *passwd_filename;
GFile *passwd_file;
load_passwd_file (user_list, FALSE);
/* Watch for changes to user list */
+
+ passwd_filename = g_getenv ("LIGHTDM_TEST_PASSWD_FILE");
+ if (!passwd_filename)
+ passwd_filename = PASSWD_FILE;
passwd_file = g_file_new_for_path (PASSWD_FILE);
priv->passwd_monitor = g_file_monitor (passwd_file, G_FILE_MONITOR_NONE, NULL, &error);
g_object_unref (passwd_file);
// FIXME: Watch for changes
+ /* The Language field is actually a locale, strip the codeset off it to get the language */
if (priv->language)
g_free (priv->language);
- if (priv->layout)
- g_free (priv->layout);
- if (priv->session)
- g_free (priv->session);
-
- /* The Language field is actually a locale, strip the codeset off it to get the language */
priv->language = g_key_file_get_string (priv->dmrc_file, "Desktop", "Language", NULL);
if (priv->language)
{
*codeset = '\0';
}
+ if (priv->layout)
+ g_free (priv->layout);
priv->layout = g_key_file_get_string (priv->dmrc_file, "Desktop", "Layout", NULL);
+
+ if (priv->session)
+ g_free (priv->session);
priv->session = g_key_file_get_string (priv->dmrc_file, "Desktop", "Session", NULL);
}
{
LightDMUserPrivate *priv = GET_USER_PRIVATE (user);
LightDMUserListPrivate *list_priv = GET_LIST_PRIVATE (priv->user_list);
-
- /* First, find AccountObject proxy */
UserAccountObject *account = NULL;
GList *iter;
+
+ /* First, find AccountObject proxy */
for (iter = list_priv->user_account_objects; iter; iter = iter->next)
{
- if (((UserAccountObject *)iter->data)->user == user)
+ UserAccountObject *a = iter->data;
+ if (a->user == user)
{
- account = (UserAccountObject *)iter->data;
+ account = a;
break;
}
}
/* We have proxy, let's grab some properties */
if (priv->language)
g_free (priv->language);
+ priv->language = get_string_property (account->proxy, "Language");
if (priv->session)
g_free (priv->session);
- priv->language = get_string_property (account->proxy, "Language");
priv->session = get_string_property (account->proxy, "XSession");
return TRUE;
session_set_env (session, "LIGHTDM_TEST_STATUS_SOCKET", g_getenv ("LIGHTDM_TEST_STATUS_SOCKET"));
session_set_env (session, "LIGHTDM_TEST_CONFIG", g_getenv ("LIGHTDM_TEST_CONFIG"));
session_set_env (session, "LIGHTDM_TEST_HOME_DIR", g_getenv ("LIGHTDM_TEST_HOME_DIR"));
+ session_set_env (session, "LIGHTDM_TEST_PASSWD_FILE", g_getenv ("LIGHTDM_TEST_PASSWD_FILE"));
session_set_env (session, "DBUS_SYSTEM_BUS_ADDRESS", g_getenv ("DBUS_SYSTEM_BUS_ADDRESS"));
session_set_env (session, "DBUS_SESSION_BUS_ADDRESS", g_getenv ("DBUS_SESSION_BUS_ADDRESS"));
session_set_env (session, "LD_PRELOAD", g_getenv ("LD_PRELOAD"));
test-autologin-guest-logout \
test-keyboard-layout \
test-no-keyboard-layout \
+ test-language \
+ test-no-language \
+ test-language-no-accounts-service \
test-login-gobject \
test-login-gobject-manual \
test-login-gobject-manual-previous-session \
scripts/home-dir-on-authenticate.conf \
scripts/keyboard-layout.conf \
scripts/language.conf \
+ scripts/language-no-accounts-service.conf \
scripts/login.conf \
scripts/login-guest.conf \
scripts/login-guest-disabled.conf \
--- /dev/null
+#
+# Check returns correct language for a user when Accounts Service is not running
+#
+
+[test-runner-config]
+disable-accounts-service=true
+
+[LightDM]
+minimum-display-number=50
+
+[test-greeter-config]
+log-language=bob
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER :50 START
+#?XSERVER :50 INDICATE-READY
+
+# LightDM connects to X server
+#?XSERVER :50 ACCEPT-CONNECT
+
+# Greeter starts
+#?GREETER START
+#?XSERVER :50 ACCEPT-CONNECT
+#?GREETER CONNECT-XSERVER :50
+#?GREETER CONNECT-TO-DAEMON
+#?GREETER CONNECTED-TO-DAEMON
+
+# Correct layout is found
+#?GREETER GET-LANGUAGE USERNAME=bob LANGUAGE=en_AU
+
+# Cleanup
+#?*STOP-DAEMON
+# Don't know what order they will terminate
+#?(GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?(GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?RUNNER DAEMON-EXIT STATUS=0