2 const assert
= require( 'assert' ),
3 CreateAccountPage
= require( '../pageobjects/createaccount.page' ),
4 PreferencesPage
= require( '../pageobjects/preferences.page' ),
5 UserLoginPage
= require( '../pageobjects/userlogin.page' ),
6 UserMessagePage
= require( '../pageobjects/usermessage.page' ),
7 EditPage
= require( '../pageobjects/edit.page' );
9 describe( 'User', function () {
15 // disable VisualEditor welcome dialog
17 browser
.localStorage( 'POST', { key
: 've-beta-welcome-dialog', value
: '1' } );
20 beforeEach( function () {
21 browser
.deleteCookie();
22 username
= `User-${Math.random().toString()}`;
23 password
= Math
.random().toString();
26 it( 'should be able to create account', function () {
29 CreateAccountPage
.createAccount( username
, password
);
32 assert
.equal( CreateAccountPage
.heading
.getText(), `Welcome, ${username}!` );
36 it( 'should be able to log in', function () {
39 browser
.call( function () {
40 return CreateAccountPage
.apiCreateAccount( username
, password
);
44 UserLoginPage
.login( username
, password
);
47 assert
.equal( UserLoginPage
.userPage
.getText(), username
);
51 it( 'should be able to change preferences', function () {
53 var realName
= Math
.random().toString();
56 browser
.call( function () {
57 return CreateAccountPage
.apiCreateAccount( username
, password
);
61 UserLoginPage
.login( username
, password
);
64 PreferencesPage
.changeRealName( realName
);
67 assert
.equal( PreferencesPage
.realName
.getValue(), realName
);
71 it( 'should be able to view new message banner', function () {
74 browser
.call( function () {
75 return CreateAccountPage
.apiCreateAccount( username
, password
);
78 // create talk page with content
79 browser
.call( function () {
80 return EditPage
.apiEdit( 'User_talk:' + username
, Math
.random().toString() );
84 UserLoginPage
.login( username
, password
);
87 assert
.equal( UserMessagePage
.usermessage
.getText(), 'You have a new message (last change).' );