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' ),
8 Util
= require( 'wdio-mediawiki/Util' );
10 describe( 'Page', function () {
15 // disable VisualEditor welcome dialog
17 browser
.localStorage( 'POST', { key
: 've-beta-welcome-dialog', value
: '1' } );
20 beforeEach( function () {
21 browser
.deleteCookie();
22 content
= Util
.getTestString( 'beforeEach-content-' );
23 name
= Util
.getTestString( 'BeforeEach-name-' );
26 it( 'should be creatable', function () {
28 EditPage
.edit( name
, content
);
31 assert
.strictEqual( EditPage
.heading
.getText(), name
);
32 assert
.strictEqual( EditPage
.displayedContent
.getText(), content
);
35 it( 'should be re-creatable', function () {
36 let initialContent
= Util
.getTestString( 'initialContent-' );
39 browser
.call( function () {
40 return Api
.edit( name
, initialContent
);
44 browser
.call( function () {
45 return Api
.delete( name
, 'delete prior to recreate' );
49 EditPage
.edit( name
, content
);
52 assert
.strictEqual( EditPage
.heading
.getText(), name
);
53 assert
.strictEqual( EditPage
.displayedContent
.getText(), content
);
56 it( 'should be editable', function () {
58 browser
.call( function () {
59 return Api
.edit( name
, content
);
63 let editContent
= Util
.getTestString( 'editContent-' );
64 EditPage
.edit( name
, editContent
);
67 assert
.strictEqual( EditPage
.heading
.getText(), name
);
68 assert
.strictEqual( EditPage
.displayedContent
.getText(), editContent
);
71 it( 'should have history', function () {
73 browser
.call( function () {
74 return Api
.edit( name
, content
);
78 HistoryPage
.open( name
);
79 assert
.strictEqual( HistoryPage
.comment
.getText(), `(Created page with "${content}")` );
82 it( 'should be deletable', function () {
84 UserLoginPage
.loginAdmin();
87 browser
.call( function () {
88 return Api
.edit( name
, content
);
92 DeletePage
.delete( name
, content
+ '-deletereason' );
96 DeletePage
.displayedContent
.getText(),
97 '"' + name
+ '" has been deleted. See deletion log for a record of recent deletions.\nReturn to Main Page.'
101 it( 'should be restorable', function () {
103 UserLoginPage
.loginAdmin();
106 browser
.call( function () {
107 return Api
.edit( name
, content
);
111 browser
.call( function () {
112 return Api
.delete( name
, content
+ '-deletereason' );
116 RestorePage
.restore( name
, content
+ '-restorereason' );
119 assert
.strictEqual( RestorePage
.displayedContent
.getText(), name
+ ' has been restored\nConsult the deletion log for a record of recent deletions and restorations.' );