Update tests to Selenium 3
authorŽeljko Filipin <zeljko.filipin@gmail.com>
Fri, 17 Feb 2017 12:34:06 +0000 (13:34 +0100)
committerŽeljko Filipin <zeljko.filipin@gmail.com>
Mon, 27 Feb 2017 14:11:49 +0000 (15:11 +0100)
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
Gemfile.lock
tests/browser/features/step_definitions/login_steps.rb
tests/browser/features/step_definitions/preferences_appearance_steps.rb
tests/browser/features/step_definitions/preferences_editing_steps.rb
tests/browser/features/step_definitions/preferences_user_profile_steps.rb
tests/browser/features/support/pages/login_page.rb

diff --git a/Gemfile b/Gemfile
index 8bbd00f..ee0cec0 100644 (file)
--- 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
index 8243874..4992303 100644 (file)
@@ -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
index 14a2d76..c13279e 100644 (file)
@@ -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
index 8ffdaf1..b58f7a4 100644 (file)
@@ -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
index f691ffd..96dc491 100644 (file)
@@ -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
index 5660d49..6d28ce5 100644 (file)
@@ -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
index c119b38..32fc2bb 100644 (file)
@@ -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