376dce59756201f61033f36e2b77595d8633f405
[lhc/web/wiklou.git] / tests / selenium / specs / page.js
1 'use strict';
2 const assert = require( 'assert' ),
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
11 var content,
12 name;
13
14 function getTestString() {
15 return Math.random().toString() + '-öäü-♠♣♥♦';
16 }
17
18 before( function () {
19 // disable VisualEditor welcome dialog
20 UserLoginPage.open();
21 browser.localStorage( 'POST', { key: 've-beta-welcome-dialog', value: '1' } );
22 } );
23
24 beforeEach( function () {
25 browser.deleteCookie();
26 content = getTestString();
27 name = getTestString();
28 } );
29
30 it( 'should be creatable', function () {
31
32 // create
33 EditPage.edit( name, content );
34
35 // check
36 assert.equal( EditPage.heading.getText(), name );
37 assert.equal( EditPage.displayedContent.getText(), content );
38
39 } );
40
41 it( 'should be re-creatable', function () {
42 let initialContent = getTestString();
43
44 // create
45 browser.call( function () {
46 return EditPage.apiEdit( name, initialContent );
47 } );
48
49 // delete
50 browser.call( function () {
51 return DeletePage.apiDelete( name, 'delete prior to recreate' );
52 } );
53
54 // create
55 EditPage.edit( name, content );
56
57 // check
58 assert.equal( EditPage.heading.getText(), name );
59 assert.equal( EditPage.displayedContent.getText(), content );
60
61 } );
62
63 it( 'should be editable', function () {
64
65 // create
66 browser.call( function () {
67 return EditPage.apiEdit( name, content );
68 } );
69
70 // edit
71 EditPage.edit( name, content );
72
73 // check
74 assert.equal( EditPage.heading.getText(), name );
75 assert.equal( EditPage.displayedContent.getText(), content );
76
77 } );
78
79 it( 'should have history', function () {
80
81 // create
82 browser.call( function () {
83 return EditPage.apiEdit( name, content );
84 } );
85
86 // check
87 HistoryPage.open( name );
88 assert.equal( HistoryPage.comment.getText(), `(Created page with "${content}")` );
89
90 } );
91
92 it( 'should be deletable', function () {
93
94 // login
95 UserLoginPage.loginAdmin();
96
97 // create
98 browser.call( function () {
99 return EditPage.apiEdit( name, content );
100 } );
101
102 // delete
103 DeletePage.delete( name, content + '-deletereason' );
104
105 // check
106 assert.equal(
107 DeletePage.displayedContent.getText(),
108 '"' + name + '" has been deleted. See deletion log for a record of recent deletions.\nReturn to Main Page.'
109 );
110
111 } );
112
113 it( 'should be restorable', function () {
114
115 // login
116 UserLoginPage.loginAdmin();
117
118 // create
119 browser.call( function () {
120 return EditPage.apiEdit( name, content );
121 } );
122
123 // delete
124 browser.call( function () {
125 return DeletePage.apiDelete( name, content + '-deletereason' );
126 } );
127
128 // restore
129 RestorePage.restore( name, content + '-restorereason' );
130
131 // check
132 assert.equal( RestorePage.displayedContent.getText(), name + ' has been restored\nConsult the deletion log for a record of recent deletions and restorations.' );
133
134 } );
135
136 } );