From 8d6e0418ef6a89716ce5a1affe6fa88505a0f332 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C5=BDeljko=20Filipin?= Date: Fri, 17 Feb 2017 13:34:06 +0100 Subject: [PATCH] Update tests to Selenium 3 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 --- Gemfile | 2 +- Gemfile.lock | 48 +++++++++---------- .../features/step_definitions/login_steps.rb | 4 +- .../preferences_appearance_steps.rb | 2 +- .../preferences_editing_steps.rb | 22 ++++----- .../preferences_user_profile_steps.rb | 2 +- .../features/support/pages/login_page.rb | 21 -------- 7 files changed, 40 insertions(+), 61 deletions(-) diff --git a/Gemfile b/Gemfile index 8bbd00fd6d..ee0cec0480 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,5 @@ 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 diff --git a/Gemfile.lock b/Gemfile.lock index 824387491a..4992303258 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -4,8 +4,8 @@ GEM 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) @@ -16,40 +16,40 @@ GEM 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) @@ -58,11 +58,11 @@ GEM 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) @@ -84,8 +84,8 @@ GEM 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) @@ -94,18 +94,18 @@ GEM 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 diff --git a/tests/browser/features/step_definitions/login_steps.rb b/tests/browser/features/step_definitions/login_steps.rb index 14a2d76ad1..c13279efc4 100644 --- a/tests/browser/features/step_definitions/login_steps.rb +++ b/tests/browser/features/step_definitions/login_steps.rb @@ -40,7 +40,7 @@ end 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 @@ -58,7 +58,7 @@ Then(/^Password element should be there$/) do 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 diff --git a/tests/browser/features/step_definitions/preferences_appearance_steps.rb b/tests/browser/features/step_definitions/preferences_appearance_steps.rb index 8ffdaf1db7..b58f7a4c31 100644 --- a/tests/browser/features/step_definitions/preferences_appearance_steps.rb +++ b/tests/browser/features/step_definitions/preferences_appearance_steps.rb @@ -1,5 +1,5 @@ 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 diff --git a/tests/browser/features/step_definitions/preferences_editing_steps.rb b/tests/browser/features/step_definitions/preferences_editing_steps.rb index f691ffdc8d..96dc491a57 100644 --- a/tests/browser/features/step_definitions/preferences_editing_steps.rb +++ b/tests/browser/features/step_definitions/preferences_editing_steps.rb @@ -1,43 +1,43 @@ 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 diff --git a/tests/browser/features/step_definitions/preferences_user_profile_steps.rb b/tests/browser/features/step_definitions/preferences_user_profile_steps.rb index 5660d49138..6d28ce5b92 100644 --- a/tests/browser/features/step_definitions/preferences_user_profile_steps.rb +++ b/tests/browser/features/step_definitions/preferences_user_profile_steps.rb @@ -1,5 +1,5 @@ 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 diff --git a/tests/browser/features/support/pages/login_page.rb b/tests/browser/features/support/pages/login_page.rb index c119b38af1..32fc2bbca2 100644 --- a/tests/browser/features/support/pages/login_page.rb +++ b/tests/browser/features/support/pages/login_page.rb @@ -3,28 +3,7 @@ require 'page-object' 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 -- 2.20.1