jenkins-bot has submitted this change and it was merged.
Change subject: Browser tests: Refresh flow page until optin process is finished
......................................................................
Browser tests: Refresh flow page until optin process is finished
* Also using refresh_until for recent changes tests
Change-Id: Ib379980ae78fe86c120c98c7db2fa380fd37c646
---
M tests/browser/features/step_definitions/flow_in_recent_changes_steps.rb
M tests/browser/features/step_definitions/opt_in_steps.rb
M tests/browser/features/step_definitions/special_enable_flow_steps.rb
D tests/browser/features/support/div_extension.rb
M tests/browser/features/support/env.rb
A tests/browser/features/support/extensions.rb
6 files changed, 49 insertions(+), 29 deletions(-)
Approvals:
Mooeypoo: Looks good to me, approved
jenkins-bot: Verified
diff --git
a/tests/browser/features/step_definitions/flow_in_recent_changes_steps.rb
b/tests/browser/features/step_definitions/flow_in_recent_changes_steps.rb
index 7828377..4b55c50 100644
--- a/tests/browser/features/step_definitions/flow_in_recent_changes_steps.rb
+++ b/tests/browser/features/step_definitions/flow_in_recent_changes_steps.rb
@@ -3,9 +3,13 @@
end
Then(/^the new topic should be in the Recent Changes page$/) do
- expect(on(RecentChangesPage).recent_changes_element.when_present.text).to
match @topic_string
+ on(RecentChangesPage) do |page|
+ page.refresh_until { page.recent_changes.match @topic_string }
+ end
end
Then(/^the new title should be in the Recent Changes page$/) do
- expect(on(RecentChangesPage).recent_changes_element.when_present.text).to
match @edited_topic_string
+ on(RecentChangesPage) do |page|
+ page.refresh_until { page.recent_changes.match @edited_topic_string }
+ end
end
diff --git a/tests/browser/features/step_definitions/opt_in_steps.rb
b/tests/browser/features/step_definitions/opt_in_steps.rb
index 7042cb1..981fb61 100644
--- a/tests/browser/features/step_definitions/opt_in_steps.rb
+++ b/tests/browser/features/step_definitions/opt_in_steps.rb
@@ -17,7 +17,7 @@
Then(/^my talk page is a Flow board$/) do
visit(UserTalkPage, using_params: { username: @username }) do |page|
- page.flow.board_element.when_present
+ page.refresh_until { page.flow.board_element.visible? }
end
end
@@ -56,8 +56,9 @@
Then(/^my wikitext talk page is restored$/) do
talk_page_link = "User_talk:#{@username}".gsub '_', ' '
visit(UserTalkPage, using_params: { username: @username }) do |page|
- page.content_element.when_present
- expect(page.content).to match @talk_page_content
+ page.refresh_until do
+ page.content.match @talk_page_content
+ end
expect(page.content).to_not match talk_page_link
end
end
@@ -66,6 +67,7 @@
flow_archive_name = "./User_talk:#{@username}/Flow_Archive_1"
talk_page_link = "User_talk:#{@username}".gsub '_', ' '
visit(WikiPage, using_params: { page: flow_archive_name }) do |page|
+ page.refresh_until { page.flow.board_element.visible? }
page.flow.board_element.when_present
expect(page.flow.header).to_not match talk_page_link
end
@@ -74,6 +76,7 @@
Given(/^I have used the Flow beta feature before$/) do
step 'my talk page has wiktext content'
step 'I enable Flow beta feature'
+ step 'my talk page is a Flow board'
@topic_title = @data_manager.get 'title'
api.action('flow', submodule: 'new-topic', page: "User_talk:#{@username}",
nttopic: @topic_title, ntcontent: 'created via API')
step 'I disable Flow beta feature'
@@ -82,15 +85,17 @@
Then(/^my talk page is my old Flow board$/) do
archive_name = "User_talk:#{@username}/Archive_1".gsub '_', ' '
visit(UserTalkPage, using_params: { username: @username }) do |page|
+ page.refresh_until do
+ page.flow.header_element.exists? && page.flow.header.match(archive_name)
+ end
expect(page.content_element.when_present.text).to match @topic_title
- expect(page.flow.header).to match archive_name
end
end
Then(/^my flow board contains a link to my archived talk page$/) do
archive_name = "User_talk:#{@username}/Archive_1".gsub '_', ' '
visit(UserTalkPage, using_params: { username: @username }) do |page|
- page.flow.board_element.when_present
+ page.refresh_until { page.flow.board_element.visible? }
expect(page.flow.header).to match archive_name
end
end
diff --git
a/tests/browser/features/step_definitions/special_enable_flow_steps.rb
b/tests/browser/features/step_definitions/special_enable_flow_steps.rb
index a15d5f9..de54c65 100644
--- a/tests/browser/features/step_definitions/special_enable_flow_steps.rb
+++ b/tests/browser/features/step_definitions/special_enable_flow_steps.rb
@@ -71,6 +71,7 @@
Then(/^the board description contains the templates from my talk page$/) do
on(AbstractFlowPage) do |page|
+ page.refresh_until { page.description.content_element.visible? }
description = page.description.content_element.when_present.text
expect(description).to match 'Template:Template before first heading'
expect(description).to_not match 'Template:Template after first heading'
diff --git a/tests/browser/features/support/div_extension.rb
b/tests/browser/features/support/div_extension.rb
deleted file mode 100644
index 59690e8..0000000
--- a/tests/browser/features/support/div_extension.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-require "watir-webdriver/wait"
-
-module Watir
- class Div
- def clear
- send_keys [:command, 'a'], :backspace
- send_keys [:control, 'a'], :backspace
- end
- end
-
- class TextArea
- def when_enabled
- Watir::Wait.until { !self.disabled? }
- self
- end
-
- def text
- value
- end
- end
-end
diff --git a/tests/browser/features/support/env.rb
b/tests/browser/features/support/env.rb
index 8e9b3f5..c896240 100644
--- a/tests/browser/features/support/env.rb
+++ b/tests/browser/features/support/env.rb
@@ -3,7 +3,7 @@
require 'mediawiki_selenium/support'
require 'mediawiki_selenium/step_definitions'
-require_relative 'div_extension'
+require_relative 'extensions'
def env_or_default(key, default)
ENV[key].nil? ? default : ENV[key].to_i
diff --git a/tests/browser/features/support/extensions.rb
b/tests/browser/features/support/extensions.rb
new file mode 100644
index 0000000..2f5188a
--- /dev/null
+++ b/tests/browser/features/support/extensions.rb
@@ -0,0 +1,31 @@
+require "watir-webdriver/wait"
+
+module Watir
+ class Div
+ def clear
+ send_keys [:command, 'a'], :backspace
+ send_keys [:control, 'a'], :backspace
+ end
+ end
+
+ class TextArea
+ def when_enabled
+ Watir::Wait.until { !self.disabled? }
+ self
+ end
+
+ def text
+ value
+ end
+ end
+end
+
+module PageObject
+ def refresh_until(timeout = PageObject.default_page_wait, message = nil)
+ platform.wait_until(timeout, message) do
+ yield.tap do |result|
+ refresh unless result
+ end
+ end
+ end
+end
--
To view, visit https://gerrit.wikimedia.org/r/240901
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ib379980ae78fe86c120c98c7db2fa380fd37c646
Gerrit-PatchSet: 10
Gerrit-Project: mediawiki/extensions/Flow
Gerrit-Branch: master
Gerrit-Owner: Sbisson <[email protected]>
Gerrit-Reviewer: Mooeypoo <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits