Mailing List Archive

[MediaWiki-commits] [Gerrit] mediawiki...AdvancedSearch[master]: Check search form state after submission
Gabriel Birke has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/406048 )

Change subject: Check search form state after submission
......................................................................

Check search form state after submission

Automatically wait for advanced search to be rendered after opening the
search page.
Bug: T167316

Change-Id: I057336a52795e61e7e17b1992a5e25b7b192ff2c
---
M tests/selenium/pageobjects/search.page.js
M tests/selenium/specs/advancedsearch.js
A tests/selenium/specs/search_submit.js
3 files changed, 70 insertions(+), 13 deletions(-)


git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/AdvancedSearch refs/changes/48/406048/1

diff --git a/tests/selenium/pageobjects/search.page.js b/tests/selenium/pageobjects/search.page.js
index a21af0a..b726cff 100644
--- a/tests/selenium/pageobjects/search.page.js
+++ b/tests/selenium/pageobjects/search.page.js
@@ -11,8 +11,16 @@
get searchNotTheseWordsTagLabel() { return browser.element( '#advancedSearchOption-not .oo-ui-tagItemWidget > .oo-ui-labelElement-label' ); }
get searchOneWord() { return browser.element( '#advancedSearchOption-or' ); }
get searchOneWordTagLabel() { return browser.element( '#advancedSearchOption-or .oo-ui-tagItemWidget > .oo-ui-labelElement-label' ); }
- get searchExpandablePane() { return browser.element( '.mw-advancedSearch-expandablePane' ); }
+ get searchExpandablePane() { return browser.element( '.mw-advancedSearch-expandablePane-button' ); }
+ get searchPreview() { return browser.element( '.mw-advancedSearch-searchPreview' ); }
+ get searchPreviewItems() { return browser.elements( '.mw-advancedSearch-searchPreview .mw-advancedSearch-searchPreview-previewPill' ); }
+
formWasSubmitted() { return browser.getUrl().match( /\?advancedSearchOption-original=/ ) !== null; }
+
+ advancedSearchIsCollapsed() {
+ return browser.element( '.mw-advancedSearch-expandablePane > .oo-ui-indicatorElement .oo-ui-indicatorElement-indicator.oo-ui-indicator-down' ).isExisting();
+ }
+
getSearchURL() {
let search = browser.getUrl().split( '&' ).filter( function ( part ) {
return part.match( /^search=/ );
@@ -22,7 +30,16 @@

open() {
super.open( 'Special:Search' );
+ this.waitForAdvancedSearchToLoad();
}

+ waitForAdvancedSearchToLoad() {
+ browser.waitForVisible( '.mw-advancedSearch-container', 5000 );
+ }
+
+ submitForm() {
+ browser.element( '#mw-search-top-table button' ).click();
+ this.waitForAdvancedSearchToLoad();
+ }
}
module.exports = new SearchPage();
diff --git a/tests/selenium/specs/advancedsearch.js b/tests/selenium/specs/advancedsearch.js
index 286ea0b..3382c09 100644
--- a/tests/selenium/specs/advancedsearch.js
+++ b/tests/selenium/specs/advancedsearch.js
@@ -6,13 +6,8 @@

describe( 'Advanced Search', function () {

- function waitForAdvancedSearchToLoad() {
- browser.waitForVisible( '.mw-advancedSearch-container', 5000 );
- }
-
function testPillCreation( pillField, pillFieldLabels, input, expectedLabels ) {
SearchPage.open();
- waitForAdvancedSearchToLoad();

SearchPage.searchExpandablePane.click();
pillField.click();
@@ -34,14 +29,12 @@
it( 'inserts advanced search elements on search page', function () {

SearchPage.open();
- waitForAdvancedSearchToLoad();
assert( SearchPage.searchContainer.isVisible() );
} );

it( 'finds no placeholders for "These words" "None of these words" and "One of these words"', function () {

SearchPage.open();
- waitForAdvancedSearchToLoad();

assert( SearchPage.searchTheseWords.element( 'input' ).getAttribute( 'placeholder' ) === '' );
assert( SearchPage.searchNotTheseWords.element( 'input' ).getAttribute( 'placeholder' ) === '' );
@@ -52,7 +45,6 @@
it( 'finds placeholder for "Exactly this text".', function () {

SearchPage.open();
- waitForAdvancedSearchToLoad();
assert( SearchPage.searchExactText.getAttribute( 'placeholder' ) !== '' );

} );
@@ -77,7 +69,6 @@

it( 'submits the search on enter when there is no text in "These Words" field', function () {
SearchPage.open();
- waitForAdvancedSearchToLoad();

SearchPage.searchExpandablePane.click();
SearchPage.searchTheseWords.click();
@@ -88,7 +79,6 @@

it( 'does not submit the search on enter when there is text in "These Words" field', function () {
SearchPage.open();
- waitForAdvancedSearchToLoad();

SearchPage.searchExpandablePane.click();
SearchPage.searchTheseWords.click();
@@ -99,7 +89,6 @@

it( 'submits the search on double enter when there is text in "These Words" field', function () {
SearchPage.open();
- waitForAdvancedSearchToLoad();

SearchPage.searchExpandablePane.click();
SearchPage.searchTheseWords.click();
@@ -110,7 +99,6 @@

it( 'submits the search with the correct search terms from all the pill fields', function () {
SearchPage.open();
- waitForAdvancedSearchToLoad();

SearchPage.searchExpandablePane.click();
SearchPage.searchTheseWords.click();
diff --git a/tests/selenium/specs/search_submit.js b/tests/selenium/specs/search_submit.js
new file mode 100644
index 0000000..c173c05
--- /dev/null
+++ b/tests/selenium/specs/search_submit.js
@@ -0,0 +1,52 @@
+'use strict';
+
+var assert = require( 'assert' );
+var SearchPage = require( '../pageobjects/search.page' );
+
+describe( 'Advanced Search submit', function () {
+
+ it( 'no search preview is shown in expanded state', function () {
+ SearchPage.open();
+ SearchPage.searchExpandablePane.click();
+ SearchPage.searchTheseWords.click();
+ browser.keys( 'test,' );
+ SearchPage.searchNotTheseWords.click();
+ browser.keys( 'test3 ' );
+ SearchPage.searchOneWord.click();
+ browser.keys( 'test4 test5' );
+ SearchPage.searchExactText.setValue( '"test1 test2"' );
+
+ assert( !SearchPage.searchPreviewItems.isExisting(), 'No preview pill elements should exist' );
+
+ } );
+
+ it( 'shows search preview in collapsed state', function () {
+ SearchPage.open();
+ SearchPage.searchExpandablePane.click();
+ SearchPage.searchTheseWords.click();
+ browser.keys( 'test,' );
+ SearchPage.searchNotTheseWords.click();
+ browser.keys( 'test3 ' );
+ SearchPage.searchOneWord.click();
+ browser.keys( 'test4 test5' );
+ SearchPage.searchExactText.setValue( '"test1 test2"' );
+ SearchPage.searchExpandablePane.click();
+ browser.waitUntil( SearchPage.advancedSearchIsCollapsed, 5000 );
+
+ assert( SearchPage.searchPreviewItems.isExisting(), 'Preview pills should be shown' );
+ assert.strictEqual( SearchPage.searchPreviewItems.value.length, 4, 'Number of preview pills must match number of filled fields' );
+ } );
+
+ it( 'collapses search preview after submission', function () {
+
+ SearchPage.open();
+ SearchPage.searchExpandablePane.click();
+ SearchPage.searchTheseWords.click();
+ browser.keys( 'test,' );
+ SearchPage.submitForm();
+
+ assert( SearchPage.advancedSearchIsCollapsed() );
+
+ } );
+
+} );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I057336a52795e61e7e17b1992a5e25b7b192ff2c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/AdvancedSearch
Gerrit-Branch: master
Gerrit-Owner: Gabriel Birke <gabriel.birke@wikimedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits