1 const assert
= require( 'assert' ),
2 Api
= require( 'wdio-mediawiki/Api' ),
3 DeletePage
= require( '../pageobjects/delete.page' ),
4 RestorePage
= require( '../pageobjects/restore.page' ),
5 EditPage
= require( '../pageobjects/edit.page' ),
6 HistoryPage
= require( '../pageobjects/history.page' ),
7 UserLoginPage
= require( '../pageobjects/userlogin.page' );
9 describe( 'Page', function () {
13 function getTestString( suffix
= 'defaultsuffix' ) {
14 return Math
.random().toString() + '-Iñtërnâtiônàlizætiøn☃-' + suffix
;
18 // disable VisualEditor welcome dialog
20 browser
.localStorage( 'POST', { key
: 've-beta-welcome-dialog', value
: '1' } );
23 beforeEach( function () {
24 browser
.deleteCookie();
25 content
= getTestString( 'beforeEach-content' );
26 name
= getTestString( 'beforeEach-name' );
29 it( 'should be creatable', function () {
31 EditPage
.edit( name
, content
);
34 assert
.strictEqual( EditPage
.heading
.getText(), name
);
35 assert
.strictEqual( EditPage
.displayedContent
.getText(), content
);
38 it( 'should be re-creatable', function () {
39 let initialContent
= getTestString( 'initialContent' );
42 browser
.call( function () {
43 return Api
.edit( name
, initialContent
);
47 browser
.call( function () {
48 return Api
.delete( name
, 'delete prior to recreate' );
52 EditPage
.edit( name
, content
);
55 assert
.strictEqual( EditPage
.heading
.getText(), name
);
56 assert
.strictEqual( EditPage
.displayedContent
.getText(), content
);
59 it( 'should be editable', function () {
61 browser
.call( function () {
62 return Api
.edit( name
, content
);
66 let editContent
= getTestString( 'editContent' );
67 EditPage
.edit( name
, editContent
);
70 assert
.strictEqual( EditPage
.heading
.getText(), name
);
71 assert
.strictEqual( EditPage
.displayedContent
.getText(), editContent
);
74 it( 'should have history', function () {
76 browser
.call( function () {
77 return Api
.edit( name
, content
);
81 HistoryPage
.open( name
);
82 assert
.strictEqual( HistoryPage
.comment
.getText(), `(Created page with "${content}")` );
85 it( 'should be deletable', function () {
87 UserLoginPage
.loginAdmin();
90 browser
.call( function () {
91 return Api
.edit( name
, content
);
95 DeletePage
.delete( name
, content
+ '-deletereason' );
99 DeletePage
.displayedContent
.getText(),
100 '"' + name
+ '" has been deleted. See deletion log for a record of recent deletions.\nReturn to Main Page.'
104 it( 'should be restorable', function () {
106 UserLoginPage
.loginAdmin();
109 browser
.call( function () {
110 return Api
.edit( name
, content
);
114 browser
.call( function () {
115 return Api
.delete( name
, content
+ '-deletereason' );
119 RestorePage
.restore( name
, content
+ '-restorereason' );
122 assert
.strictEqual( RestorePage
.displayedContent
.getText(), name
+ ' has been restored\nConsult the deletion log for a record of recent deletions and restorations.' );