Bmansurov has uploaded a new change for review.
https://gerrit.wikimedia.org/r/234710
Change subject: Add browser tests for external surveys
......................................................................
Add browser tests for external surveys
Bug: T110225
Change-Id: I70a93e28d3ad9b40bd2ee5063c0e9d8ee1e3f96b
---
M tests/browser/LocalSettings.php
A tests/browser/features/external_survey.feature
M tests/browser/features/internal_survey.feature
M tests/browser/features/support/pages/article_page.rb
M tests/browser/features/support/step_definitions/common_steps.rb
A tests/browser/features/support/step_definitions/external_survey_steps.rb
M tests/browser/features/support/step_definitions/internal_survey_steps.rb
7 files changed, 82 insertions(+), 9 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/QuickSurveys
refs/changes/10/234710/1
diff --git a/tests/browser/LocalSettings.php b/tests/browser/LocalSettings.php
index 4ffc204..7ac103d 100644
--- a/tests/browser/LocalSettings.php
+++ b/tests/browser/LocalSettings.php
@@ -18,4 +18,18 @@
"mobile" => array( "stable", "beta", "alpha" ),
),
),
+ array(
+ 'name' => 'external example survey',
+ 'type' => 'external',
+ "question" =>
"ext-quicksurveys-example-external-survey-question",
+ "description" =>
"ext-quicksurveys-example-external-survey-description",
+ "link" => "ext-quicksurveys-example-external-survey-link",
+ "privacyPolicy" =>
"ext-quicksurveys-example-external-survey-privacy-policy",
+ 'coverage' => .5,
+ 'enabled' => true,
+ 'platform' => array(
+ 'desktop' => array( 'stable' ),
+ 'mobile' => array( 'stable', 'beta', 'alpha' ),
+ ),
+ )
);
diff --git a/tests/browser/features/external_survey.feature
b/tests/browser/features/external_survey.feature
new file mode 100644
index 0000000..7dabdd2
--- /dev/null
+++ b/tests/browser/features/external_survey.feature
@@ -0,0 +1,32 @@
+@chrome @en.m.wikipedia.beta.wmflabs.org @firefox @test2.m.wikipedia.org
@vagrant @integration
+Feature: External surveys
+ Background:
+ Given the quick survey test pages are installed
+
+ Scenario: External survey is visible with flag
+ And I am on the "Quick survey test page stub" page with the external
quick survey flag enabled
+ Then I should see the survey
+
+ Scenario: External survey is not present without flag
+ And I'm not bucketed with storage key
"ext-quicksurvey-external-example-survey"
+ And I am on the "Quick survey test page stub" page
+ And the page has fully loaded
+ Then I should not see the survey
+
+ Scenario: External survey is visible when bucketed
+ And I'm bucketed with storage key
"ext-quicksurvey-external-example-survey"
+ And I am on the "Quick survey test page stub" page
+ Then I should see the survey
+
+ Scenario: External survey is not present when dismissed
+ And I've dismissed the storage key
"ext-quicksurvey-external-example-survey"
+ And I am on the "Quick survey test page stub" page
+ And the page has fully loaded
+ Then I should not see the survey
+
+ Scenario: User can participate in external survey
+ And I am on the "Quick survey test page stub" page with the external
quick survey flag enabled
+ And I see the external survey
+ When I answer the external survey in the positive
+ Then I get thanks for my external survey feedback
+
diff --git a/tests/browser/features/internal_survey.feature
b/tests/browser/features/internal_survey.feature
index 99bde0a..bff406d 100644
--- a/tests/browser/features/internal_survey.feature
+++ b/tests/browser/features/internal_survey.feature
@@ -4,7 +4,7 @@
Given the quick survey test pages are installed
Scenario: Internal survey is visible with flag
- And I am on the "Quick survey test page stub" page with the quick survey
flag enabled
+ And I am on the "Quick survey test page stub" page with the internal quick
survey flag enabled
Then I should see the survey
Scenario: Internal survey is not present without flag
@@ -25,7 +25,7 @@
Then I should not see the survey
Scenario: User can participate in internal survey
- And I am on the "Quick survey test page stub" page with the quick survey
flag enabled
- And I see the survey
- When I answer the survey in the positive
- Then I get thanks for my feedback
+ And I am on the "Quick survey test page stub" page with the internal quick
survey flag enabled
+ And I see the internal survey
+ When I answer the internal survey in the positive
+ Then I get thanks for my internal survey feedback
diff --git a/tests/browser/features/support/pages/article_page.rb
b/tests/browser/features/support/pages/article_page.rb
index e970410..e8847e5 100644
--- a/tests/browser/features/support/pages/article_page.rb
+++ b/tests/browser/features/support/pages/article_page.rb
@@ -3,7 +3,7 @@
include PageObject
page_url '<%= URI.encode(params[:article_name]) %>'\
- '<%=params[:query_string]%><%= params[:hash] %>'
+ '<%= URI.encode(params[:query_string])%><%= params[:hash] %>'
div(:survey, css: '.panel')
a(:survey_yes,
css: '.panel .oo-ui-buttonSelectWidget .oo-ui-buttonElement-button',
diff --git a/tests/browser/features/support/step_definitions/common_steps.rb
b/tests/browser/features/support/step_definitions/common_steps.rb
index e89c086..ab3f983 100644
--- a/tests/browser/features/support/step_definitions/common_steps.rb
+++ b/tests/browser/features/support/step_definitions/common_steps.rb
@@ -23,6 +23,22 @@
using_params: { article_name: arg1, query_string: '?quicksurvey=true'
})
end
+Given(/^I am on the "(.*?)" page with the internal quick survey flag
enabled$/) do |arg1|
+ visit(ArticlePage,
+ using_params: {
+ article_name: arg1,
+ query_string: '?quicksurvey=internal-survey-internal example
survey'
+ })
+end
+
+Given(/^I am on the "(.*?)" page with the external quick survey flag
enabled$/) do |arg1|
+ visit(ArticlePage,
+ using_params: {
+ article_name: arg1,
+ query_string: '?quicksurvey=external-survey-external example
survey'
+ })
+end
+
Given(/^I am on the "(.*?)" page$/) do |arg1|
visit(ArticlePage, using_params: { article_name: arg1 })
end
diff --git
a/tests/browser/features/support/step_definitions/external_survey_steps.rb
b/tests/browser/features/support/step_definitions/external_survey_steps.rb
new file mode 100644
index 0000000..06fef22
--- /dev/null
+++ b/tests/browser/features/support/step_definitions/external_survey_steps.rb
@@ -0,0 +1,11 @@
+Given(/^I see the external survey$/) do
+ expect(on(ArticlePage).survey_element.when_present).to be_visible
+end
+
+Given(/^I answer the external survey in the positive$/) do
+ on(ArticlePage).survey_yes_element.when_present.click
+end
+
+Then(/^I get thanks for my external survey feedback$/) do
+ expect(on(ArticlePage).survey_complete_element.when_present).to be_visible
+end
diff --git
a/tests/browser/features/support/step_definitions/internal_survey_steps.rb
b/tests/browser/features/support/step_definitions/internal_survey_steps.rb
index 1e375b2..ad53038 100644
--- a/tests/browser/features/support/step_definitions/internal_survey_steps.rb
+++ b/tests/browser/features/support/step_definitions/internal_survey_steps.rb
@@ -1,11 +1,11 @@
-Given(/^I see the survey$/) do
+Given(/^I see the internal survey$/) do
expect(on(ArticlePage).survey_element.when_present).to be_visible
end
-Given(/^I answer the survey in the positive$/) do
+Given(/^I answer the internal survey in the positive$/) do
on(ArticlePage).survey_yes_element.when_present.click
end
-Then(/^I get thanks for my feedback$/) do
+Then(/^I get thanks for my internal survey feedback$/) do
expect(on(ArticlePage).survey_complete_element.when_present).to be_visible
end
--
To view, visit https://gerrit.wikimedia.org/r/234710
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I70a93e28d3ad9b40bd2ee5063c0e9d8ee1e3f96b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/QuickSurveys
Gerrit-Branch: dev
Gerrit-Owner: Bmansurov <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits