From f43a00d5b86972a43978c00d612b380a41c7bad3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Laxstr=C3=B6m?= Date: Mon, 16 Sep 2013 15:54:09 -0700 Subject: [PATCH] Refactoring tests Collaboratively Change-Id: I6c5417a0681f9bb8596c36600a569df2ddd7bf9e --- tests/browser/features/persistent_settings.feature | 12 +++++++----- .../features/step_definitions/common_steps.rb | 6 ------ .../features/step_definitions/persistent_steps.rb | 14 ++++++++++++++ tests/browser/features/support/pages/panel_page.rb | 2 ++ .../features/support/pages/preferences_page.rb | 9 +++++++++ 5 files changed, 32 insertions(+), 11 deletions(-) create mode 100644 tests/browser/features/step_definitions/persistent_steps.rb create mode 100644 tests/browser/features/support/pages/preferences_page.rb diff --git a/tests/browser/features/persistent_settings.feature b/tests/browser/features/persistent_settings.feature index b13e46ea..ecc1060f 100644 --- a/tests/browser/features/persistent_settings.feature +++ b/tests/browser/features/persistent_settings.feature @@ -1,21 +1,23 @@ @login @reset-preferences-after @en.wikipedia.beta.wmflabs.org @commons.wikimedia.beta.wmflabs.org Feature: Persistent settings + This assumes wiki content language is English. + Background: Given I am logged in - And I set "German" as the interface language - And the content language is "English" + And I set interface language that is different from content language and has a font Scenario: Interface font sticks to another page When I open "Fonts" panel of language settings - And I select "OpenDyslexic" font for the interface language for the live preview + And I select a font for the interface language And I apply the changes And I visit a random page - Then the selected interface font must be "OpenDyslexic" + And I open "Fonts" panel of language settings + Then the selected interface font must be what I previously selected Scenario: Discarding a live preview of a font keeps the previous font When I open "Fonts" panel of language settings - And I select "OpenDyslexic" font for the interface language for the live preview + And I select a font for the interface language And I close the panel to discard the changes And I visit a random page Then the selected interface font must be "system" diff --git a/tests/browser/features/step_definitions/common_steps.rb b/tests/browser/features/step_definitions/common_steps.rb index 1fa46b29..bd6df128 100644 --- a/tests/browser/features/step_definitions/common_steps.rb +++ b/tests/browser/features/step_definitions/common_steps.rb @@ -25,12 +25,6 @@ Given(/^I temporarily use "(.*?)" as the interface language$/) do |language| visit(ULSPage, :using_params => {:extra => "uselang=#{code}"}) end -Given(/^the content language is "(.*?)"$/) do |language| - code = language_to_code(language) - actual = @browser.execute_script( "return mw.config.get( 'wgContentLanguage' )" ) - actual.should == code -end - Given(/^the interface language is "(.*?)"$/) do |language| # phantomjs needs little bit time because it executes the script before # the page is fully loaded diff --git a/tests/browser/features/step_definitions/persistent_steps.rb b/tests/browser/features/step_definitions/persistent_steps.rb new file mode 100644 index 00000000..0f568d89 --- /dev/null +++ b/tests/browser/features/step_definitions/persistent_steps.rb @@ -0,0 +1,14 @@ +Given(/^I set interface language that is different from content language and has a font$/) do + visit(PreferencesPage) do |page| + page.set_interface_language_element.select_value 'de' + page.save_element.click + end +end + +When(/^I select a font for the interface language$/) do + on(ULSPage).select_font_for_interface = 'OpenDyslexic' +end + +Then(/^the selected interface font must be what I previously selected$/) do + on(ULSPage).select_font_for_interface.should == 'OpenDyslexic' +end diff --git a/tests/browser/features/support/pages/panel_page.rb b/tests/browser/features/support/pages/panel_page.rb index 4308964d..0eb3b460 100644 --- a/tests/browser/features/support/pages/panel_page.rb +++ b/tests/browser/features/support/pages/panel_page.rb @@ -29,4 +29,6 @@ class ULSPage # Triggers span(:trigger_cog, class: 'uls-settings-trigger') a(:trigger_personal, class: 'uls-trigger') + + select(:select_font_for_interface, id: 'ui-font-selector') end diff --git a/tests/browser/features/support/pages/preferences_page.rb b/tests/browser/features/support/pages/preferences_page.rb new file mode 100644 index 00000000..e81c74de --- /dev/null +++ b/tests/browser/features/support/pages/preferences_page.rb @@ -0,0 +1,9 @@ +class PreferencesPage + include PageObject + + include URL + page_url URL.url('Special:Preferences') + + select(:set_interface_language, id: 'mw-input-wplanguage') + button(:save, id: 'prefcontrol') +end