@@ -396,28 +396,57 @@ Item {
396 LightDM.Sessions.iconSearchDirectories = [testIconDirectory]
396 LightDM.Sessions.iconSearchDirectories = [testIconDirectory]
398 // Test the login list icon is valid
398 // Test the login list icon is valid
399− var sessionChooserButton = findChild(view, "sessionChooserButton")
399+ var sessionChooserButton = findChild(view, "sessionChooserButton");
400− compare(sessionChooserButton.visible, true)
400+ compare(sessionChooserButton.visible, true);
402− var session = String(view.sessionToStart).toLowerCase()
402+ var session = String(view.sessionToStart).toLowerCase();
403− var icon = String(sessionChooserButton.icon)
403+ var icon = String(sessionChooserButton.icon);
404− compare(icon.indexOf(session) > -1, true)
404+ compare(icon.indexOf(session) > -1, true);
406 // Test the session list icons are valid
406 // Test the session list icons are valid
407− view.loginListShown = false
407+ view.loginListShown = false;
408 var sessionsList = findChild(view, "sessionsList");
408 var sessionsList = findChild(view, "sessionsList");
409 var sessionsListSelector = findChild(view, "sessionsListSelector");
409 var sessionsListSelector = findChild(view, "sessionsListSelector");
410− waitForRendering(sessionsList)
410+ waitForRendering(sessionsList);
411− compare(sessionsListSelector.expanded, true)
411+ compare(sessionsListSelector.expanded, true);
412− compare(sessionsList.visible, true)
412+ compare(sessionsList.visible, true);
414 for (var i = 0; i < LightDM.Sessions.count; i++) {
414 for (var i = 0; i < LightDM.Sessions.count; i++) {
415 var delegateName = "sessionDelegate" + String(i);
415 var delegateName = "sessionDelegate" + String(i);
416− var currentDelegate = findChild(view, delegateName)
416+ var currentDelegate = findChild(view, delegateName);
417− var session = String(currentDelegate.text).toLowerCase()
417+ var session = String(currentDelegate.text).toLowerCase();
418− var icon = String(currentDelegate.iconSource)
418+ var icon = String(currentDelegate.iconSource);
419− compare(icon.indexOf(session) > -1, true)
419+ compare(icon.indexOf(session) > -1, true);
423+ function test_choosingNewSessionChangesLoginListIcon() {
424+ // Ensure the default session is selected (Ubuntu)
425+ loader.active = false;
426+ loader.active = true;
428+ LightDM.Sessions.testScenario = "multipleSessions";
429+ var sessionChooserButton = findChild(view, "sessionChooserButton");
430+ var icon = String(sessionChooserButton.icon);
431+ compare(icon.indexOf("ubuntu") > -1, true);
433+ tap(sessionChooserButton)
434+ var sessionsListSelector = findChild(view, "sessionsListSelector");
435+ waitForRendering(sessionsListSelector);
436+ for(var i = 0; i < LightDM.Sessions.count; i++) {
437+ var delegateName = "sessionDelegate" + String(i);
438+ var currentDelegate = findChild(view, delegateName);
439+ if (currentDelegate.text === "GNOME") {
440+ tap(currentDelegate);
441+ var sessionChooserButton = findChild(view, "sessionChooserButton");
442+ var icon = String(sessionChooserButton.icon);
443+ waitForRendering(sessionChooserButton);
448+ compare(icon.indexOf("gnome") > -1, true,
449+ "Expected icon to contain gnome but it was " + icon);
423 function test_noSessionsDoesntBreakView() {
452 function test_noSessionsDoesntBreakView() {