From e53f9176ce960ce0f098d47c3e0f0969a4d3f1f5 Mon Sep 17 00:00:00 2001 From: Kartik Mistry Date: Thu, 12 Sep 2013 17:42:42 +0530 Subject: [PATCH] Integration tests for off-screen IME selector. Change-Id: I0b3253ba9cb19afae41612435ef0a9604814f3ed --- .../features/step_definitions/common_steps.rb | 2 ++ .../step_definitions/uls_ime_steps.rb | 20 +++++++++++++ .../features/support/pages/ascii_mono.rb | 9 ++++++ .../features/support/pages/ascii_vector.rb | 9 ++++++ tests/browser/features/uls_ime.feature | 29 +++++++++++++++++++ 5 files changed, 69 insertions(+) create mode 100644 tests/browser/features/support/pages/ascii_mono.rb create mode 100644 tests/browser/features/support/pages/ascii_vector.rb diff --git a/tests/browser/features/step_definitions/common_steps.rb b/tests/browser/features/step_definitions/common_steps.rb index 57b7e1f9..1fa46b29 100644 --- a/tests/browser/features/step_definitions/common_steps.rb +++ b/tests/browser/features/step_definitions/common_steps.rb @@ -48,6 +48,8 @@ def language_to_code(language) 'en' when 'Finnish' 'fi' + when 'Hebrew' + 'he' else pending end diff --git a/tests/browser/features/step_definitions/uls_ime_steps.rb b/tests/browser/features/step_definitions/uls_ime_steps.rb index c5603aed..acd9f3c0 100644 --- a/tests/browser/features/step_definitions/uls_ime_steps.rb +++ b/tests/browser/features/step_definitions/uls_ime_steps.rb @@ -70,3 +70,23 @@ Then(/^in it there must be an element with Malayalam text$/) do # 'input_method_enabled' alone only returns [] on(RandomPage).input_method_enabled_element.text.should == 'ഇൻസ്ക്രിപ്റ്റ് 2' end + +When(/^I visit page in Vector skin$/) do + sleep 1.0; + visit(AsciiVector) +end + +When(/^I visit page in Monobook skin$/) do + sleep 1.0; + visit(AsciiMono) +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 +end diff --git a/tests/browser/features/support/pages/ascii_mono.rb b/tests/browser/features/support/pages/ascii_mono.rb new file mode 100644 index 00000000..43211c7a --- /dev/null +++ b/tests/browser/features/support/pages/ascii_mono.rb @@ -0,0 +1,9 @@ +class AsciiMono + include PageObject + + include URL + def self.url + URL.url('ASCII?useskin=monobook') + end + page_url url +end diff --git a/tests/browser/features/support/pages/ascii_vector.rb b/tests/browser/features/support/pages/ascii_vector.rb new file mode 100644 index 00000000..9eca485e --- /dev/null +++ b/tests/browser/features/support/pages/ascii_vector.rb @@ -0,0 +1,9 @@ +class AsciiVector + include PageObject + + include URL + def self.url + URL.url('ASCII?useskin=vector') + end + page_url url +end diff --git a/tests/browser/features/uls_ime.feature b/tests/browser/features/uls_ime.feature index 31f8c489..0f3b1091 100644 --- a/tests/browser/features/uls_ime.feature +++ b/tests/browser/features/uls_ime.feature @@ -49,3 +49,32 @@ input method. And I press Control-M 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 + 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