summaryrefslogtreecommitdiff
path: root/www/wiki/tests/selenium/pageobjects/createaccount.page.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/tests/selenium/pageobjects/createaccount.page.js')
-rw-r--r--www/wiki/tests/selenium/pageobjects/createaccount.page.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/www/wiki/tests/selenium/pageobjects/createaccount.page.js b/www/wiki/tests/selenium/pageobjects/createaccount.page.js
new file mode 100644
index 00000000..105f4092
--- /dev/null
+++ b/www/wiki/tests/selenium/pageobjects/createaccount.page.js
@@ -0,0 +1,49 @@
+'use strict';
+const Page = require( './page' );
+
+class CreateAccountPage extends Page {
+
+ get username() { return browser.element( '#wpName2' ); }
+ get password() { return browser.element( '#wpPassword2' ); }
+ get confirmPassword() { return browser.element( '#wpRetype' ); }
+ get create() { return browser.element( '#wpCreateaccount' ); }
+ get heading() { return browser.element( '#firstHeading' ); }
+
+ open() {
+ super.open( 'Special:CreateAccount' );
+ }
+
+ createAccount( username, password ) {
+ this.open();
+ this.username.setValue( username );
+ this.password.setValue( password );
+ this.confirmPassword.setValue( password );
+ this.create.click();
+ }
+
+ apiCreateAccount( username, password ) {
+
+ 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 );
+
+ }
+
+}
+module.exports = new CreateAccountPage();