X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=tests%2Fselenium%2Fpageobjects%2Fcreateaccount.page.js;h=f54e31c8f83a400a90b42dc4db93920ec8d96604;hb=1abc89fc7651e122ca53fe874eecb89f30b5ba35;hp=a0b949070295a405b4ac762d30ff4da8c9b854f3;hpb=10e119b56c32aa99491e676f0208e4c2b402fabc;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/selenium/pageobjects/createaccount.page.js b/tests/selenium/pageobjects/createaccount.page.js index a0b9490702..f54e31c8f8 100644 --- a/tests/selenium/pageobjects/createaccount.page.js +++ b/tests/selenium/pageobjects/createaccount.page.js @@ -21,5 +21,57 @@ class CreateAccountPage extends Page { this.create.click(); } + 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' + ); + + } ); + + } + } module.exports = new CreateAccountPage();