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.bi...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits