1 const assert
= require( 'assert' ),
2 DeletePage
= require( '../pageobjects/delete.page' ),
3 RestorePage
= require( '../pageobjects/restore.page' ),
4 EditPage
= require( '../pageobjects/edit.page' ),
5 HistoryPage
= require( '../pageobjects/history.page' ),
6 UserLoginPage
= require( '../pageobjects/userlogin.page' );
8 describe( 'Page', function () {
12 function getTestString() {
13 return Math
.random().toString() + '-öäü-♠♣♥♦';
17 // disable VisualEditor welcome dialog
19 browser
.localStorage( 'POST', { key
: 've-beta-welcome-dialog', value
: '1' } );
22 beforeEach( function () {
23 browser
.deleteCookie();
24 content
= getTestString();
25 name
= getTestString();
28 it( 'should be creatable', function () {
30 EditPage
.edit( name
, content
);
33 assert
.equal( EditPage
.heading
.getText(), name
);
34 assert
.equal( EditPage
.displayedContent
.getText(), content
);
37 it( 'should be re-creatable', function () {
38 let initialContent
= getTestString();
41 browser
.call( function () {
42 return EditPage
.apiEdit( name
, initialContent
);
46 browser
.call( function () {
47 return DeletePage
.apiDelete( name
, 'delete prior to recreate' );
51 EditPage
.edit( name
, content
);
54 assert
.equal( EditPage
.heading
.getText(), name
);
55 assert
.equal( EditPage
.displayedContent
.getText(), content
);
59 it( 'should be editable', function () {
61 browser
.call( function () {
62 return EditPage
.apiEdit( name
, content
);
66 EditPage
.edit( name
, content
);
69 assert
.equal( EditPage
.heading
.getText(), name
);
70 assert
.equal( EditPage
.displayedContent
.getText(), content
);
73 it( 'should have history', function () {
75 browser
.call( function () {
76 return EditPage
.apiEdit( name
, content
);
80 HistoryPage
.open( name
);
81 assert
.equal( HistoryPage
.comment
.getText(), `(Created page with "${content}")` );
84 it( 'should be deletable', function () {
86 UserLoginPage
.loginAdmin();
89 browser
.call( function () {
90 return EditPage
.apiEdit( name
, content
);
94 DeletePage
.delete( name
, content
+ '-deletereason' );
98 DeletePage
.displayedContent
.getText(),
99 '"' + name
+ '" has been deleted. See deletion log for a record of recent deletions.\nReturn to Main Page.'
103 it( 'should be restorable', function () {
105 UserLoginPage
.loginAdmin();
108 browser
.call( function () {
109 return EditPage
.apiEdit( name
, content
);
113 browser
.call( function () {
114 return DeletePage
.apiDelete( name
, content
+ '-deletereason' );
118 RestorePage
.restore( name
, content
+ '-restorereason' );
121 assert
.equal( RestorePage
.displayedContent
.getText(), name
+ ' has been restored\nConsult the deletion log for a record of recent deletions and restorations.' );