Happens when anonymous user cannot change language, and the language of the translation differs from the content language. Change-Id: Ie4f15f1813eec992cfe060baf9cd7dcb5f8a0d95
84 lines
1.8 KiB
Ruby
84 lines
1.8 KiB
Ruby
Given(/^I am at random page$/) do
|
|
visit RandomPage
|
|
end
|
|
|
|
Given(/^I am logged out$/) do
|
|
end
|
|
|
|
Given(/^I am logged in$/) do
|
|
visit(LoginPage).login_with(@mediawiki_username, @mediawiki_password)
|
|
# Assert that login worked
|
|
loggedin = !@browser.execute_script( "return mw.user.isAnon();" )
|
|
loggedin.should be_true
|
|
end
|
|
|
|
Given(/^I set "(.*?)" as the interface language$/) do |language|
|
|
code = language_to_code(language)
|
|
visit(ULSPage, :using_params => {:extra => "setlang=#{code}"})
|
|
# And check it took effect
|
|
actual = @browser.execute_script( "return jQuery( 'html' ).attr( 'lang' )" )
|
|
actual.should == code
|
|
end
|
|
|
|
Given(/^I temporarily use "(.*?)" as the interface language$/) do |language|
|
|
code = language_to_code(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
|
|
|
|
def language_to_code(language)
|
|
case language
|
|
when 'German'
|
|
'de'
|
|
when 'English'
|
|
'en'
|
|
when 'Finnish'
|
|
'fi'
|
|
else
|
|
pending
|
|
end
|
|
end
|
|
|
|
def get_font(selector)
|
|
@browser.execute_script( "return $( '#{selector}' ).css( 'font-family' );" )
|
|
end
|
|
|
|
def get_content_font()
|
|
get_font('#mw-content-text')
|
|
end
|
|
|
|
def get_interface_font()
|
|
get_font('body')
|
|
end
|
|
|
|
After('@reset-preferences-after') do |scenario|
|
|
visit(ResetPreferencesPage)
|
|
on(ResetPreferencesPage).submit_element.click
|
|
end
|
|
|
|
def uls_position()
|
|
if !defined?($uls_position)
|
|
visit(ULSPage)
|
|
$uls_position = @browser.execute_script( "return mw.config.get( 'wgULSPosition' )" );
|
|
else
|
|
$uls_position
|
|
end
|
|
end
|
|
|
|
Before('@uls-in-sidebar-only') do |scenario|
|
|
if uls_position() != 'interlanguage'
|
|
scenario.skip_invoke!
|
|
end
|
|
end
|
|
|
|
Before('@uls-in-personal-only') do |scenario|
|
|
if uls_position() != 'personal'
|
|
scenario.skip_invoke!
|
|
end
|
|
end
|