Refactoring tests

Collaboratively

Change-Id: I6c5417a0681f9bb8596c36600a569df2ddd7bf9e
This commit is contained in:
Niklas Laxström
2013-09-16 15:54:09 -07:00
parent 6338d73c0e
commit f43a00d5b8
5 changed files with 32 additions and 11 deletions

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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