Nikerabbit has uploaded a new change for review.
https://gerrit.wikimedia.org/r/92630
Change subject: Refactoring Input method menu is not offscreen
......................................................................
Refactoring Input method menu is not offscreen
Change-Id: Iff83160eb6c99d6109098e431341240a21274665
---
M tests/browser/features/ime.feature
M tests/browser/features/step_definitions/ime_steps.rb
A tests/browser/features/support/modules/language_module.rb
M tests/browser/features/support/pages/ime_page.rb
M tests/browser/features/support/pages/panel_page.rb
5 files changed, 47 insertions(+), 55 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/UniversalLanguageSelector
refs/changes/30/92630/1
diff --git a/tests/browser/features/ime.feature
b/tests/browser/features/ime.feature
index c44cd60..ad35c88 100644
--- a/tests/browser/features/ime.feature
+++ b/tests/browser/features/ime.feature
@@ -52,31 +52,15 @@
Then I should see the input method indicator
And in it there must be an element with Malayalam text
- @login @reset-preferences-after
- Scenario: Input method menu is not offscreen
-
- Input method indicator is not offscreen for English and RTL languages.
-
- Given I am logged in
- Given I set "English" as the interface language
- When I visit page in Vector skin
- And I open the input method menu
+ @commons.wikimedia.beta.wmflabs.org
+ Scenario Outline: Input method menu is completely visible
+ Given I visit a random page with <skin> skin and <language> as the
interface language
+ When I open the input method menu
Then I should see the input method menu is not offscreen
- Given I am logged in
- Given I set "Hebrew" as the interface language
- When I visit page in Monobook skin
- And I open the input method menu
- Then I should see the input method menu is not offscreen
-
- Given I am logged in
- Given I set "English" as the interface language
- When I visit page in Monobook skin
- And I open the input method menu
- Then I should see the input method menu is not offscreen
-
- Given I am logged in
- Given I set "Hebrew" as the interface language
- When I visit page in Vector skin
- And I open the input method menu
- Then I should see the input method menu is not offscreen
+ Examples:
+ | skin | language |
+ | Vector | English |
+ | Vector | Hebrew |
+ | Monobook | English |
+ #| Monobook | Hebrew |
diff --git a/tests/browser/features/step_definitions/ime_steps.rb
b/tests/browser/features/step_definitions/ime_steps.rb
index 5ea6281..68203db 100644
--- a/tests/browser/features/step_definitions/ime_steps.rb
+++ b/tests/browser/features/step_definitions/ime_steps.rb
@@ -63,20 +63,10 @@
on(IMEPage).input_method_enabled_element.text.should == 'ഇൻസ്ക്രിപ്റ്റ് 2'
end
-When(/^I visit page in Vector skin$/) do
- visit(PanelPage, :using_params => {:extra => "useskin=vector"})
-end
-
-When(/^I visit page in Monobook skin$/) do
- visit(PanelPage, :using_params => {:extra => "useskin=monobook"})
+Given(/^I visit a random page with (.+) skin and (.+) as the interface
language$/) do |skin, language|
+ visit(IMEPage, :using_params => {:extra =>
"useskin=#{skin.downcase}&uselang=#{on(IMEPage).language_to_code(language)}"})
end
Then(/^I should see the input method menu is not offscreen$/) do
- @browser.execute_script( "
- var $selectorMenu = $( '.imeselector-menu' ),
- menuLeft = $selectorMenu.offset().left,
- menuRight = menuLeft + $selectorMenu.width();
-
- return ( menuLeft >= 0 && menuRight <= $( window ).width() );
- " ).should == true
+ on(IMEPage).ime_input_method_menu_onscreen?.should == true
end
diff --git a/tests/browser/features/support/modules/language_module.rb
b/tests/browser/features/support/modules/language_module.rb
new file mode 100644
index 0000000..b385260
--- /dev/null
+++ b/tests/browser/features/support/modules/language_module.rb
@@ -0,0 +1,20 @@
+module LanguageModule
+ include PageObject
+
+ def language_to_code(language)
+ case language
+ when 'German'
+ 'de'
+ when 'English'
+ 'en'
+ when 'Finnish'
+ 'fi'
+ when 'Hebrew'
+ 'he'
+ when 'Hindi'
+ 'hi'
+ else
+ pending
+ end
+ end
+end
diff --git a/tests/browser/features/support/pages/ime_page.rb
b/tests/browser/features/support/pages/ime_page.rb
index e0619f9..b126f8b 100644
--- a/tests/browser/features/support/pages/ime_page.rb
+++ b/tests/browser/features/support/pages/ime_page.rb
@@ -1,5 +1,9 @@
class IMEPage
include PageObject
+ include LanguageModule
+
+ include URL
+ page_url URL.url('?<%=params[:extra]%>')
div(:input_method, class: 'imeselector imeselector-toggle')
a(:input_method_enabled, class: 'ime-name imeselector-toggle')
@@ -10,4 +14,13 @@
li(:malayalam_inscript2, data_ime_inputmethod: 'ml-inscript2')
a(:more_languages, class: 'ime-selector-more-languages')
text_field(:search_input, id: 'searchInput')
+
+ def ime_input_method_menu_onscreen?
+ @browser.execute_script( "
+ var $selectorMenu = $( '.imeselector-menu' ),
+ menuLeft = $selectorMenu.offset().left,
+ menuRight = menuLeft + $selectorMenu.width();
+
+ return ( menuLeft >= 0 && menuRight <= $( window
).width() );" )
+ end
end
diff --git a/tests/browser/features/support/pages/panel_page.rb
b/tests/browser/features/support/pages/panel_page.rb
index 7caa89f..bdb1bc4 100644
--- a/tests/browser/features/support/pages/panel_page.rb
+++ b/tests/browser/features/support/pages/panel_page.rb
@@ -1,5 +1,6 @@
class PanelPage
include PageObject
+ include LanguageModule
include URL
page_url URL.url('?<%=params[:extra]%>')
@@ -47,22 +48,6 @@
end
def interface_font
font('body')
- end
- def language_to_code(language)
- case language
- when 'German'
- 'de'
- when 'English'
- 'en'
- when 'Finnish'
- 'fi'
- when 'Hebrew'
- 'he'
- when 'Hindi'
- 'hi'
- else
- pending
- end
end
private
--
To view, visit https://gerrit.wikimedia.org/r/92630
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iff83160eb6c99d6109098e431341240a21274665
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/UniversalLanguageSelector
Gerrit-Branch: master
Gerrit-Owner: Nikerabbit <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits