Merge "Adjust layout for saved filters empty state"
[lhc/web/wiklou.git] / tests / selenium / specs / page.js
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
9 describe( 'Page', function () {
10 var content,
11 name;
12
13 function getTestString( suffix = 'defaultsuffix' ) {
14 return Math.random().toString() + '-Iñtërnâtiônàlizætiøn☃-' + suffix;
15 }
16
17 before( function () {
18 // disable VisualEditor welcome dialog
19 UserLoginPage.open();
20 browser.localStorage( 'POST', { key: 've-beta-welcome-dialog', value: '1' } );
21 } );
22
23 beforeEach( function () {
24 browser.deleteCookie();
25 content = getTestString( 'beforeEach-content' );
26 name = getTestString( 'beforeEach-name' );
27 } );
28
29 it( 'should be creatable', function () {
30 // create
31 EditPage.edit( name, content );
32
33 // check
34 assert.strictEqual( EditPage.heading.getText(), name );
35 assert.strictEqual( EditPage.displayedContent.getText(), content );
36 } );
37
38 it( 'should be re-creatable', function () {
39 let initialContent = getTestString( 'initialContent' );
40
41 // create
42 browser.call( function () {
43 return Api.edit( name, initialContent );
44 } );
45
46 // delete
47 browser.call( function () {
48 return Api.delete( name, 'delete prior to recreate' );
49 } );
50
51 // create
52 EditPage.edit( name, content );
53
54 // check
55 assert.strictEqual( EditPage.heading.getText(), name );
56 assert.strictEqual( EditPage.displayedContent.getText(), content );
57 } );
58
59 it( 'should be editable', function () {
60 // create
61 browser.call( function () {
62 return Api.edit( name, content );
63 } );
64
65 // edit
66 let editContent = getTestString( 'editContent' );
67 EditPage.edit( name, editContent );
68
69 // check
70 assert.strictEqual( EditPage.heading.getText(), name );
71 assert.strictEqual( EditPage.displayedContent.getText(), editContent );
72 } );
73
74 it( 'should have history', function () {
75 // create
76 browser.call( function () {
77 return Api.edit( name, content );
78 } );
79
80 // check
81 HistoryPage.open( name );
82 assert.strictEqual( HistoryPage.comment.getText(), `(Created page with "${content}")` );
83 } );
84
85 it( 'should be deletable', function () {
86 // login
87 UserLoginPage.loginAdmin();
88
89 // create
90 browser.call( function () {
91 return Api.edit( name, content );
92 } );
93
94 // delete
95 DeletePage.delete( name, content + '-deletereason' );
96
97 // check
98 assert.strictEqual(
99 DeletePage.displayedContent.getText(),
100 '"' + name + '" has been deleted. See deletion log for a record of recent deletions.\nReturn to Main Page.'
101 );
102 } );
103
104 it( 'should be restorable', function () {
105 // login
106 UserLoginPage.loginAdmin();
107
108 // create
109 browser.call( function () {
110 return Api.edit( name, content );
111 } );
112
113 // delete
114 browser.call( function () {
115 return Api.delete( name, content + '-deletereason' );
116 } );
117
118 // restore
119 RestorePage.restore( name, content + '-restorereason' );
120
121 // check
122 assert.strictEqual( RestorePage.displayedContent.getText(), name + ' has been restored\nConsult the deletion log for a record of recent deletions and restorations.' );
123 } );
124 } );