selenium: add RecentChanges test to page spec
authorPablo Grass <pablo.grass@wikimedia.de>
Tue, 12 Jun 2018 11:01:25 +0000 (13:01 +0200)
committerPablo Grass <pablo.grass@wikimedia.de>
Wed, 13 Jun 2018 14:23:20 +0000 (16:23 +0200)
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

tests/selenium/pageobjects/recentchanges.page.js [new file with mode: 0644]
tests/selenium/specs/specialrecentchanges.js [new file with mode: 0644]

diff --git a/tests/selenium/pageobjects/recentchanges.page.js b/tests/selenium/pageobjects/recentchanges.page.js
new file mode 100644 (file)
index 0000000..02d3843
--- /dev/null
@@ -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 (file)
index 0000000..418fbb1
--- /dev/null
@@ -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 ] );
+       } );
+
+} );