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

Reply via email to