selenium: Create local ./log directory if needed
[lhc/web/wiklou.git] / tests / selenium / specs / page.js
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' );
7
8 describe( 'Page', function () {
9 var content,
10 name;
11
12 function getTestString() {
13 return Math.random().toString() + '-öäü-♠♣♥♦';
14 }
15
16 before( function () {
17 // disable VisualEditor welcome dialog
18 UserLoginPage.open();
19 browser.localStorage( 'POST', { key: 've-beta-welcome-dialog', value: '1' } );
20 } );
21
22 beforeEach( function () {
23 browser.deleteCookie();
24 content = getTestString();
25 name = getTestString();
26 } );
27
28 it( 'should be creatable', function () {
29 // create
30 EditPage.edit( name, content );
31
32 // check
33 assert.equal( EditPage.heading.getText(), name );
34 assert.equal( EditPage.displayedContent.getText(), content );
35 } );
36
37 it( 'should be re-creatable', function () {
38 let initialContent = getTestString();
39
40 // create
41 browser.call( function () {
42 return EditPage.apiEdit( name, initialContent );
43 } );
44
45 // delete
46 browser.call( function () {
47 return DeletePage.apiDelete( name, 'delete prior to recreate' );
48 } );
49
50 // create
51 EditPage.edit( name, content );
52
53 // check
54 assert.equal( EditPage.heading.getText(), name );
55 assert.equal( EditPage.displayedContent.getText(), content );
56
57 } );
58
59 it( 'should be editable', function () {
60 // create
61 browser.call( function () {
62 return EditPage.apiEdit( 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 EditPage.apiEdit( 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 EditPage.apiEdit( 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 EditPage.apiEdit( name, content );
110 } );
111
112 // delete
113 browser.call( function () {
114 return DeletePage.apiDelete( 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 } );