Addshore has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/404078 )
Change subject: selenium, page spec, add restoration
......................................................................
selenium, page spec, add restoration
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(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/78/404078/1
diff --git a/tests/selenium/pageobjects/delete.page.js
b/tests/selenium/pageobjects/delete.page.js
index 55d4659..cc755f4 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..35b1b93
--- /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' ); }
+
+ openForRestoring( name ) {
+ browser.url( '/index.php?title=Special:Undelete/' + name );
+ }
+
+ restore( name, reason ) {
+ this.openForRestoring( 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: newchange
Gerrit-Change-Id: Ied06915f982e693b00edab14b8c29c978a5d6dff
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Addshore <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits