Selenium is dependency of mediawiki_selenium.
Method #when_present is deprecated in Watir 6.
http://watir.github.io/watir-6-faq/
LoginPage is already in mediawiki_selenium, so just the additions are
left here.
Bug: T158074
Change-Id: Icf596f7d4a8275df27e3ccaf7da72033bcfd8ead
Depends-On: I6d5067390953c9c9a147215b154217c5ab24d1a9
source 'https://rubygems.org'
-gem 'mediawiki_selenium', '~> 1.7', '>= 1.7.4'
+gem 'mediawiki_selenium', '~> 1.8'
gem 'rake', '~> 11.1', '>= 11.1.1'
gem 'rubocop', '~> 0.32.1', require: false
ast (2.0.0)
astrolabe (1.3.0)
parser (>= 2.2.0.pre.3, < 3.0)
- builder (3.2.2)
- childprocess (0.5.9)
+ builder (3.2.3)
+ childprocess (0.6.2)
ffi (~> 1.0, >= 1.0.11)
cucumber (1.3.20)
builder (>= 2.1.2)
data_magic (1.0)
faker (>= 1.1.2)
yml_reader (>= 0.6)
- diff-lcs (1.2.5)
- domain_name (0.5.20161129)
+ diff-lcs (1.3)
+ domain_name (0.5.20170223)
unf (>= 0.0.5, < 1.0.0)
- faker (1.7.1)
+ faker (1.7.3)
i18n (~> 0.5)
- faraday (0.10.0)
+ faraday (0.11.0)
multipart-post (>= 1.2, < 3)
faraday-cookie_jar (0.0.6)
faraday (>= 0.7.4)
http-cookie (~> 1.0.0)
- faraday_middleware (0.10.1)
+ faraday_middleware (0.11.0.1)
faraday (>= 0.7.4, < 1.0)
- ffi (1.9.14)
+ ffi (1.9.17)
gherkin (2.12.2)
multi_json (~> 1.3)
headless (2.3.1)
http-cookie (1.0.3)
domain_name (~> 0.5)
- i18n (0.7.0)
- json (2.0.2)
- mediawiki_api (0.7.0)
+ i18n (0.8.1)
+ json (2.0.3)
+ mediawiki_api (0.7.1)
faraday (~> 0.9, >= 0.9.0)
faraday-cookie_jar (~> 0.0, >= 0.0.6)
faraday_middleware (~> 0.10, >= 0.10.0)
- mediawiki_selenium (1.7.4)
+ mediawiki_selenium (1.8.0)
cucumber (~> 1.3, >= 1.3.20)
headless (~> 2.0, >= 2.1.0)
json (~> 2.0, >= 2.0.2)
mediawiki_api (~> 0.7, >= 0.7.0)
- page-object (~> 1.0)
+ page-object (~> 2.0)
rest-client (~> 1.6, >= 1.6.7)
rspec-core (~> 2.14, >= 2.14.4)
rspec-expectations (~> 2.14, >= 2.14.4)
- selenium-webdriver (< 3)
+ selenium-webdriver (~> 3.1.0)
syntax (~> 1.2, >= 1.2.0)
thor (~> 0.19, >= 0.19.1)
mime-types (2.99.3)
multipart-post (2.0.0)
net-http-persistent (2.9.4)
netrc (0.11.0)
- page-object (1.2.2)
+ page-object (2.0.0)
net-http-persistent (~> 2.9.4)
page_navigation (>= 0.9)
- selenium-webdriver (>= 2.53.0)
- watir-webdriver (>= 0.6.11, < 0.9.9)
+ selenium-webdriver (~> 3.0)
+ watir (~> 6.0)
page_navigation (0.10)
data_magic (>= 0.22)
parser (2.2.2.6)
rainbow (>= 1.99.1, < 3.0)
ruby-progressbar (~> 1.4)
ruby-progressbar (1.7.5)
- rubyzip (1.2.0)
- selenium-webdriver (2.53.4)
+ rubyzip (1.2.1)
+ selenium-webdriver (3.1.0)
childprocess (~> 0.5)
rubyzip (~> 1.0)
websocket (~> 1.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.7.2)
- watir-webdriver (0.9.3)
- selenium-webdriver (>= 2.46.2)
- websocket (1.2.3)
+ watir (6.2.0)
+ selenium-webdriver (~> 3.0)
+ websocket (1.2.4)
yml_reader (0.7)
PLATFORMS
ruby
DEPENDENCIES
- mediawiki_selenium (~> 1.7, >= 1.7.4)
+ mediawiki_selenium (~> 1.8)
rake (~> 11.1, >= 11.1.1)
rubocop (~> 0.32.1)
BUNDLED WITH
- 1.13.7
+ 1.14.5
Then(/^feedback should be (.+)$/) do |feedback|
on(LoginPage) do |page|
- page.feedback_element.when_present.click
+ page.feedback_element.click
expect(page.feedback).to match Regexp.escape(feedback)
end
end
end
Then(/^there should be a link to (.+)$/) do |text|
- expect(on(LoginPage).username_displayed_element.when_present.text).to eq text
+ expect(on(LoginPage).username_displayed_element.text).to eq text
end
Then(/^Username element should be there$/) do
When(/^I click Appearance$/) do
- visit(PreferencesPage).appearance_link_element.when_present.click
+ visit(PreferencesPage).appearance_link_element.click
end
When(/^I navigate to Preferences$/) do
When(/^I click Editing$/) do
- visit(PreferencesPage).editing_link_element.when_present.click
+ visit(PreferencesPage).editing_link_element.click
end
Then(/^I can select edit area font style$/) do
- expect(on(PreferencesEditingPage).edit_area_font_style_select_element.when_present).to exist
+ expect(on(PreferencesEditingPage).edit_area_font_style_select_element).to exist
end
Then(/^I can select live preview$/) do
- expect(on(PreferencesEditingPage).live_preview_check_element.when_present).to exist
+ expect(on(PreferencesEditingPage).live_preview_check_element).to exist
end
Then(/^I can select section editing by double clicking$/) do
- expect(on(PreferencesEditingPage).edit_section_double_click_check_element.when_present).to exist
+ expect(on(PreferencesEditingPage).edit_section_double_click_check_element).to exist
end
Then(/^I can select section editing by right clicking$/) do
- expect(on(PreferencesEditingPage).edit_section_right_click_check_element.when_present).to exist
+ expect(on(PreferencesEditingPage).edit_section_right_click_check_element).to exist
end
Then(/^I can select section editing via edit links$/) do
- expect(on(PreferencesEditingPage).edit_section_edit_link_element.when_present).to exist
+ expect(on(PreferencesEditingPage).edit_section_edit_link_element).to exist
end
Then(/^I can select show edit toolbar$/) do
- expect(on(PreferencesEditingPage).show_edit_toolbar_check_element.when_present).to exist
+ expect(on(PreferencesEditingPage).show_edit_toolbar_check_element).to exist
end
Then(/^I can select show preview before edit box$/) do
- expect(on(PreferencesEditingPage).preview_on_top_check_element.when_present).to exist
+ expect(on(PreferencesEditingPage).preview_on_top_check_element).to exist
end
Then(/^I can select show preview on first edit$/) do
- expect(on(PreferencesEditingPage).preview_on_first_check_element.when_present).to exist
+ expect(on(PreferencesEditingPage).preview_on_first_check_element).to exist
end
Then(/^I can select to prompt me when entering a blank edit summary$/) do
- expect(on(PreferencesEditingPage).forced_edit_summary_check_element.when_present).to exist
+ expect(on(PreferencesEditingPage).forced_edit_summary_check_element).to exist
end
Then(/^I can select to warn me when I leave an edit page with unsaved changes$/) do
- expect(on(PreferencesEditingPage).unsaved_changes_check_element.when_present).to exist
+ expect(on(PreferencesEditingPage).unsaved_changes_check_element).to exist
end
When(/^I click User profile$/) do
- visit(PreferencesPage).user_profile_link_element.when_present.click
+ visit(PreferencesPage).user_profile_link_element.click
end
Then(/^I can change my gender$/) do
class LoginPage
include PageObject
- page_url 'Special:UserLogin'
-
element(:error_message, css: 'div#userloginForm div.error')
- div(:feedback, class: 'errorbox')
- button(:login, id: 'wpLoginAttempt')
- li(:logout, id: 'pt-logout')
- text_field(:password, id: 'wpPassword1')
element(:password_error, css: 'input#wpPassword1:required:invalid')
- a(:password_strength, text: 'password strength')
- a(:phishing, text: 'phishing')
- text_field(:username, id: 'wpName1')
- a(:username_displayed, title: /Your user page/)
element(:username_error, css: 'input#wpName1:required:invalid')
-
- def logged_in_as_element
- @browser.div(id: 'mw-content-text').p.b
- end
-
- def login_with(username, password, wait_for_logout_element = true)
- username_element.when_present.send_keys(username)
- password_element.when_present.send_keys(password)
- login_element.when_present.click
- logout_element.when_present(10) if wait_for_logout_element
- end
end