Merge "Refactor "Open language selector when logged in""

This commit is contained in:
jenkins-bot
2013-11-13 12:11:40 +00:00
committed by Gerrit Code Review
7 changed files with 22 additions and 34 deletions

View File

@@ -25,12 +25,3 @@ Then(/^my interface language is "(.*?)"$/) do |language|
code = on(PanelPage).language_to_code(language) code = on(PanelPage).language_to_code(language)
on(PanelPage).interface_element.attribute('lang').should == code on(PanelPage).interface_element.attribute('lang').should == code
end end
def uls_position()
if !defined?($uls_position)
visit(PanelPage)
$uls_position = @browser.execute_script( "return mw.config.get( 'wgULSPosition' )" );
else
$uls_position
end
end

View File

@@ -1,7 +1,10 @@
When(/^I click language selector trigger element$/) do When(/^I click language selector trigger element$/) do
on(RandomPage).uls_trigger on(PanelPage).trigger_personal
end end
Then(/^I should see the language selector$/) do Then(/^I should see the language selector$/) do
on(PanelPage).uls_element.should be_visible on(PanelPage) do |page|
page.uls_element.should be_visible
page.uls_onscreen?.should be_true
end
end end

View File

@@ -3,18 +3,6 @@ Before('@language') do |scenario|
@scenario = scenario @scenario = scenario
end end
Before('@uls-in-personal-only') do |scenario|
if uls_position() != 'personal'
scenario.skip_invoke!
end
end
Before('@uls-in-sidebar-only') do |scenario|
if uls_position() != 'interlanguage'
scenario.skip_invoke!
end
end
After('@reset-preferences-after') do |scenario| After('@reset-preferences-after') do |scenario|
visit(ResetPreferencesPage).submit_element.click if @browser.exist? visit(ResetPreferencesPage).submit_element.click if @browser.exist?
end end

View File

@@ -53,6 +53,18 @@ class PanelPage
font('body') font('body')
end end
def uls_onscreen?
@browser.execute_script( "
var $menu = $( '.uls-menu' ),
$window = $( window ),
top = $menu.offset().top,
viewportTop = $window.scrollTop(),
viewportBottom = $window.scrollTop() + $window.height();
return ( top < viewportBottom && top >= viewportTop )" )
end
private private
def font(selector) def font(selector)
@browser.execute_script( "return $( '#{selector}' ).css( 'font-family' );" ) @browser.execute_script( "return $( '#{selector}' ).css( 'font-family' );" )

View File

@@ -13,5 +13,4 @@ class RandomPage
a(:print_export, text: 'Print/export') a(:print_export, text: 'Print/export')
a(:printable_version, text: 'Printable version') a(:printable_version, text: 'Printable version')
button(:search_button, id: 'searchButton') button(:search_button, id: 'searchButton')
a(:uls_trigger, class: 'uls-trigger')
end end

View File

@@ -1,12 +1,12 @@
Feature: Trigger in personal toolbar Feature: Trigger in personal toolbar
@login @uls-in-personal-only @commons.wikimedia.beta.wmflabs.org @login
Scenario: Open language selector when logged in Scenario: Open language selector when logged in
Given I am logged in Given I am logged in
When I click language selector trigger element When I click language selector trigger element
Then I should see the language selector Then I should see the language selector
@uls-in-personal-only @no-anon-language-selection @no-anon-language-selection
Scenario: Open language settings when logged out and language change not allowed Scenario: Open language settings when logged out and language change not allowed
If the user is logged out, the user will either see the language selector If the user is logged out, the user will either see the language selector
@@ -17,7 +17,7 @@ Feature: Trigger in personal toolbar
When I click language selector trigger element When I click language selector trigger element
Then I see the logged in language settings panel Then I see the logged in language settings panel
@uls-in-personal-only @anon-language-selection @anon-language-selection
Scenario: Open language selector when logged out Scenario: Open language selector when logged out
Given I am at random page Given I am at random page
@@ -25,7 +25,7 @@ Feature: Trigger in personal toolbar
Then I should see the language selector Then I should see the language selector
@login @uls-in-sidebar-only @login
Scenario Outline: Opening language settings from sidebar Scenario Outline: Opening language settings from sidebar
Given I am <user status> Given I am <user status>
And I am on <page type> And I am on <page type>
@@ -39,7 +39,7 @@ Feature: Trigger in personal toolbar
| logged out | a talk page without interlanguage links | | logged out | a talk page without interlanguage links |
| logged out | a talk page with interlanguage links | | logged out | a talk page with interlanguage links |
@login @uls-in-sidebar-only @login
Scenario Outline: Closing language settings without saving Scenario Outline: Closing language settings without saving
Given I am <user status> Given I am <user status>
And I am on a page without interlanguage links And I am on a page without interlanguage links

View File

@@ -20,11 +20,6 @@ This file contains the descriptions of the tags we use.
could use your normal user account if you skip these tests, but I would not could use your normal user account if you skip these tests, but I would not
recommend doing that. recommend doing that.
@uls-in-personal-only
@uls-in-sidebar-only
These tests will automatically be marked as skipped if ULS configuration is
not the one expected for the test.
@anon-language-selection @anon-language-selection
@no-anon-language-selection @no-anon-language-selection
Depending on the wiki configuration, you should filter out either one of Depending on the wiki configuration, you should filter out either one of