Merge "Refactor "Open language selector when logged in""
This commit is contained in:
@@ -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
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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' );" )
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user