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