Merge "selenium: undo page"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 16 Aug 2018 09:56:57 +0000 (09:56 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 16 Aug 2018 09:56:57 +0000 (09:56 +0000)
tests/selenium/pageobjects/undo.page.js [new file with mode: 0644]
tests/selenium/specs/page.js

diff --git a/tests/selenium/pageobjects/undo.page.js b/tests/selenium/pageobjects/undo.page.js
new file mode 100644 (file)
index 0000000..f0eff3f
--- /dev/null
@@ -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();
index 032cbf0..6a394d8 100644 (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 );
+       } );
+
 } );