From 32c36f0e730334283bf123f3849655ff3e715d7d Mon Sep 17 00:00:00 2001 From: Pablo Grass Date: Tue, 14 Aug 2018 16:27:31 +0200 Subject: [PATCH] selenium: undo page Add basic undo page object and test showing a previous edit can be undone. Bug: T201901 Change-Id: Idc1b3889abc6e655032bc1576f1b9d591abd6c8d --- tests/selenium/pageobjects/undo.page.js | 14 ++++++++++++++ tests/selenium/specs/page.js | 23 +++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 tests/selenium/pageobjects/undo.page.js diff --git a/tests/selenium/pageobjects/undo.page.js b/tests/selenium/pageobjects/undo.page.js new file mode 100644 index 0000000000..f0eff3f910 --- /dev/null +++ b/tests/selenium/pageobjects/undo.page.js @@ -0,0 +1,14 @@ +const Page = require( 'wdio-mediawiki/Page' ); + +class UndoPage extends Page { + + get save() { return browser.element( '#wpSave' ); } + + undo( title, previousRev, undoRev ) { + super.openTitle( title, { action: 'edit', undoafter: previousRev, undo: undoRev } ); + this.save.click(); + } + +} + +module.exports = new UndoPage(); diff --git a/tests/selenium/specs/page.js b/tests/selenium/specs/page.js index 032cbf085d..6a394d8b20 100644 --- a/tests/selenium/specs/page.js +++ b/tests/selenium/specs/page.js @@ -4,6 +4,7 @@ const assert = require( 'assert' ), RestorePage = require( '../pageobjects/restore.page' ), EditPage = require( '../pageobjects/edit.page' ), HistoryPage = require( '../pageobjects/history.page' ), + UndoPage = require( '../pageobjects/undo.page' ), UserLoginPage = require( '../pageobjects/userlogin.page' ), Util = require( 'wdio-mediawiki/Util' ); @@ -118,4 +119,26 @@ describe( 'Page', function () { // check assert.strictEqual( RestorePage.displayedContent.getText(), name + ' has been restored\nConsult the deletion log for a record of recent deletions and restorations.' ); } ); + + it( 'should be undoable', function () { + // create + browser.call( function () { + return Api.edit( name, content ); + } ); + + // edit + let previousRev, undoRev; + browser.call( function () { + return Api.edit( name, Util.getTestString( 'editContent-' ) ) + .then( ( response ) => { + previousRev = response.edit.oldrevid; + undoRev = response.edit.newrevid; + } ); + } ); + + UndoPage.undo( name, previousRev, undoRev ); + + assert.strictEqual( EditPage.displayedContent.getText(), content ); + } ); + } ); -- 2.20.1