%PDF- %PDF-
| Direktori : /www/varak.net/wiki.varak.net/tests/selenium/wdio-mediawiki/ |
| Current File : /www/varak.net/wiki.varak.net/tests/selenium/wdio-mediawiki/Api.js |
const MWBot = require( 'mwbot' );
// TODO: Once we require Node 7 or later, we can use async-await.
module.exports = {
/**
* Shortcut for `MWBot#edit( .. )`.
*
* @since 1.0.0
* @see <https://www.mediawiki.org/wiki/API:Edit>
* @param {string} title
* @param {string} content
* @return {Object} Promise for API action=edit response data.
*/
edit( title, content ) {
let bot = new MWBot();
return bot.loginGetEditToken( {
apiUrl: `${browser.options.baseUrl}/api.php`,
username: browser.options.username,
password: browser.options.password
} ).then( function () {
return bot.edit( title, content, `Created page with "${content}"` );
} );
},
/**
* Shortcut for `MWBot#delete( .. )`.
*
* @since 1.0.0
* @see <https://www.mediawiki.org/wiki/API:Delete>
* @param {string} title
* @param {string} reason
* @return {Object} Promise for API action=delete response data.
*/
delete( title, reason ) {
let bot = new MWBot();
return bot.loginGetEditToken( {
apiUrl: `${browser.options.baseUrl}/api.php`,
username: browser.options.username,
password: browser.options.password
} ).then( function () {
return bot.delete( title, reason );
} );
},
/**
* Shortcut for `MWBot#request( { acount: 'createaccount', .. } )`.
*
* @since 1.0.0
* @see <https://www.mediawiki.org/wiki/API:Account_creation>
* @param {string} username
* @param {string} password
* @return {Object} Promise for API action=createaccount response data.
*/
createAccount( username, password ) {
let bot = new MWBot();
// Log in as admin
return bot.loginGetCreateaccountToken( {
apiUrl: `${browser.options.baseUrl}/api.php`,
username: browser.options.username,
password: browser.options.password
} ).then( function () {
// Create the new account
return bot.request( {
action: 'createaccount',
createreturnurl: browser.options.baseUrl,
createtoken: bot.createaccountToken,
username: username,
password: password,
retype: password
} );
} );
}
};