jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/404078 )

Change subject: selenium, add restoration test to page spec
......................................................................


selenium, add restoration test to page spec

Change-Id: Ied06915f982e693b00edab14b8c29c978a5d6dff
---
M tests/selenium/pageobjects/delete.page.js
A tests/selenium/pageobjects/restore.page.js
M tests/selenium/specs/page.js
3 files changed, 75 insertions(+), 0 deletions(-)

Approvals:
  WMDE-Fisch: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/tests/selenium/pageobjects/delete.page.js 
b/tests/selenium/pageobjects/delete.page.js
index bb095bb..bd28ca8 100644
--- a/tests/selenium/pageobjects/delete.page.js
+++ b/tests/selenium/pageobjects/delete.page.js
@@ -18,5 +18,35 @@
                this.submit.click();
        }
 
+       apiDelete( name, reason ) {
+               const url = require( 'url' ), // 
https://nodejs.org/docs/latest/api/url.html
+                       baseUrl = url.parse( browser.options.baseUrl ), // 
http://webdriver.io/guide/testrunner/browserobject.html
+                       Bot = require( 'nodemw' ), // 
https://github.com/macbre/nodemw
+                       client = new Bot( {
+                               protocol: baseUrl.protocol,
+                               server: baseUrl.hostname,
+                               port: baseUrl.port,
+                               path: baseUrl.path,
+                               username: browser.options.username,
+                               password: browser.options.password,
+                               debug: false
+                       } );
+
+               return new Promise( ( resolve, reject ) => {
+                       client.logIn( function ( err ) {
+                               if ( err ) {
+                                       console.log( err );
+                                       return reject( err );
+                               }
+                               client.delete( name, reason, function ( err ) {
+                                       if ( err ) {
+                                               return reject( err );
+                                       }
+                                       resolve();
+                               } );
+                       } );
+               } );
+       }
+
 }
 module.exports = new DeletePage();
diff --git a/tests/selenium/pageobjects/restore.page.js 
b/tests/selenium/pageobjects/restore.page.js
new file mode 100644
index 0000000..ef47438
--- /dev/null
+++ b/tests/selenium/pageobjects/restore.page.js
@@ -0,0 +1,21 @@
+'use strict';
+const Page = require( './page' );
+
+class RestorePage extends Page {
+
+       get reason() { return browser.element( '#wpComment' ); }
+       get submit() { return browser.element( '#mw-undelete-submit' ); }
+       get displayedContent() { return browser.element( '#mw-content-text' ); }
+
+       open( name ) {
+               browser.url( '/index.php?title=Special:Undelete/' + name );
+       }
+
+       restore( name, reason ) {
+               this.open( name );
+               this.reason.setValue( reason );
+               this.submit.click();
+       }
+
+}
+module.exports = new RestorePage();
diff --git a/tests/selenium/specs/page.js b/tests/selenium/specs/page.js
index 4ec94eb..130d6af 100644
--- a/tests/selenium/specs/page.js
+++ b/tests/selenium/specs/page.js
@@ -1,6 +1,7 @@
 'use strict';
 const assert = require( 'assert' ),
        DeletePage = require( '../pageobjects/delete.page' ),
+       RestorePage = require( '../pageobjects/restore.page' ),
        EditPage = require( '../pageobjects/edit.page' ),
        HistoryPage = require( '../pageobjects/history.page' ),
        UserLoginPage = require( '../pageobjects/userlogin.page' );
@@ -87,4 +88,27 @@
 
        } );
 
+       it( 'should be restorable', function () {
+
+               // login
+               UserLoginPage.loginAdmin();
+
+               // create
+               browser.call( function () {
+                       return EditPage.apiEdit( name, content );
+               } );
+
+               // delete
+               browser.call( function () {
+                       return DeletePage.apiDelete( name, content + 
'-deletereason' );
+               } );
+
+               // restore
+               RestorePage.restore( name, content + '-restorereason' );
+
+               // check
+               assert.equal( RestorePage.displayedContent.getText(), name + ' 
has been restored\nConsult the deletion log for a record of recent deletions 
and restorations.' );
+
+       } );
+
 } );

-- 
To view, visit https://gerrit.wikimedia.org/r/404078
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ied06915f982e693b00edab14b8c29c978a5d6dff
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Addshore <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: WMDE-Fisch <[email protected]>
Gerrit-Reviewer: Zfilipin <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to