Language Testing Plan/ULS Test Scenarios

Feature: ULS cog behaviour on the side-bar for anonymous users [HIGH]
Implementation:

Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki.

Background: Base language at the start of the test is English

Background: The tests need to be run as an anonymous user

URL to use: http://en.wikipedia.beta.wmflabs.org/wiki/Main_Page

Scenario: The cog icon is visible in the sidebar on an article without interlanguage links Given I am on a wiki content page without interlanguage links When I scroll to the area where interlanguage links are supposed to be	Then I should see a cog icon near the 'Languages' header

Scenario: The cog icon is visible in the sidebar on an article with interlanguage links Given I am on a wiki content page with interlanguage links When I scroll to the area where interlanguage links are Then I should see a cog icon near the 'Languages' header

Scenario: The cog icon is visible in the sidebar on the talk page of an article without interlanguage links Given I am on a talk page of an article without interlanguage links When I scroll to the area where interlanguage links are on articles Then I should see a cog icon near the 'Languages' header

Scenario: The cog icon is visible in the sidebar on the talk page of an article with interlanguage links Given I am on a talk page of an article with interlanguage links When I scroll to the area where interlanguage links are on articles Then I should see a cog icon near the 'Languages' header

Scenario: Clicking the cog icon opens the Language Settings panel Given I am on a wiki page When I click on the cog icon near the interlanguage links on the side-bar Then the "Language Settings" panel appears

Scenario: Clicking the cog icon when the Language settings panel is open closes it bug#47965 Given I am on a wiki page with the Language settings panel open When I click on the cog icon near the interlanguage links Then the "Language settings" panel disappears

Scenario: Clicking the cancel button in the Language settings panel closes it	Given I am on a wiki page with the Language settings panel open When I click on the "Cancel" button in the panel Then the "Language settings" panel disappears

Scenario: Clicking the cog after closing the Language settings panel using the Cancel button opens the panel Given I closed the Language settings panel using the Cancel button When I click on the cog icon Then the "Language settings" panel appears

Scenario: Clicking the X button in the Language settings panel closes it	Given I am on a wiki page with the Language settings panel open When I click on the X close button in the panel Then the "Language settings" panel disappears

Scenario: Clicking the cog after closing the Language settings panel using the X button opens the panel Given I closed the Language settings panel using the X close button When I click on the cog icon Then the "Language settings" panel appears

Feature: ULS cog behaviour on the side-bar for logged in users [HIGHEST]
Implementation:

Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki.

Background: Base language at the start of the test is English

Background: The tests needs to run with a logged-in user

URL to use: http://en.wikipedia.beta.wmflabs.org/wiki/Main_Page

Scenario: The cog icon is visible in the sidebar on an article without interlanguage links Given I am on a wiki content page without interlanguage links When I scroll to the area where interlanguage links are supposed to be	Then I should see a cog icon near the 'Languages' header

Scenario: The cog icon is visible in the sidebar on an article with interlanguage links Given I am on a wiki content page with interlanguage links When I scroll to the area where interlanguage links are Then I should see a cog icon near the 'Languages' header

Scenario: The cog icon is visible in the sidebar on the talk page of an article without interlanguage links Given I am on a talk page of an article without interlanguage links When I scroll to the area where interlanguage links are on articles Then I should see a cog icon near the 'Languages' header

Scenario: The cog icon is visible in the sidebar on the talk page of an article with interlanguage links Given I am on a talk page of an article with interlanguage links When I scroll to the area where interlanguage links are on articles Then I should see a cog icon near the 'Languages' header

Scenario: Clicking the cog icon opens the Language Settings panel Given I am on a wiki page When I click on the cog icon near the interlanguage links on the side-bar Then the "Language Settings" panel appears

Scenario: Clicking the cog icon when the Language settings panel is open closes it bug#47965 Given I am on a wiki page with the Language settings panel open When I click on the cog icon near the interlanguage links Then the "Language settings" panel disappears

Scenario: Clicking the cancel button in the Language settings panel closes it	Given I am on a wiki page with the Language settings panel open When I click on the "Cancel" button in the panel Then the "Language settings" panel disappears

Scenario: Clicking the cog after closing the Language settings panel using the Cancel button opens the panel Given I closed the Language settings panel using the Cancel button When I click on the cog icon Then the "Language settings" panel appears

Scenario: Clicking the X button in the Language settings panel closes it	Given I am on a wiki page with the Language settings panel open When I click on the X close button in the panel Then the "Language settings" panel disappears

Scenario: Clicking the cog after closing the Language settings panel using the X button opens the panel Given I closed the Language settings panel using the X close button When I click on the cog icon Then the "Language settings" panel appears

Scenario: Clicking the 'Apply Settings' after making a change button in the Language settings panel closes it	Given I am on a wiki page with the Language settings panel open When I click on the apply settings button in the panel Then the "Language settings" panel disappears

Scenario: Clicking the cog after closing the Language settings panel using the Apply Settings' button opens the panel Given I closed the Language settings panel using the apply settings button When I click on the cog icon Then the "Language settings" panel appears

Feature: ULS cog tooltip shows "Language settings"[HIGHEST]
Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki.

Background: Base language at the start of the test is English

URL to use: to-be-decided

Scenario: The cog icon initial tooltip is "Language settings" Given I am on a wiki content page with interlanguage links When I move the cursor over the cog icon Then I should see a tooltip with the "Language settings" text.

Feature: ULS cog tooltip displays language changes for logged-in users [HIGHEST]
Scenario: The cog icon tooltip shows the name of the previous language when a new language is selected

Feature: ULS cog tooltip allows to revert language changes for logged-in users [HIGHEST]
Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki. Background: Base language at the start of the test is English Background: The tests needs to run with a logged-in user Background: setlang=fr is used URL to use: to-be-decided

Scenario: The cog icon tooltip announces the possibility to revert to the previous language Given I am in a page with the user language in French When the page is loaded Then I should see a tooltip appear that includes a link with the "English" label.

Scenario: The cog icon tooltip announces the possibility to revert to the previous language on hover Given I am in a page with the user language in French When I move the cursor over the cog icon Then I should see a tooltip that includes a link with the "English" label.

Scenario: The cog icon tooltip allows to revert to the previous language Given I am in a page with the user language in French When I move the cursor over the cog icon And I click on the "English" link Then I get the user interface in English.

Feature: ULS cog behaviour on the IME menu for logged-in users [HIGHEST]
Scenario: Clicking the cog icon for 'More Settings' opens the Language Settings panel

Scenario: Clicking the cancel button in the Language settings panel closes it

Scenario: Clicking the X button in the Language settings panel closes it

Scenario: Clicking the Apply Settings button after making a change in the Language settings panel closes it

Feature: ULS cog behaviour on the IME menu for anonymous users [HIGH]
Scenario: Clicking the cog icon for 'More Settings' opens the Language Settings panel

Scenario: Clicking the cancel button in the Language settings panel closes it

Scenario: Clicking the X button in the Language settings panel closes it

Scenario: Clicking the Apply Settings button after making a change in the Language settings panel closes it

Feature: ULS cog tooltip does not allow to revert language changes for anonymous users[HIGHEST]
Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki. Background: Base language at the start of the test is English Background: The tests needs to run with an annonymous user Background: setlang=fr is used URL to use: to-be-decided

Scenario: The cog icon initial tooltip is "Language settings" for annonymous users Given I am on a wiki content page with interlanguage links When I move the cursor over the cog icon Then I should see a tooltip with the "Language settings" text.

Feature: ULS Accept-Language (complete)
Implementation: https://github.com/wikimedia/qa-browsertests/blob/master/features/accept_language.feature

Scenario: Accept-Language German Given that my browser's accept language is "de" When I visit a random page on sandbox.translatewiki.net Then the text displayed for div with id n-mainpage-description is "Hauptseite" Scenario: Accept-Language Serbian Given that my browser's accept language is "sr" When I visit a random page on sandbox.translatewiki.net Then the text displayed for div with id n-mainpage-description is "Главна страна" Scenario: Accept-Language Serbian Cyrillic Given that my browser's accept language is "sr-ec" When I visit a random page on sandbox.translatewiki.net Then the text displayed for div with id n-mainpage-description is "Главна страна" Scenario: Accept-Language Serbian Latin Given that my browser's accept language is "sr-el" When I visit a random page on sandbox.translatewiki.net Then the text displayed for div with id n-mainpage-description is "Glavna strana"

Feature: ULS User Language Selector (complete)
Implementation: https://github.com/wikimedia/qa-browsertests/blob/master/features/universal_language_selector.feature

Scenario: Open Language selector Given I am at random page with Accept-Language "en" When I click "English" Then I should see the Language selector

Feature: Multiple changes can be applied at the same time
Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki. Background: Base language at the start of the test is English

Scenario: Change display language, and then input method. Given I clicked the cog icon to open the 'Language Settings' panel And I selected a different display language And I selected the "input method" section And I selected a different input language And I select a different input mehtod When I click on "Apply settings" Then I should see the display language to change And the selected input method to be enabled.

Scenario: Change input method and then display language. Given I clicked the cog icon to open the 'Language Settings' panel And I selected the "input method" section And I selected a different input language And I select a different input mehtod And I selected the "Display" section And I selected a different display language When I click on "Apply settings" Then I should see the display language to change And the selected input method to be enabled.

Feature: Display settings on the Language Settings panel menu for anonymous users [HIGHEST]
Implementation: Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki.

Background: Base language at the start of the test is English

Background: The tests need to be run as an anonymous user

URL to use: to-be-decided Scenario: Language settings panel displays "Display" and "Input" options Given I clicked the cog icon to open the 'Language Settings' panel When the panel opens Then I see the buttons "Display" and "Input" buttons on the left side

Scenario: "Display" option is selected by default in a new Language settings panel Given I clicked the cog icon to open the 'Language Settings' panel When the panel opens Then I see the button "Display" selected at the start

Scenario: "Language" and "Fonts" are shown within the Display" option	Given I clicked the cog icon to open the 'Language Settings' panel	When the panel opens            And the 'Display" option is selected at the start Then I see the "Language" and "Fonts" buttons on the right hand side

Scenario: "Language" option in selected by default within the Display" option	Given I clicked the cog icon to open the 'Language Settings' panel	When the panel opens            And the 'Display" option is selected at the start Then I see the "Language" button selected by default

Scenario: "Language" option does not allow changes by anonymous users Given I clicked the cog icon to open the 'Language Settings' panel When the 'Display' option is shown Then I see a 'Log in' link inside the panel

Scenario: annonymous users are informed of the current display language Given I clicked the cog icon to open the 'Language Settings' panel When the panel is opened Then I see that the current display language is English

Scenario: Annonymous users can log-in from display settings panel Given I clicked the cog icon to open the 'Language Settings' panel When I click on the log-in link Then I see the log-in page

Feature: Display settings on the Language Settings panel menu for logged-in users [HIGHEST]
Implementation:

Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki.

Background: Base language at the start of the test is English

URL to use: to-be-decided Scenario: Language settings panel displays "Display" and "Input" options Given I clicked the cog icon to open the 'Language Settings' panel When the panel opens Then I see the buttons "Display" and "Input" buttons on the left side

Scenario: "Display" option is selected by default in a new Language settings panel Given I clicked the cog icon to open the 'Language Settings' panel When the panel opens Then I see the button "Display" selected at the start

Scenario: Selected option can be changed in the Language settings panel Given I clicked the cog icon to open the 'Language Settings' panel with 'Display' settings selected by default When I click on the 'Input' option Then I see the "Display" options changed to the "Input" options

Scenario:Language settings panel can be closed after changing the selected option and closing Given I clicked the cog icon to open the 'Language Settings' panel with 'Display' settings selected by default And I have clicked the 'Input" option to select it       When I click on the close button        Then the "Language settings" panel disappears

Scenario:Language settings panel can be closed after changing the selected option and applying the setting Given I clicked the cog icon to open the 'Language Settings' panel with 'Display' settings selected by default And I have clicked the 'Input" option to select it       When I click on the 'apply settings' button        Then the "Language settings" panel disappears

Scenario:Language settings panel can be closed after changing the selected option and cancelling Given I clicked the cog icon to open the 'Language Settings' panel with 'Display' settings selected by default And I have clicked the 'Input" option to select it       When I click on the 'cancel' button        Then the "Language settings" panel disappears

Scenario: Selected option should be persistant on reopening the Language settings panel after closing Given I clicked the cog icon to open the 'Language Settings' panel with 'Display' settings selected by default And I have clicked the 'Input" option to select it            And I have closed the panel using the X button to close it        When I click on the cog to reopen the panel        Then I see the "Input" option selected by default

Scenario: Selected option should be persistant on reopening the Language settings panel after applying the setting Given I clicked the cog icon to open the 'Language Settings' panel with 'Display' settings selected by default And I have clicked the 'Input" option to select it            And I have closed the panel using the 'apply setting' button to close it        When I click on the cog to reopen the panel        Then I see the "Input" option selected by default

Scenario: Selected option should be persistant on reopening the Language settings panel after cancelling Given I clicked the cog icon to open the 'Language Settings' panel with 'Display' settings selected by default And I have clicked the 'Input" option to select it            And I have closed the panel using the 'cancel' button to close it        When I click on the cog to reopen the panel        Then I see the "Input" option selected by default

Scenario: "Language" and "Fonts" are shown within the Display" option       Given I clicked the cog icon to open the 'Language Settings' panel        When the panel opens             And the 'Display" option is selected at the start Then I see the "Language" and "Fonts" buttons on the right hand side

Scenario: "Language" option in selected by default within the Display" option       Given I clicked the cog icon to open the 'Language Settings' panel        When the panel opens             And the 'Display" option is selected at the start Then I see the "Language" button selected by default

Feature: Live preview of dislay language changes
Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki. Background: Base language at the start of the test is English

Scenario: Display language change is previewed inmediately Given I clicked the cog icon to open the 'Language Settings' panel When I select a language different than "English" for display language Then I should see the text in the language panel in the selected language

Scenario: Live preview of dislay language changes can be confirmed Given I clicked the cog icon to open the 'Language Settings' panel And I select a language different than "English" for display language When I click on "Apply settings" Then the mediawiki menu items on the interface of the wiki page should change to the new language Scenario: Live preview of dislay language changes can be reverted on cancel Given I clicked the cog icon to open the 'Language Settings' panel And I select a language different than "English" for display language When I click on "Cancel" Then the mediawiki menu items on the interface of the wiki page should be in English

Scenario: Live preview of dislay language changes can be reverted on closing the dialog with the X button Given I clicked the cog icon to open the 'Language Settings' panel And I select a language different than "English" for display language When I click on the "X" icon to close the panel Then the mediawiki menu items on the interface of the wiki page should be in English

Scenario: Live preview of dislay language changes can be reverted on closing the dialog on cancel from a different section Given I clicked the cog icon to open the 'Language Settings' panel And I select a language different than "English" for display language And I access the Input settings section When I click on "Cancel" Then the mediawiki menu items on the interface of the wiki page should be in English

Feature: Language Selection from the Display settings on the Language Settings panel menu for logged-in users[HIGHEST]
Scenario: Logged in user can see the option to change 'Display Language' Given I am logged in to the wiki And I am on the Display settings in the Language Settings panel When the panel opens Then I see 4 buttons, 3 with names of language and 1 with ellipsis

Scenario: Logged in user can see the a highlighted button for the active language Given I am logged in to the wiki And I am on the Display settings in the Language Settings panel And the selected language for the interface is English When the panel with 4 buttons opens Then all the button for English should be highlighted in a different colour

Scenario: Logged in user can see the active buttons change 'Display Language' Given I am logged in to the wiki And I am on the Display settings in the Language Settings panel And the selected language for the interface is English When the panel with 4 buttons opens Then all the 4 buttons should be in an active state

Scenario: Display language change is previewed immediately for logged-in users Given I am logged in to the wiki And I am on the Display settings in the Language Settings panel And the selected language for the interface is English When I click on the second button to select another language Then the language on the menu items inside the panel should change to the new language

Scenario: Logged in user can see the live preview of display language reverted if not applied before exiting using the cancel button Given I am logged in to the wiki And I am on the Display settings in the Language Settings panel And the selected language for the interface is English And I click on the second button to select another language to preview on the panel menu When I click on 'cancel' button to exit the panel And press the cog to reopen the panel Then the menu items are not displayed in the previewed language

Scenario: Logged in user can see the live preview of display language reverted if not applied before exiting using the close button Given I am logged in to the wiki And I am on the Display settings in the Language Settings panel And the selected language for the interface is English And I click on the second button to select another language to preview on the panel menu When I click on 'close' button to exit the panel And press the cog to reopen the panel Then the menu items are not displayed in the previewed language

Scenario: Logged in user can see ULS language selection dialog Given I am logged in to the wiki And I am on the Display settings in the Language Settings panel And the selected language for the interface is English When I click on the fourth button with the ellipsis Then I should see the ULS language selection dialog

Feature: Users can access more display languages than the ones in the initial list
Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki. Background: Base language at the start of the test is English Background: The tests needs to run with a logged-in user

Scenario: Users can access the "more languages" list Given I clicked the cog icon to open the 'Language Settings' panel When I click the "..." button Then I see a list of languages

Scenario: Users can go back from the "more languages" list Given I clicked the cog icon to open the 'Language Settings' panel And I click the "..." button When I see a list of languages Then I see a link to go back to the Display settings Scenario: Users can select a language from the "more languages" list Given I clicked the cog icon to open the 'Language Settings' panel And I click the "..." button When I see a list of languages Then I see a link to go back to the Display settings

Scenario: Users can search for a language from the "more languages" list Given I clicked the cog icon to open the 'Language Settings' panel And I click the "..." button When I search fro "spanish" Then I can select "Español" by searching

Feature: Last display language selection is remembered
Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki. Background: Base language at the start of the test is English Scenario: Live preview of dislay language changes can be confirmed Given I clicked the cog icon to open the 'Language Settings' panel And I select a language different than "English" for display language And I click on "Apply settings" When I clicked the cog icon to open the 'Language Settings' panel Then "English" is in the list of languages.

Feature: Logged-in user can change the font used for the menu [HIGHEST]
Scenario: "Fonts" option allows the font to the selected for English Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is English When I click on the 'Fonts' button in the display settings Then I see a dropdown button to select the font

Scenario: When content and display languages are the same, only one font option is provided

Scenario: "Fonts" selection dropdown button should be active Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is English When I click on the 'Fonts' button Then I should see a dropdown button in an active state

Scenario: "Fonts" selection dropdown button should display options to select Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is English And I have selected the 'Fonts' option When I click on the dropdown button to select a font Then I should see a list of fonts that I can select from

Scenario: If a language has no alternative fonts, it is not displayed.

Scenario: Font selected from the "Fonts" selection dropdown button should be used Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is English And I have selected the 'Fonts' option When I click on the dropdown button and select a font Then I should see selected font being immediately used in the page for English text

Scenario: "Fonts" option allows the font to be selected for English and the active language

Scenario: Appropriate active language name should be displayed next to the second dropdown box

Scenario: "Fonts" selection dropdown button should be active for 2 languages

Scenario: "Fonts" selection dropdown button for English should display options to select

Scenario: "Fonts" selection dropdown button for non-English should display options to select

Scenario: Download font checkbox should be visible Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is English When I click on the 'Fonts' button Then I should see a checkbox to 'Download font'

Scenario: Download font checkbox should be active Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is English When I click on the 'Fonts' button Then I should see the checkbox to 'Download font' in is an active state

Scenario: Download font checkbox should be selected Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is English When I click on the 'Fonts' button Then I should see that checkbox to 'Download font' is in a selected state

Scenario: Font selection dropdown will be hidden Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is English And I have selected the 'Fonts' option When I click on the 'Download font' checkbox button to uncheck it       Then I should see that dropdown button to select a font is hidden

Scenario: Font selection dropdown will be shown Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is English And I have selected the 'Fonts' option And the checkbox button to Download font is not selected When I click on the 'Download font' checkbox button to check it       Then I should see that a dropdown button to select a font is displayed

<! -- Font Selection and download for English+ 1 more language, before applying settings

Scenario: "Fonts" option allows the font to be selected for English and the active language Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is English And I have clicked also clicked on another button with a different language name When I click on the 'Fonts' button in the display settings Then I see two dropdown buttons to select the fonts for English and the other language Scenario: Appropriate active language name should be displayed next to the second dropdown box Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is English When I click on the 'Fonts' button in the display settings Then I see that the appropriate language name should be displayed next to the second dropdown buttons to select the fonts for the other language

Scenario: "Fonts" selection dropdown button should be active Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is English When I click on the 'Fonts' button Then I should see two dropdown button for font selecting in an active state

Scenario: "Fonts" selection dropdown button for English should display options to select Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is English And I have selected the 'Fonts' option When I click on the dropdown button to select a font for English Then I should see a list of fonts that I can select from

Scenario: "Fonts" selection dropdown button for non-English should display options to select Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is English And I have selected the 'Fonts' option When I click on the dropdown button to select a font for the other language that is not English Then I should see a list of fonts that I can select from Scenario: Download font checkbox should be visible Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Fonts' button Then I should see a checkbox to 'Download font'

Scenario: Download font checkbox should be active Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Fonts' button Then I should see the checkbox to 'Download font' in is an active state

Scenario: Download font checkbox should be selected Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Fonts' button Then I should see that checkbox to 'Download font' is in a selected state

Scenario: Font selection dropdown will be hidden Given I clicked the cog icon to open the 'Language Settings' panel And I have selected the 'Fonts' option When I click on the 'Download font' checkbox button to uncheck it       Then I should see that dropdown button to select a font is hidden

Scenario: Font selection dropdown will be shown Given I clicked the cog icon to open the 'Language Settings' panel And I have selected the 'Fonts' option And the checkbox button to Download font is not selected When I click on the 'Download font' checkbox button to check it       Then I should see that a dropdown button to select a font is displayed

Font Selection and download for English+ 1 more language, after applying settings

Scenario: "Fonts" option allows the font to be selected for English and the active language Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is not English When I click on the 'Fonts' button in the display settings Then I see two dropdown buttons to select the fonts for English and the active language Scenario: Appropriate active language name should be displayed next to the second dropdown box Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is not English When I click on the 'Fonts' button in the display settings Then I see that the appropriate language name should be displayed next to the second dropdown buttons to select the fonts for the active language

Scenario: "Fonts" selection dropdown button should be active Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is not English When I click on the 'Fonts' button Then I should see two dropdown button for font selecting in an active state

Scenario: "Fonts" selection dropdown button for English should display options to select Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is not English And I have selected the 'Fonts' option When I click on the dropdown button to select a font for English Then I should see a list of fonts that I can select from

Scenario: "Fonts" selection dropdown button for non-English should display options to select Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is not English And I have selected the 'Fonts' option When I click on the dropdown button to select a font for the active language that is not English Then I should see a list of fonts that I can select from

Scenario: Font selected from the "Fonts" selection dropdown button for English should be used Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is not English And I have selected the 'Fonts' option When I click on the dropdown button and select a font for English Then I should see selected font being immediately used for any English text in the page

Scenario: Font selected from the "Fonts" selection dropdown button for non-English language should be used Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is not English And I have selected the 'Fonts' option When I click on the dropdown button and select a font for the active language that is not English Then I should see selected font being immediately used for any text in the active language in the page Scenario: Download font checkbox should be visible Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is not English When I click on the 'Fonts' button Then I should see a checkbox to 'Download font'

Scenario: Download font checkbox should be active Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is not English When I click on the 'Fonts' button Then I should see the checkbox to 'Download font' in is an active state

Scenario: Download font checkbox should be selected Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is not English When I click on the 'Fonts' button Then I should see that checkbox to 'Download font' is in a selected state

-->

Feature: Anonymous user can change the font used for the menu [HIGHEST]
Scenario: "Fonts" option allows the font to the selected Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Fonts' button Then I see a dropdown button to select the font

Scenario: "Fonts" selection dropdown button should be active Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Fonts' button Then I should see a dropdown button in an active state

Scenario: "Fonts" selection dropdown button should display options to select Given I clicked the cog icon to open the 'Language Settings' panel And I have selected the 'Fonts' option When I click on the dropdown button to select a font Then I should see a list of fonts that I can select from

Scenario: Font selected from the "Fonts" selection dropdown button should be used Given I clicked the cog icon to open the 'Language Settings' panel And I have selected the 'Fonts' option When I click on the dropdown button and select a font Then I should see selected font being immediately used in the page

Scenario: Download font checkbox should be visible Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Fonts' button Then I should see a checkbox to 'Download font'

Scenario: Download font checkbox should be active Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Fonts' button Then I should see the checkbox to 'Download font' in is an active state

Scenario: Download font checkbox should be selected Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Fonts' button Then I should see that checkbox to 'Download font' is in a selected state

Feature: Logged-in user can disable and enable the download of fonts [HIGHEST]
Scenario: Font selection dropdown will be hidden Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is not English And I have selected the 'Fonts' option When I click on the 'Download font' checkbox button to uncheck it       Then I should see that dropdown button to select a font is hidden

Scenario: Font selection dropdown will be shown Given I clicked the cog icon to open the 'Language Settings' panel And the default language selected is not English And I have selected the 'Fonts' option And the checkbox button to Download font is not selected When I click on the 'Download font' checkbox button to check it       Then I should see that a dropdown button to select a font is displayed

Scenario: Font selection dropdown will be hidden for 2 languages

Scenario: Font selection dropdown will be shown for 2 languages

Feature: Anonymous user can disable and enable the download of fonts [HIGHEST]
Scenario: Font selection dropdown will be hidden Given I clicked the cog icon to open the 'Language Settings' panel And I have selected the 'Fonts' option When I click on the 'Download font' checkbox button to uncheck it	Then I should see that dropdown button to select a font is hidden

Scenario: Font selection dropdown will be shown Given I clicked the cog icon to open the 'Language Settings' panel And I have selected the 'Fonts' option And the checkbox button to Download font is not selected When I click on the 'Download font' checkbox button to check it	Then I should see that a dropdown button to select a font is displayed

Feature: ULS Language Settings web-fonts for anonymous users (Work-in-progress)
Implementation:

Scenario: Display Settings button should be visible at the bottom of the ULS Window Given I am on a wiki page with an element saying Hello When I click on the ULS link at the top Then I should see the "Display settings" button at the bottom of the ULS window

Scenario: User should see the Display settings panel with the the name of currently selected language Given I am on a wiki page with an element saying Hello and with the ULS window open When I click on the "Display settings" button at the bottom of the ULS window Then I should see the Display settings panel with "English" on one of the buttons

Scenario: Dropdown to select fonts for the selected language should be displayed Given I am on a wiki page with an element saying Hello with the ULS window open at the Display settings panel When I click on the "English" button Then I should see the settings for English, with a dropdown saying "Select font for English" and the value "System font"

Scenario: After selection of OpenDyslexic font the name of the font should be displayed in the span element Given I am on a wiki page with an element saying Hello with the ULS window open at the English Display settings panel When I select "OpenDyslexic" in the dropdown menu Then I should see that the font of the text in the span element changes to OpenDyslexic

Scenario: On OpenDyslexic font selection ULS window should close when settings are applied by pressing a button Given I am on a wiki page with an element saying Hello in OpenDyslexic font When I press the "Apply settings" button Then I should see that the ULS window closes

Scenario: Name of the selected font OpenDyslexic should be displayed in span element even after page refresh Given I am on a wiki page with an element saying Hello in OpenDyslexic font and I just pressed the "Apply settings" button When I refresh the page Then I should see that the font of the text in the span element is still OpenDyslexic

Scenario: Display Settings button should be displayed at the bottom of the ULS window when OpenDyslexic font is selected Given I am on a wiki page with an element saying Hello in OpenDyslexic font When I click on the ULS link at the top Then I should see the "Display settings" button at the bottom of the ULS window

Scenario: English should be displayed as the name of the language and OpenDyslexic as font name in the display settings panel when OpenDyslexic font is selected Given I am on a wiki page with an element saying Hello in OpenDyslexic font and with the ULS window open When I click on the "Display settings" button at the bottom of the ULS window Then I should see the Display settings panel with "English" on one of the buttons and the English settings showing, and "OpenDyslexic" in the dropdown

Scenario: Font name should change in the span element on selection of system font from the dropdown Given I am on a wiki page with an element saying Hello with the ULS window open at the English Display settings panel When I select "System font" in the dropdown menu Then I should see that the font of the text in the span element changes from OpenDyslexic to the default system font

Scenario: On system font selection ULS window should close when settings are applied by pressing a button Given I am on a wiki page with an element saying Hello in the system font When I press the "Apply settings" button Then I should see that the ULS window closes

Scenario: Name of the selected system font should be displayed in span element even after page refresh Given I am on a wiki page with an element saying Hello in the system font and I just pressed the "Apply settings" button When I refresh the page Then I should see that the font of the text in the span element is still the system font

Feature: ULS Language Settings web-fonts for logged-in users (Work-in-progress)
Implementation:

Feature: Input settings on the Language Settings panel menu for anonymous users
Implementation: Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki.

Background: Base language at the start of the test is English

Background: The tests need to be run as an anonymous user

URL to use: to-be-decided Scenario: Input settings options are displayed Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Input' option Then I see the option changes from Font settings to Input settings

Scenario: Buttons with language names displayed Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Input' option Then I see 3 buttons with language names and 1 button with ellipsis displayed in the panel

Scenario: Button with active language name is selected by default Given I clicked the cog icon to open the 'Language Settings' panel And the default language is English When I click on the 'Input' option Then I see the button for English selected by default

Scenario: Input methods is displayed for the language selected by default Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Input' option Then I see radio buttons displayed for the input methods of the language button that is selected by default

Scenario: Input methods change when the language is changed Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Input' option And click on a button to change the language Then I see the input methods of the newly selected language displayed with the radio buttons

Scenario: ULS language selection dialog is displayed Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Input' option And click on the button with the ellipsis Then I see the ULS language selection dialog

Scenario: Disable input method option is displayed Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Input' option Then the option to 'Disable the input method' is displayed as the last option in the radio buttons displayed for the input methods of the language button that is selected by default

Scenario: Disable input method option is always displayed with the list of input methods Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Input' option Then the option to 'Disable the input method' is displayed as the last option in the radio buttons displayed for the input methods of the language button that is selected by default

Scenario: Disable input method button is always displayed Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Input' option Then a button to 'Disable input method tools' should always be visible

Scenario: Disable input method button should hide the language buttons Given I clicked the cog icon to open the 'Language Settings' panel And I have clicked the 'input' option And the input methods are not disabled When I click on the 'Disable input method tools' button Then the buttons with the language names and the ellipsis should be hidden

Scenario: Disable input method button should change its label when pressed Given I clicked the cog icon to open the 'Language Settings' panel And I have clicked the 'input' option And the input methods are not disabled When I click on the 'Disable input method tools' button Then the button label should change to 'Enable input method tools'

Scenario: Enable input method button should restore the language buttons Given I clicked the cog icon to open the 'Language Settings' panel And I have clicked the 'input' option And the input methods is disabled When I click on the 'Enable input method tools' button Then the buttons with the language names and the ellipsis should reappear

Scenario: Enable input method button should change its label when pressed Given I clicked the cog icon to open the 'Language Settings' panel And I have clicked the 'input' option And the input methods is disabled When I click on the 'Enable input method tools' button Then the button label should change to 'Disable input method tools'

Scenario: Input method selection should persist after closing the panel with the close button Given I clicked the cog icon to open the 'Language Settings' panel And I have clicked the 'input' option And I am on the default language English And I have selected the 'International Phonetic Alphabet - SIL' radio button And I have closed the panel using the X button When I click the cog button to reopen the Settings panel Then the selected input method should be 'International Phonetic Alphabet - SIL'

Scenario: Input method selection should persist after closing the panel with the cancel button Given I clicked the cog icon to open the 'Language Settings' panel And I have clicked the 'input' option And I am on the default language English And I have selected the 'International Phonetic Alphabet - SIL' radio button And I have closed the panel using the Cancel button When I click the cog button to reopen the Settings panel Then the selected input method should be 'International Phonetic Alphabet - SIL'

Scenario: Input method selection should persist after closing the panel after applying the settings Given I clicked the cog icon to open the 'Language Settings' panel And I have clicked the 'input' option And I am on the default language English And I have selected the 'International Phonetic Alphabet - SIL' radio button And I have closed the panel using the Apply Settings button When I click the cog button to reopen the Settings panel Then the selected input method should be 'International Phonetic Alphabet - SIL'

Feature: ULS IME keyboard menu (complete)
Implementation: -

Scenario: User can see input method keyboard icon Given I am on a wiki page with input options When I click on an input box Then I should see the IME keyboard icon at the bottom right

Scenario: ULS can see dropdown menu when they click on the IME icon Given I am on a wiki page with input options When I click on the IME keyboard icon Then I should see the dropdown menu with the a list of keymaps

Scenario: Autonyms of keyboards should be visible to the user Given  I have clicked on the IME keyboard icon When I get the drop down list of keyboards Then I should see the autonyms of the keyboards

Scenario: Language and Input Settings dialog should be displayed to the user Given I have the dropdown menu of the keyboard open When I click on the 'More Settings' option at the bottom of the dropdown Then I should see the dialog to select Language and Input settings

Scenario: User should see the main ULS dialog Given I have the dropdown menu of the keyboard open When I click on the '...' option near the bottom of the dropdown Then I should see the main ULS dialog

Scenario: Name of the selected keymap is visible with the IME icon Given I have the dropdown menu of the keyboard open When I click on the 'International Phonetic Alphabet - SIL' keyboard Then I should see the name of the keyboard i.e. 'International Phonetic Alphabet - SIL' displayed with the IME icon

Scenario: User should not be able to type with a disabled keymap Given I have selected and enabled a keyboard to use from the dropdown menu and its name is displayed with the IME icon When I press 'Ctrl+m' Then I should see the selected keyboard being disabled and am not able to type in that script

Scenario: The name of a disabled keyboard should not be visible in the IME icon tooltip Given I have selected a keyboard and enabled from the dropdown menu When I press 'ctrl+m' to disable it	Then I should see the name of the keyboard removed from the tooltip displaying the IME icon

Scenario: Without a prior keyboard selection a keyboard name should not be displayed on pressing the shortcut keys Given The cursor is on an input box and I have not made any keyboard selection When I press 'ctrl+m' Then I should not see any keyboard name displayed along with the IME icon

Scenario: Keyboard selected in one input box should also be the selected keyboard in the next one Given I have selected a keyboard and enabled from the dropdown menu When I move from the currently active input box to another input box and start typing Then I should be able to write in the keyboard that was selected in the previous box

Scenario: Name of a keyboard selected in one input box should be displayed in the next one Given I have selected a keyboard and enabled from the dropdown menu When I move from the currently active input box to another input box Then I should see the keyboard name still displayed with the IME icon

Input settings on the Language Settings panel menu for logged-in users [HIGH]
Implementation: Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki.

Background: Base language at the start of the test is English

Background: The tests need to be run as a logged-in user

URL to use: to-be-decided Scenario: Input settings options are displayed Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Input' option Then I see the option changes from Font settings to Input settings

Scenario: Buttons with language names displayed Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Input' option Then I see 3 buttons with language names and 1 button with ellipsis displayed in the panel

Scenario: Button with active language name is selected by default Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Input' option Then I see the button for English selected by default

Scenario: Input methods is displayed for the language selected by default Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Input' option Then I see radio buttons displayed for the input methods of the language button that is selected by default

Scenario: Input methods change when the language is changed Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Input' option And click on a button to change the language Then I see the input methods of the newly selected language displayed with the radio buttons

Scenario: ULS language selection dialog is displayed Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Input' option And click on the button with the ellipsis Then I see the ULS language selection dialog

Scenario: Input method selection should persist after closing the panel with the close button Given I clicked the cog icon to open the 'Language Settings' panel And I have clicked the 'input' option And I am on the default language English And I have selected the 'International Phonetic Alphabet - SIL' radio button And I have closed the panel using the X button When I click the cog button to reopen the Settings panel Then the selected input method should be 'International Phonetic Alphabet - SIL'

Scenario: Input method selection should persist after closing the panel with the cancel button Given I clicked the cog icon to open the 'Language Settings' panel And I have clicked the 'input' option And I am on the default language English And I have selected the 'International Phonetic Alphabet - SIL' radio button And I have closed the panel using the Cancel button When I click the cog button to reopen the Settings panel Then the selected input method should be 'International Phonetic Alphabet - SIL'

Scenario: Input method selection should persist after closing the panel after applying the settings Given I clicked the cog icon to open the 'Language Settings' panel And I have clicked the 'input' option And I am on the default language English And I have selected the 'International Phonetic Alphabet - SIL' radio button And I have closed the panel using the Apply Settings button When I click the cog button to reopen the Settings panel Then the selected input method should be 'International Phonetic Alphabet - SIL'

Feature: Logged-in users can disable and enable the input method tools [HIGH]
Scenario: Disable input method option is always displayed with the list of input methods Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Input' option Then the option to 'Disable the input method' is displayed as the last option in the radio buttons displayed for the input methods of the language button that is selected by default

Scenario: Disable input method button is always displayed Given I clicked the cog icon to open the 'Language Settings' panel When I click on the 'Input' option Then a button to 'Disable input method tools' should always be visible

Scenario: Disable input method button should hide the language buttons Given I clicked the cog icon to open the 'Language Settings' panel And I have clicked the 'input' option And the input methods are not disabled When I click on the 'Disable input method tools' button Then the buttons with the language names and the ellipsis should be hidden

Scenario: Disable input method button should change its label when pressed Given I clicked the cog icon to open the 'Language Settings' panel And I have clicked the 'input' option And the input methods are not disabled When I click on the 'Disable input method tools' button Then the button label should change to 'Enable input method tools'

Scenario: Enable input method button should restore the language buttons Given I clicked the cog icon to open the 'Language Settings' panel And I have clicked the 'input' option And the input methods is disabled When I click on the 'Enable input method tools' button Then the buttons with the language names and the ellipsis should reappear

Scenario: Enable input method button should change its label when pressed Given I clicked the cog icon to open the 'Language Settings' panel And I have clicked the 'input' option And the input methods is disabled When I click on the 'Enable input method tools' button Then the button label should change to 'Disable input method tools'

Feature: input selection shuld be optimized for repetition
Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki.

Background: Base language at the start of the test is English

Background: The tests needs to run with a logged-in user

Scenario: When changing input language, the previously selected method for the language should be used. Given I clicked the cog icon to open the 'Language Settings' panel And I click the "Input" section And I click the "..." button And I search for "ml" and hit enter And I select the second input method for the language And I click on "Accept" button And I clicked the cog icon to open the 'Language Settings' panel And I select English as input language And I click on "Accept" button And I click the cog icon to open the 'Language Settings' panel And I click the "..." button When I search for "ml" and hit enter Then I see that the second input method s selected.

Feature: When selecting input languages, show only languages for which there are input methods
Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki. Background: Base language at the start of the test is English Background: The tests needs to run with a logged-in user Scenario: users cannot select languages lacking input methods Given I clicked the cog icon to open the 'Language Settings' panel And I click the "Input" section When I click the "..." button Then I see that euskara is not in the list.

Feature: Consistency in Input method changes using different entry points: language settings, contextual input method menu (keyboard menu), and user preferences.
URL: with input box Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki. Background: Base language at the start of the test is English Background: The tests needs to run with a logged-in user Background: Given I am on a page with an input box Background: input method tools are enabled

Scenario: Disabling from settings removes keyboard and shows on user preferences Given input method tools are enabled And language settings dialog is open showing the Input methos section. When I click on the "Disable input method tools" button Then the input method section on the user preferences should indicate that input methods are disabled.

Scenario: Disabling from user preferences removes keyboard and shows in language settings Given I clicked the cog icon to open the 'Language Settings' panel And I click the "Input" section And I click on the "Disable input method tools" button When I click on a search box Then I see that the keyboard menu does not appear next to the search box.

Scenario: Changing input language on language panel affects keyboard menu. Given I clicked the cog icon to open the 'Language Settings' panel And I click the "Input" section And I click on a different input language When I click on a search box Then I see that the keyboard menu indicates the name of the selected input language.

Scenario: Changing input method on language panel affects keyboard menu Given I clicked the cog icon to open the 'Language Settings' panel And I click the "Input" section And I click on a different input method And I click on a search box When I open the keyboard icon menu Then I see that the keyboard menu indicates the name of the selected input method.

Scenario: Changing input language on keyboard menu affects language settings panel. Given I clicked the search box And I clicked on the keyboard icon that appears And select a different input language And I clicked the cog icon to open the 'Language Settings' panel When I click the "Input" section Then I see that the current input language is the one selected before

Scenario: Changing input method on keyboard menu affects language settings Given I clicked the search box And I clicked on the keyboard icon that appears And select a different input method And I clicked the cog icon to open the 'Language Settings' panel When I click the "Input" section Then I see that the current input method is the one selected before.

When I click on the keyboard menu and change from Russian - to select a Esperanto- And I click on the cog icon to open the Language Settings panel And I click on the input settings panel Then I should see the language and keyboard selection change to Esperanto- in the language settings panel

Feature: ULS Language Settings for logged-in users using setlang (Work-in-progress)
Implementation:

Feature: ULS Input preferences for logged-in users using Special:Preference (Work-in-progress)
Implementation:

Scenario: Preferences and ULS panel are synchronized Given I am logged in and I am looking at Special:Preferences When I uncheck the "Enable input method tools" preference, save the preferences and open ULS Input settings Then the panel shows the "Enable input method tools"

Scenario: Preferences and ULS panel are synchronized Given I am logged in and I am looking at Special:Preferences When I uncheck the "Enable input method tools" preference, save the preferences and open ULS Input settings Then the panel shows the "Enable input method tools"

Scenario: Preferences and ULS panel are synchronized Given I am logged in and I am looking at Special:Preferences When I check the "Enable input method tools" preference, save the preferences and open ULS Input settings Then the panel shows the "Disable input method tools" button, three buttons with language names and a list of input methods for one of the languages

Feature: ULS search operation for anonymous users (Work-in-progress)
Implementation:

Feature: Logged in users can access more display languages than the ones in the initial list
Background: In all of the following scenarios the global variable $wgULSPosition is set to 'interlanguage' for the wiki. Background: Base language at the start of the test is English Background: The tests needs to run with a logged-in user

Scenario: Users can access the "more languages" list Given I clicked the cog icon to open the 'Language Settings' panel When I click the "..." button Then I see a list of languages

Scenario: Users can go back from the "more languages" list Given I clicked the cog icon to open the 'Language Settings' panel And I click the "..." button When I see a list of languages Then I see a link to go back to the Display settings Scenario: Users can select a language from the "more languages" list Given I clicked the cog icon to open the 'Language Settings' panel And I click the "..." button When I see a list of languages Then I see a link to go back to the Display settings

Scenario: Users can search for a language from the "more languages" list Given I clicked the cog icon to open the 'Language Settings' panel And I click the "..." button When I search for "spanish" Then I can select "Español" from the search results searching

User Scenario
Lev. Professor interested in linguistics and advanced Wikipedia editor.
 * Quick input language switching. Lev edits Hebrew and Russian wikipedias, he always uses the same input method for each language but often switches between those. He needs a quick way to switch between his usual input methods.
 * Use in a foreign language. A friend from Greece is visiting Lev, he wants to print some information for him in Greek. Lev access the Greek version of an article but for exporting it, he adjusts the UI language so that he can understand the export options.

Based on the above:
 * Identify features
 * Scenarios