selenium: undo page

Add basic undo page object and test showing a previous edit can be
undone.

Bug: T201901
Change-Id: Idc1b3889abc6e655032bc1576f1b9d591abd6c8d
This commit is contained in:
Pablo Grass 2018-08-14 16:27:31 +02:00
parent 0a0d5cb7f7
commit 32c36f0e73
2 changed files with 37 additions and 0 deletions

View file

@ -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();

View file

@ -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 );
} );
} );