Fix 'Tags' padding to keep it farther from the edge and document the source of the...
[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() {
14 return Math.random().toString() + '-öäü-♠♣♥♦';
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();
26 name = getTestString();
27 } );
28
29 it( 'should be creatable', function () {
30 // create
31 EditPage.edit( name, content );
32
33 // check
34 assert.equal( EditPage.heading.getText(), name );
35 assert.equal( EditPage.displayedContent.getText(), content );
36 } );
37
38 it( 'should be re-creatable', function () {
39 let initialContent = getTestString();
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.equal( EditPage.heading.getText(), name );
56 assert.equal( 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 EditPage.edit( name, content );
67
68 // check
69 assert.equal( EditPage.heading.getText(), name );
70 assert.equal( EditPage.displayedContent.getText(), content );
71 } );
72
73 it( 'should have history', function () {
74 // create
75 browser.call( function () {
76 return Api.edit( name, content );
77 } );
78
79 // check
80 HistoryPage.open( name );
81 assert.equal( HistoryPage.comment.getText(), `(Created page with "${content}")` );
82 } );
83
84 it( 'should be deletable', function () {
85 // login
86 UserLoginPage.loginAdmin();
87
88 // create
89 browser.call( function () {
90 return Api.edit( name, content );
91 } );
92
93 // delete
94 DeletePage.delete( name, content + '-deletereason' );
95
96 // check
97 assert.equal(
98 DeletePage.displayedContent.getText(),
99 '"' + name + '" has been deleted. See deletion log for a record of recent deletions.\nReturn to Main Page.'
100 );
101 } );
102
103 it( 'should be restorable', function () {
104 // login
105 UserLoginPage.loginAdmin();
106
107 // create
108 browser.call( function () {
109 return Api.edit( name, content );
110 } );
111
112 // delete
113 browser.call( function () {
114 return Api.delete( name, content + '-deletereason' );
115 } );
116
117 // restore
118 RestorePage.restore( name, content + '-restorereason' );
119
120 // check
121 assert.equal( RestorePage.displayedContent.getText(), name + ' has been restored\nConsult the deletion log for a record of recent deletions and restorations.' );
122 } );
123 } );