Update mediawiki_selenium Ruby gem to the latest version

Bug: 117976
Change-Id: I567880afcf7dc5d70e6d4edef1db16d7923ae31c
This commit is contained in:
Željko Filipin
2015-11-18 11:50:39 +01:00
parent 6fb3cff6d2
commit 0aa649e084
13 changed files with 76 additions and 43 deletions

View File

@@ -1,4 +1,4 @@
source "https://rubygems.org" source "https://rubygems.org"
gem 'mediawiki_selenium', '~> 0.4.2' gem 'mediawiki_selenium', '~> 1.6.2'
gem "rubocop", "~> 0.29.1", require: false gem "rubocop", "~> 0.29.1", require: false

View File

@@ -5,7 +5,7 @@ GEM
astrolabe (1.3.1) astrolabe (1.3.1)
parser (~> 2.2) parser (~> 2.2)
builder (3.2.2) builder (3.2.2)
childprocess (0.5.6) childprocess (0.5.7)
ffi (~> 1.0, >= 1.0.11) ffi (~> 1.0, >= 1.0.11)
cucumber (1.3.20) cucumber (1.3.20)
builder (>= 2.1.2) builder (>= 2.1.2)
@@ -17,11 +17,11 @@ GEM
faker (>= 1.1.2) faker (>= 1.1.2)
yml_reader (>= 0.4) yml_reader (>= 0.4)
diff-lcs (1.2.5) diff-lcs (1.2.5)
domain_name (0.5.24) domain_name (0.5.25)
unf (>= 0.0.5, < 1.0.0) unf (>= 0.0.5, < 1.0.0)
faker (1.5.0) faker (1.5.0)
i18n (~> 0.5) i18n (~> 0.5)
faraday (0.9.1) faraday (0.9.2)
multipart-post (>= 1.2, < 3) multipart-post (>= 1.2, < 3)
faraday-cookie_jar (0.0.6) faraday-cookie_jar (0.0.6)
faraday (>= 0.7.4) faraday (>= 0.7.4)
@@ -29,7 +29,7 @@ GEM
ffi (1.9.10) ffi (1.9.10)
gherkin (2.12.2) gherkin (2.12.2)
multi_json (~> 1.3) multi_json (~> 1.3)
headless (1.0.2) headless (2.2.0)
http-cookie (1.0.2) http-cookie (1.0.2)
domain_name (~> 0.5) domain_name (~> 0.5)
i18n (0.7.0) i18n (0.7.0)
@@ -37,20 +37,22 @@ GEM
mediawiki_api (0.5.0) mediawiki_api (0.5.0)
faraday (~> 0.9, >= 0.9.0) faraday (~> 0.9, >= 0.9.0)
faraday-cookie_jar (~> 0.0, >= 0.0.6) faraday-cookie_jar (~> 0.0, >= 0.0.6)
mediawiki_selenium (0.4.3) mediawiki_selenium (1.6.2)
cucumber (~> 1.3, >= 1.3.10) cucumber (~> 1.3, >= 1.3.20)
headless (~> 1.0, >= 1.0.1) headless (~> 2.0, >= 2.1.0)
json (~> 1.8, >= 1.8.1) json (~> 1.8, >= 1.8.1)
mediawiki_api (~> 0.2, >= 0.2.1) mediawiki_api (~> 0.5, >= 0.5.0)
page-object (~> 1.0) page-object (~> 1.0)
rest-client (~> 1.6, >= 1.6.7) rest-client (~> 1.6, >= 1.6.7)
rspec-core (~> 2.14, >= 2.14.4)
rspec-expectations (~> 2.14, >= 2.14.4) rspec-expectations (~> 2.14, >= 2.14.4)
syntax (~> 1.2, >= 1.2.0) syntax (~> 1.2, >= 1.2.0)
thor (~> 0.19, >= 0.19.1)
mime-types (2.6.2) mime-types (2.6.2)
multi_json (1.11.2) multi_json (1.11.2)
multi_test (0.1.2) multi_test (0.1.2)
multipart-post (2.0.0) multipart-post (2.0.0)
netrc (0.10.3) netrc (0.11.0)
page-object (1.1.0) page-object (1.1.0)
page_navigation (>= 0.9) page_navigation (>= 0.9)
selenium-webdriver (>= 2.44.0) selenium-webdriver (>= 2.44.0)
@@ -65,6 +67,7 @@ GEM
http-cookie (>= 1.0.2, < 2.0) http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 3.0) mime-types (>= 1.16, < 3.0)
netrc (~> 0.7) netrc (~> 0.7)
rspec-core (2.99.2)
rspec-expectations (2.99.2) rspec-expectations (2.99.2)
diff-lcs (>= 1.1.3, < 2.0) diff-lcs (>= 1.1.3, < 2.0)
rubocop (0.29.1) rubocop (0.29.1)
@@ -75,16 +78,17 @@ GEM
ruby-progressbar (~> 1.4) ruby-progressbar (~> 1.4)
ruby-progressbar (1.7.5) ruby-progressbar (1.7.5)
rubyzip (1.1.7) rubyzip (1.1.7)
selenium-webdriver (2.47.1) selenium-webdriver (2.48.1)
childprocess (~> 0.5) childprocess (~> 0.5)
multi_json (~> 1.0) multi_json (~> 1.0)
rubyzip (~> 1.0) rubyzip (~> 1.0)
websocket (~> 1.0) websocket (~> 1.0)
syntax (1.2.0) syntax (1.2.0)
thor (0.19.1)
unf (0.1.4) unf (0.1.4)
unf_ext unf_ext
unf_ext (0.0.7.1) unf_ext (0.0.7.1)
watir-webdriver (0.8.0) watir-webdriver (0.9.1)
selenium-webdriver (>= 2.46.2) selenium-webdriver (>= 2.46.2)
websocket (1.2.2) websocket (1.2.2)
yml_reader (0.5) yml_reader (0.5)
@@ -93,5 +97,5 @@ PLATFORMS
ruby ruby
DEPENDENCIES DEPENDENCIES
mediawiki_selenium (~> 0.4.2) mediawiki_selenium (~> 1.6.2)
rubocop (~> 0.29.1) rubocop (~> 0.29.1)

View File

@@ -0,0 +1,39 @@
# Customize this configuration as necessary to provide defaults for various
# test environments.
#
# The set of defaults to use is determined by the MEDIAWIKI_ENVIRONMENT
# environment variable.
#
# export MEDIAWIKI_ENVIRONMENT=mw-vagrant-host
# bundle exec cucumber
#
# Additional variables set by the environment will override the corresponding
# defaults defined here.
#
# export MEDIAWIKI_ENVIRONMENT=mw-vagrant-host
# export MEDIAWIKI_USER=Selenium_user2
# bundle exec cucumber
#
mw-vagrant-host: &default
user_factory: true
mediawiki_url: http://127.0.0.1:8080/wiki/
mw-vagrant-guest:
user_factory: true
mediawiki_url: http://127.0.0.1/wiki/
beta:
mediawiki_url: http://en.wikipedia.beta.wmflabs.org/wiki/
mediawiki_user: Selenium_user
# mediawiki_password: SET THIS IN THE ENVIRONMENT!
test2:
mediawiki_url: http://test2.wikipedia.org/wiki/
mediawiki_user: Selenium_user
# mediawiki_password: SET THIS IN THE ENVIRONMENT!
integration:
user_factory: true
# mediawiki_url: THIS WILL BE SET BY JENKINS
default: *default

View File

@@ -1,6 +1,6 @@
Given(/^that my browser's accept language is (.+)$/) do |language| Given(/^that my browser's accept language is (.+)$/) do |language|
@browser = browser(test_name(@scenario), {language: language}) browser = browser(test_name(@scenario), {language: language})
$session_id = @browser.driver.instance_variable_get(:@bridge).session_id $session_id = browser.driver.instance_variable_get(:@bridge).session_id
end end
When(/^I am at the preferences page$/) do When(/^I am at the preferences page$/) do

View File

@@ -3,7 +3,7 @@
Given(/^I am on a wiki in Kotava language$/) do Given(/^I am on a wiki in Kotava language$/) do
step "I am at the main page" step "I am at the main page"
# Fake a Kotava Wiki # Fake a Kotava Wiki
@browser.execute_script( "mw.config.set( 'wgContentLanguage', 'avk' )" ) browser.execute_script( "mw.config.set( 'wgContentLanguage', 'avk' )" )
end end
When(/^I click on an input box$/) do When(/^I click on an input box$/) do
@@ -55,7 +55,7 @@ When(/^I press Control-M$/) do
end end
When(/^I reload the page$/) do When(/^I reload the page$/) do
@browser.refresh browser.refresh
end end
Then(/^in it there must be an element with Malayalam text$/) do Then(/^in it there must be an element with Malayalam text$/) do

View File

@@ -1,5 +1,5 @@
Then(/^I see "(.*?)" as the name of the content language$/) do |text| Then(/^I see "(.*?)" as the name of the content language$/) do |text|
@browser.span(:text => "#{text}").should be_visible browser.span(:text => "#{text}").should be_visible
end end
When(/^I open the Universal Language Selector$/) do When(/^I open the Universal Language Selector$/) do

View File

@@ -1 +1,3 @@
require "mediawiki_selenium" require 'mediawiki_selenium/cucumber'
require 'mediawiki_selenium/pages'
require 'mediawiki_selenium/step_definitions'

View File

@@ -2,8 +2,7 @@ class IMEPage
include PageObject include PageObject
include LanguageModule include LanguageModule
include URL page_url "?<%=params[:extra]%>"
page_url URL.url("?<%=params[:extra]%>")
div(:input_method, class: "imeselector imeselector-toggle") div(:input_method, class: "imeselector imeselector-toggle")
a(:input_method_enabled, class: "ime-name imeselector-toggle") a(:input_method_enabled, class: "ime-name imeselector-toggle")
@@ -16,7 +15,7 @@ class IMEPage
text_field(:search_input, id: "searchInput") text_field(:search_input, id: "searchInput")
def ime_input_method_menu_onscreen? def ime_input_method_menu_onscreen?
@browser.execute_script( " browser.execute_script( "
var $selectorMenu = $( '.imeselector-menu' ), var $selectorMenu = $( '.imeselector-menu' ),
menuLeft = $selectorMenu.offset().left, menuLeft = $selectorMenu.offset().left,
menuRight = menuLeft + $selectorMenu.width(); menuRight = menuLeft + $selectorMenu.width();

View File

@@ -2,9 +2,5 @@ class InterlanguagePage
include PageObject include PageObject
include InterlanguagePageModule include InterlanguagePageModule
include URL page_url "Boleyn_family"
def self.url
URL.url("Boleyn_family")
end
page_url url
end end

View File

@@ -1,8 +1,7 @@
class MainPage class MainPage
include PageObject include PageObject
include URL page_url "Main_Page"
page_url URL.url("Main_Page")
span(:cog, title: "Language settings") span(:cog, title: "Language settings")
a(:create_a_book, text: "Create a book") a(:create_a_book, text: "Create a book")
@@ -18,7 +17,7 @@ class MainPage
button(:search_button, id: "searchButton") button(:search_button, id: "searchButton")
def non_interlanguage_links_use_autonym_font? def non_interlanguage_links_use_autonym_font?
@browser.elements(css: "#p-lang li:not(.interlanguage-link)").collect do |element| browser.elements(css: "#p-lang li:not(.interlanguage-link)").collect do |element|
element.style("font-family") element.style("font-family")
end.to_s.match(/Autonym/) != nil end.to_s.match(/Autonym/) != nil
end end

View File

@@ -1,11 +1,7 @@
class NoInterlanguagePage class NoInterlanguagePage
include PageObject include PageObject
include URL page_url "Think_Like_a_Cat"
def self.url
URL.url("Think_Like_a_Cat")
end
page_url url
include InterlanguagePageModule include InterlanguagePageModule
end end

View File

@@ -2,8 +2,7 @@ class PanelPage
include PageObject include PageObject
include LanguageModule include LanguageModule
include URL page_url "?<%=params[:extra]%>"
page_url URL.url("?<%=params[:extra]%>")
div(:uls, class: "uls-menu") div(:uls, class: "uls-menu")
span(:uls_button_close, id: "uls-close") span(:uls_button_close, id: "uls-close")
@@ -48,7 +47,7 @@ class PanelPage
div(:interface, id: "footer") div(:interface, id: "footer")
def uls_language_name_item(language) def uls_language_name_item(language)
@browser.element(css: ".uls-language-block li[lang=#{language}] a") browser.element(css: ".uls-language-block li[lang=#{language}] a")
end end
def content_font def content_font
@@ -60,7 +59,7 @@ class PanelPage
end end
def uls_onscreen? def uls_onscreen?
@browser.execute_script( " browser.execute_script( "
var $menu = $( '.uls-menu' ), var $menu = $( '.uls-menu' ),
$window = $( window ), $window = $( window ),
top = $menu.offset().top, top = $menu.offset().top,
@@ -71,11 +70,11 @@ class PanelPage
end end
def webfonts_library_loaded def webfonts_library_loaded
@browser.execute_script( "return ( $( 'body' ).data( 'webfonts' ) !== undefined )" ) browser.execute_script( "return ( $( 'body' ).data( 'webfonts' ) !== undefined )" )
end 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' );" )
end end
end end

View File

@@ -1,8 +1,7 @@
class PreferencesPage class PreferencesPage
include PageObject include PageObject
include URL page_url "Special:Preferences"
page_url URL.url("Special:Preferences")
select(:set_interface_language, id: "mw-input-wplanguage") select(:set_interface_language, id: "mw-input-wplanguage")
button(:save, id: "prefcontrol") button(:save, id: "prefcontrol")