From b0d905a554ee3b4d9cc1278f528d6d31b5df2625 Mon Sep 17 00:00:00 2001 From: "Amir E. Aharoni" Date: Thu, 31 Oct 2013 18:54:46 +0200 Subject: [PATCH] Refactored scenario: Edit area fonts should not change on UI language change if the user preferences for edit area font are set MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Started in a pairing session Amir and Željko, ended in session Niklas and Željko. Change-Id: I30ef2b41cfdceda04818f16f06e0071c487b90b6 --- .../cog_sidebar_user_steps.rb | 2 +- .../features/step_definitions/panel_steps.rb | 33 +++++++++++++------ .../step_definitions/textarea_font_steps.rb | 10 ++++-- .../features/support/pages/panel_page.rb | 4 +-- .../support/pages/preferences_page.rb | 4 +-- tests/browser/features/textarea_font.feature | 28 +++++----------- 6 files changed, 43 insertions(+), 38 deletions(-) diff --git a/tests/browser/features/step_definitions/cog_sidebar_user_steps.rb b/tests/browser/features/step_definitions/cog_sidebar_user_steps.rb index f3da8836..fbc11452 100644 --- a/tests/browser/features/step_definitions/cog_sidebar_user_steps.rb +++ b/tests/browser/features/step_definitions/cog_sidebar_user_steps.rb @@ -50,7 +50,7 @@ When(/^I click X$/) do end When(/^in the language filter I type (.+)$/) do |language_abbreviation| - on(RandomPage).language_filter=language_abbreviation + on(IMEPage).language_filter=language_abbreviation end Then(/^I can navigate back to Input Settings$/) do diff --git a/tests/browser/features/step_definitions/panel_steps.rb b/tests/browser/features/step_definitions/panel_steps.rb index a939b815..9141f11e 100644 --- a/tests/browser/features/step_definitions/panel_steps.rb +++ b/tests/browser/features/step_definitions/panel_steps.rb @@ -2,6 +2,22 @@ Then(/^I see "(.*?)" as the name of the content language$/) do |text| @browser.span(:text => "#{text}").should be_visible end +When(/^I open the Universal Language Selector$/) do + on(PanelPage).trigger_personal_element.when_visible.click +end + +When(/^I open Display panel of language settings$/) do + on(PanelPage).panel_display_element.when_visible.click +end + +When(/^I open Language panel of language settings$/) do + on(PanelPage).panel_language_element.click +end + +When(/^I open Fonts panel of language settings$/) do + on(PanelPage).panel_fonts_element.click +end + When(/^I open "(.*?)" panel of language settings$/) do |panel| visit(PanelPage) do |page| # Open the ULS panel if it's not open already @@ -15,11 +31,6 @@ When(/^I open "(.*?)" panel of language settings$/) do |panel| end case panel - when "Display" - page.panel_display_element.when_visible.click - when "Language" - page.panel_display_element.when_visible.click - page.panel_language_element.click when "Fonts" page.panel_display_element.when_visible.click page.panel_fonts_element.click @@ -32,11 +43,11 @@ When(/^I open "(.*?)" panel of language settings$/) do |panel| end When(/^I select "(.*?)" font for the interface language for the live preview$/) do |font| - on(PanelPage).select_font_for_interface = font + on(PanelPage).font_for_interface = font end When(/^I select "(.*?)" font for the content language for the live preview$/) do |font| - on(PanelPage).select_font_for_content = font + on(PanelPage).font_for_content = font end @@ -66,9 +77,11 @@ end When(/^I use the panel to change my interface language to "(.*?)"$/) do |language| code = on(PanelPage).language_to_code(language) - on(RandomPage).language_filter = code - # Because one browser wants :enter and other :return -- sigh - on(RandomPage).language_filter_element.send_keys [:enter, "\n"] + on(IMEPage) do |page| + page.language_filter = code + # Because one browser wants :enter and other :return -- sigh + page.language_filter_element.send_keys [:enter, "\n"] + end end Then(/^the panel is in English/) do diff --git a/tests/browser/features/step_definitions/textarea_font_steps.rb b/tests/browser/features/step_definitions/textarea_font_steps.rb index 4a8fb25e..e168cff9 100644 --- a/tests/browser/features/step_definitions/textarea_font_steps.rb +++ b/tests/browser/features/step_definitions/textarea_font_steps.rb @@ -1,12 +1,16 @@ +Given(/^I have reset my preferences$/) do + visit(ResetPreferencesPage).submit_element.click +end + When(/^I set the editing fonts to "(.*?)"$/) do |editing_font| visit(PreferencesPage) do |page| - page.preftab_editing_element.click - page.pref_editfont_element.select_value editing_font + page.editing_tab_element.click + page.editing_font_element.select_value editing_font page.save_element.click end end -When(/^I edit a page$/) do +When(/^I start editing a page$/) do visit(NoInterlanguagePage).edit_link_element.click end diff --git a/tests/browser/features/support/pages/panel_page.rb b/tests/browser/features/support/pages/panel_page.rb index d0a3cabb..3e275d83 100644 --- a/tests/browser/features/support/pages/panel_page.rb +++ b/tests/browser/features/support/pages/panel_page.rb @@ -37,8 +37,8 @@ class PanelPage select(:selected_content_font, id: 'content-font-selector') select(:selected_interface_font, id: 'ui-font-selector') - select(:select_font_for_interface, id: 'ui-font-selector') - select(:select_font_for_content, id: 'content-font-selector') + select(:font_for_interface, id: 'ui-font-selector') + select(:font_for_content, id: 'content-font-selector') div(:uls_display_settings, class: 'uls-display-settings') diff --git a/tests/browser/features/support/pages/preferences_page.rb b/tests/browser/features/support/pages/preferences_page.rb index 78245d93..50d26c47 100644 --- a/tests/browser/features/support/pages/preferences_page.rb +++ b/tests/browser/features/support/pages/preferences_page.rb @@ -7,6 +7,6 @@ class PreferencesPage select(:set_interface_language, id: 'mw-input-wplanguage') button(:save, id: 'prefcontrol') - a(:preftab_editing, id: 'preftab-editing') - select(:pref_editfont, id: 'mw-input-wpeditfont') + a(:editing_tab, id: 'preftab-editing') + select(:editing_font, id: 'mw-input-wpeditfont') end diff --git a/tests/browser/features/textarea_font.feature b/tests/browser/features/textarea_font.feature index 28d8fb11..4edbc4bc 100644 --- a/tests/browser/features/textarea_font.feature +++ b/tests/browser/features/textarea_font.feature @@ -8,33 +8,21 @@ Feature: Font preferences respected in different languages the edit area has the font according to the ULS webfont preferences. Background: - # This is needed to reset the fonts for the relevant languages. - # There's no better way to reset ULS preferences. Given I am logged in - When I open "Language" panel of language settings - And I click the button with the ellipsis - And I use the panel to change my interface language to "German" - And I open "Fonts" panel of language settings - # This is the System font - And I select "Systemschriftart" font for the content language for the live preview - And I select "Systemschriftart" font for the interface language for the live preview - And I open "Language" panel of language settings - And I click the button with the ellipsis - And I use the panel to change my interface language to "English" - And I apply the changes - And I set the editing fonts to "default" + And I have reset my preferences + @commons.wikimedia.beta.wmflabs.org Scenario: Edit area fonts should not change on UI language change if the user preferences for edit area font are set When I set the editing fonts to "monospace" - And I edit a page + And I set "Hindi" as the interface language + And I start editing a page Then I should see the edit area text being displayed using "monospace" font - And I set the editing fonts to "default" Scenario: Edit area should use the fonts selected by the user from ULS for a language When I open "Fonts" panel of language settings And I select "OpenDyslexic" font for the content language for the live preview And I apply the changes - And I edit a page + And I start editing a page Then I should see the edit area text being displayed using "OpenDyslexic" font Scenario: Edit area should use the ULS selected fonts when content language has a ULS font selection @@ -44,7 +32,7 @@ Feature: Font preferences respected in different languages And I open "Fonts" panel of language settings And I select "OpenDyslexic" font for the content language for the live preview And I apply the changes - And I edit a page + And I start editing a page Then I should see the edit area text being displayed using "OpenDyslexic" font Scenario: Edit area should use the system default fonts when content language does not have any ULS font selection @@ -52,9 +40,9 @@ Feature: Font preferences respected in different languages And I click the button with the ellipsis And I use the panel to change my interface language to "German" And I apply the changes - And I edit a page + And I start editing a page Then I should see the edit area text being displayed using "monospace" font Scenario: Edit area should use browser's default Monospace font for languages that have a default monospace font (Latin, Cyrillic, Hebrew etc.) - When I edit a page + When I start editing a page Then I should see the edit area text being displayed using "monospace" font