Fix more tests for phantomjs
As a bonus got rid of JavaScript call. Refactored uls-position code to a method. Change-Id: I1df384a02909d430c12225525d5722a0520177ee
This commit is contained in:
@@ -40,22 +40,23 @@ After('@reset-preferences-after') do |scenario|
|
|||||||
on(ResetPreferencesPage).submit_element.click
|
on(ResetPreferencesPage).submit_element.click
|
||||||
end
|
end
|
||||||
|
|
||||||
Before('@uls-in-sidebar-only') do |scenario|
|
def uls_position()
|
||||||
if !defined?($uls_position)
|
if !defined?($uls_position)
|
||||||
visit(ULSPage)
|
visit(ULSPage)
|
||||||
$uls_position = @browser.execute_script( "return mw.config.get( 'wgULSPosition' )" );
|
$uls_position = @browser.execute_script( "return mw.config.get( 'wgULSPosition' )" );
|
||||||
|
else
|
||||||
|
$uls_position
|
||||||
end
|
end
|
||||||
if $uls_position != 'interlanguage'
|
end
|
||||||
|
|
||||||
|
Before('@uls-in-sidebar-only') do |scenario|
|
||||||
|
if uls_position() != 'interlanguage'
|
||||||
scenario.skip_invoke!
|
scenario.skip_invoke!
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Before('@uls-in-personal-only') do |scenario|
|
Before('@uls-in-personal-only') do |scenario|
|
||||||
if !defined?($uls_position)
|
if uls_position() != 'personal'
|
||||||
visit(ULSPage)
|
|
||||||
$uls_position = @browser.execute_script( "return mw.config.get( 'wgULSPosition' )" );
|
|
||||||
end
|
|
||||||
if $uls_position != 'personal'
|
|
||||||
scenario.skip_invoke!
|
scenario.skip_invoke!
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -18,12 +18,14 @@ Given(/^I inspect current fonts$/) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
When(/^I open "(.*?)" panel of language settings$/) do |panel|
|
When(/^I open "(.*?)" panel of language settings$/) do |panel|
|
||||||
# These can be of two different type of elements, which PageObjects do not like.
|
|
||||||
@browser.execute_script(
|
|
||||||
"jQuery( '.uls-trigger, .uls-settings-trigger' ).eq( 0 ).click()"
|
|
||||||
)
|
|
||||||
|
|
||||||
on(ULSPage) do |page|
|
on(ULSPage) do |page|
|
||||||
|
# These can be of two different type of elements, which PageObjects do not like.
|
||||||
|
if uls_position() == 'interlanguage'
|
||||||
|
page.trigger_cog_element.when_visible.click
|
||||||
|
elsif uls_position() == 'personal'
|
||||||
|
page.trigger_personal_element.when_visible.click
|
||||||
|
end
|
||||||
|
|
||||||
case panel
|
case panel
|
||||||
when "Display"
|
when "Display"
|
||||||
page.panel_display_element.when_visible.click
|
page.panel_display_element.when_visible.click
|
||||||
|
|||||||
@@ -21,4 +21,8 @@ class ULSPage
|
|||||||
# TODO: Rename to match convention
|
# TODO: Rename to match convention
|
||||||
button(:other_language_button, class: 'button uls-language-button')
|
button(:other_language_button, class: 'button uls-language-button')
|
||||||
button(:default_language_button, class: 'button uls-language-button down')
|
button(:default_language_button, class: 'button uls-language-button down')
|
||||||
|
|
||||||
|
# Triggers
|
||||||
|
span(:trigger_cog, class: 'uls-settings-trigger')
|
||||||
|
a(:trigger_personal, class: 'uls-trigger')
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user