From 9c5fa5567b6b565cb4521ad342fd4e42e6ecc5db Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C5=BDeljko=20Filipin?= Date: Fri, 9 Mar 2018 13:34:28 +0100 Subject: [PATCH] Selenium: Replace nodemw with mwbot Bug: T181284 Change-Id: I012a5cc6a7f30a8652cbad87293eb119fa2e405f Depends-On: Ic69be92c2b0b7a08a9b8cc417a40ebb38f249ea3 --- package.json | 2 +- .../pageobjects/createaccount.page.js | 64 ++++++------------- tests/selenium/pageobjects/delete.page.js | 35 ++++------ tests/selenium/pageobjects/edit.page.js | 35 ++++------ 4 files changed, 41 insertions(+), 95 deletions(-) diff --git a/package.json b/package.json index 5463fba6c0..1ea9a1f2e6 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "karma-firefox-launcher": "1.0.1", "karma-mocha-reporter": "2.2.5", "karma-qunit": "1.2.1", - "nodemw": "0.11.0", + "mwbot": "1.0.10", "postcss-less": "1.1.3", "qunitjs": "2.4.1", "stylelint": "8.2.0", diff --git a/tests/selenium/pageobjects/createaccount.page.js b/tests/selenium/pageobjects/createaccount.page.js index f54e31c8f8..105f40924e 100644 --- a/tests/selenium/pageobjects/createaccount.page.js +++ b/tests/selenium/pageobjects/createaccount.page.js @@ -22,54 +22,26 @@ class CreateAccountPage extends Page { } apiCreateAccount( username, password ) { - 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, - debug: false - } ); - return new Promise( ( resolve, reject ) => { - client.api.call( - { - action: 'query', - meta: 'tokens', - type: 'createaccount' - }, - /** - * @param {Error|null} err - * @param {Object} info Processed query result - * @param {Object} next More results? - * @param {Object} data Raw data - */ - function ( err, info, next, data ) { - if ( err ) { - reject( err ); - return; - } - client.api.call( { - action: 'createaccount', - createreturnurl: browser.options.baseUrl, - createtoken: data.query.tokens.createaccounttoken, - username: username, - password: password, - retype: password - }, function ( err ) { - if ( err ) { - reject( err ); - return; - } - resolve(); - }, 'POST' ); - }, - 'POST' - ); + const MWBot = require( 'mwbot' ), // https://github.com/Fannon/mwbot + Promise = require( 'bluebird' ); + let bot = new MWBot(); - } ); + return Promise.coroutine( function* () { + yield bot.loginGetCreateaccountToken( { + apiUrl: `${browser.options.baseUrl}/api.php`, + username: browser.options.username, + password: browser.options.password + } ); + yield bot.request( { + action: 'createaccount', + createreturnurl: browser.options.baseUrl, + createtoken: bot.createaccountToken, + username: username, + password: password, + retype: password + } ); + } ).call( this ); } diff --git a/tests/selenium/pageobjects/delete.page.js b/tests/selenium/pageobjects/delete.page.js index bd28ca8cef..d43cb9f612 100644 --- a/tests/selenium/pageobjects/delete.page.js +++ b/tests/selenium/pageobjects/delete.page.js @@ -19,33 +19,20 @@ class DeletePage extends Page { } 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, + + const MWBot = require( 'mwbot' ), // https://github.com/Fannon/mwbot + Promise = require( 'bluebird' ); + let bot = new MWBot(); + + return Promise.coroutine( function* () { + yield bot.loginGetEditToken( { + apiUrl: `${browser.options.baseUrl}/api.php`, username: browser.options.username, - password: browser.options.password, - debug: false + password: browser.options.password } ); + yield bot.delete( name, reason ); + } ).call( this ); - 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(); - } ); - } ); - } ); } } diff --git a/tests/selenium/pageobjects/edit.page.js b/tests/selenium/pageobjects/edit.page.js index 34f4263795..33a27f0f8c 100644 --- a/tests/selenium/pageobjects/edit.page.js +++ b/tests/selenium/pageobjects/edit.page.js @@ -19,33 +19,20 @@ class EditPage extends Page { } apiEdit( name, content ) { - 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, + + const MWBot = require( 'mwbot' ), // https://github.com/Fannon/mwbot + Promise = require( 'bluebird' ); + let bot = new MWBot(); + + return Promise.coroutine( function* () { + yield bot.loginGetEditToken( { + apiUrl: `${browser.options.baseUrl}/api.php`, username: browser.options.username, - password: browser.options.password, - debug: false + password: browser.options.password } ); + yield bot.edit( name, content, `Created page with "${content}"` ); + } ).call( this ); - return new Promise( ( resolve, reject ) => { - client.logIn( function ( err ) { - if ( err ) { - console.log( err ); - return reject( err ); - } - client.edit( name, content, `Created page with "${content}"`, function ( err ) { - if ( err ) { - return reject( err ); - } - resolve(); - } ); - } ); - } ); } } -- 2.20.1