From 88e5638e82a063bdbe8919ed89b80b7b44597f9a Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C5=BDeljko=20Filipin?= Date: Tue, 16 Feb 2016 12:53:06 +0100 Subject: [PATCH] Browser test: fix log in Selenium tests LoginPage is removed from mediawiki_selenium Ruby gem. This repository is the only repository that needs it, so the file is copied here. Also, user used to be logged in via the API, not really testing if log in via the web site works. It is fixed now. Bug: T127042 Change-Id: Iff85d66a9a6d3343c212fe648c589539e889a313 --- tests/browser/features/login.feature | 2 +- .../features/step_definitions/login_steps.rb | 4 +++ .../features/support/pages/login_page.rb | 27 +++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 tests/browser/features/support/pages/login_page.rb diff --git a/tests/browser/features/login.feature b/tests/browser/features/login.feature index 2cb6356429..7ed66a072f 100644 --- a/tests/browser/features/login.feature +++ b/tests/browser/features/login.feature @@ -27,5 +27,5 @@ Feature: Log in @login Scenario: Log in with valid credentials - When I am logged in + When I log in Then error box should not be visible diff --git a/tests/browser/features/step_definitions/login_steps.rb b/tests/browser/features/step_definitions/login_steps.rb index bff5bddd8a..788bfc45bc 100644 --- a/tests/browser/features/step_definitions/login_steps.rb +++ b/tests/browser/features/step_definitions/login_steps.rb @@ -13,6 +13,10 @@ Given(/^I am at Log in page$/) do visit LoginPage end +When(/^I log in$/) do + on(LoginPage).login_with(user, password, false) +end + When(/^I log in with incorrect password$/) do on(LoginPage).login_with(user, 'incorrect password', false) end diff --git a/tests/browser/features/support/pages/login_page.rb b/tests/browser/features/support/pages/login_page.rb new file mode 100644 index 0000000000..8ef1e44cd3 --- /dev/null +++ b/tests/browser/features/support/pages/login_page.rb @@ -0,0 +1,27 @@ +require 'page-object' + +class LoginPage + include PageObject + + page_url 'Special:UserLogin' + + div(:feedback, class: 'errorbox') + button(:login, id: 'wpLoginAttempt') + li(:logout, id: 'pt-logout') + text_field(:password, id: 'wpPassword1') + a(:password_strength, text: 'password strength') + a(:phishing, text: 'phishing') + text_field(:username, id: 'wpName1') + a(:username_displayed, title: /Your user page/) + + 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