Cmcmahon has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/160995

Change subject: QA: refactor VE editing
......................................................................

QA: refactor VE editing

Using the type_into method in this way causes a couple of issues:

* one is that it is only used once and so no need to abstract it
* another is that having expectations in the steps breaks the
Page Object design pattern
* because of how the page is used, Selenium sometimes encounters
stale elements [1]
* and sending a space to VE fixes a Selenium-Firefox problem [2]

[1] 
https://integration.wikimedia.org/ci/view/BrowserTests/view/-All/job/browsertests-MobileFrontend-en.m.wikipedia.beta.wmflabs.org-linux-chrome-sauce/207/testReport/junit/(root)/VisualEditor%20Mobile/I_can_edit_a_page_using_VisualEditor/

[2] 
https://integration.wikimedia.org/ci/view/BrowserTests/view/-All/job/browsertests-MobileFrontend-en.m.wikipedia.beta.wmflabs.org-linux-firefox-sauce/243/testReport/(root)/VisualEditor%20Mobile/I_can_edit_a_page_using_VisualEditor/

Change-Id: I3294e5a35873d6bd528dd8bd5df04d35c3b1070c
---
M tests/browser/features/step_definitions/editor_ve_steps.rb
M tests/browser/features/support/pages/article_page.rb
2 files changed, 8 insertions(+), 23 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend 
refs/changes/95/160995/1

diff --git a/tests/browser/features/step_definitions/editor_ve_steps.rb 
b/tests/browser/features/step_definitions/editor_ve_steps.rb
index 9906265..8c7db9e 100644
--- a/tests/browser/features/step_definitions/editor_ve_steps.rb
+++ b/tests/browser/features/step_definitions/editor_ve_steps.rb
@@ -30,24 +30,22 @@
 
 When(/^I edit the article using VisualEditor$/) do
   on(ArticlePage) do |page|
-    @article_text = page.type_into(:editor_ve)
-
-    expect(page.editor_ve).to include(@article_text)
-
+    @text_to_type="text-#{rand(32 ** 8).to_s(32)}"
+    #page.editor_ve_element.when_present.click
+    page.editor_ve_element.when_present.send_keys(" ")
+    page.editor_ve_element.send_keys(@text_to_type)
     page.wait_until { page.continue_button_element.enabled? }
     page.continue_button
-
     page.wait_until { page.submit_button_element.enabled? }
     page.confirm(true) { page.submit_button }
+    page.wait_until { page.toast.include?("Your edit was saved") }
+    page.wait_until { page.content_element.visible? }
   end
 end
 
 Then(/^I see the edit reflected in the article content$/) do
   on(ArticlePage) do |page|
-    page.wait_until { page.toast.include?("Your edit was saved") }
-    page.wait_until { page.content_element.visible? }
-
-    expect(page.content).to include(@article_text)
+    expect(page.content).to include(@text_to_type)
   end
 end
 
diff --git a/tests/browser/features/support/pages/article_page.rb 
b/tests/browser/features/support/pages/article_page.rb
index 5a8417b..33cf319 100644
--- a/tests/browser/features/support/pages/article_page.rb
+++ b/tests/browser/features/support/pages/article_page.rb
@@ -165,17 +165,4 @@
   # error and warning boxes
   div(:warning_box, css: ".warning")
   div(:error_message, css: ".error")
-
-  # Enters the given or random text into the given element. Note that a click
-  # event is used over focus to properly handle content-editable elements.
-  #
-  def type_into(element_name, text = nil)
-    text ||= "text-#{rand(32 ** 8).to_s(32)}"
-
-    element = send("#{element_name}_element")
-    element.click
-    element.send_keys(:enter, text)
-
-    text
-  end
-end
+end
\ No newline at end of file

-- 
To view, visit https://gerrit.wikimedia.org/r/160995
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3294e5a35873d6bd528dd8bd5df04d35c3b1070c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Cmcmahon <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to