From 948990f05d0dacc81e9e527e6be6004153038c8c Mon Sep 17 00:00:00 2001 From: Pablo Grass Date: Tue, 12 Jun 2018 13:01:25 +0200 Subject: [PATCH] selenium: add RecentChanges test to page spec Add Special:RecentChanges page object with method to retrieve displayed titles, test page last edited is shown there. Will be used to test more advanced title/link formatters downstream. Bug: T191600 Change-Id: I916516d5055c3ce9be071a75e5c3af2b3547d4ba --- .../pageobjects/recentchanges.page.js | 18 ++++++++++++ tests/selenium/specs/specialrecentchanges.js | 29 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 tests/selenium/pageobjects/recentchanges.page.js create mode 100644 tests/selenium/specs/specialrecentchanges.js diff --git a/tests/selenium/pageobjects/recentchanges.page.js b/tests/selenium/pageobjects/recentchanges.page.js new file mode 100644 index 0000000000..02d3843743 --- /dev/null +++ b/tests/selenium/pageobjects/recentchanges.page.js @@ -0,0 +1,18 @@ +const Page = require( 'wdio-mediawiki/Page' ); + +class RecentChangesPage extends Page { + get changesList() { return browser.element( '.mw-changeslist' ); } + get changesListTitles() { return this.changesList.$$( '.mw-changeslist-title' ); } + get titles() { + return this.changesListTitles.map( function ( element ) { + return element.getText(); + } ); + } + + open() { + super.openTitle( 'Special:RecentChanges' ); + } + +} + +module.exports = new RecentChangesPage(); diff --git a/tests/selenium/specs/specialrecentchanges.js b/tests/selenium/specs/specialrecentchanges.js new file mode 100644 index 0000000000..418fbb11cb --- /dev/null +++ b/tests/selenium/specs/specialrecentchanges.js @@ -0,0 +1,29 @@ +const assert = require( 'assert' ), + Api = require( 'wdio-mediawiki/Api' ), + RecentChangesPage = require( '../pageobjects/recentchanges.page' ); + +describe( 'Special:RecentChanges', function () { + let content, + name; + + function getTestString() { + return Math.random().toString() + '-öäü-♠♣♥♦'; + } + + beforeEach( function () { + browser.deleteCookie(); + content = getTestString(); + name = getTestString(); + } ); + + it( 'shows page creation', function () { + browser.call( function () { + return Api.edit( name, content ); + } ); + + RecentChangesPage.open(); + + assert.strictEqual( name, RecentChangesPage.titles[ 0 ] ); + } ); + +} ); -- 2.20.1