Merge "selenium: add deletion test to page spec"
[lhc/web/wiklou.git] / tests / selenium / specs / page.js
1 'use strict';
2 const assert = require( 'assert' ),
3 DeletePage = require( '../pageobjects/delete.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
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
31 // create
32 EditPage.edit( name, content );
33
34 // check
35 assert.equal( EditPage.heading.getText(), name );
36 assert.equal( EditPage.displayedContent.getText(), content );
37
38 } );
39
40 it( 'should be editable', function () {
41
42 // create
43 browser.call( function () {
44 return EditPage.apiEdit( name, content );
45 } );
46
47 // edit
48 EditPage.edit( name, content );
49
50 // check
51 assert.equal( EditPage.heading.getText(), name );
52 assert.equal( EditPage.displayedContent.getText(), content );
53
54 } );
55
56 it( 'should have history', function () {
57
58 // create
59 browser.call( function () {
60 return EditPage.apiEdit( name, content );
61 } );
62
63 // check
64 HistoryPage.open( name );
65 assert.equal( HistoryPage.comment.getText(), `(Created page with "${content}")` );
66
67 } );
68
69 it( 'should be deletable', function () {
70
71 // login
72 UserLoginPage.loginAdmin();
73
74 // create
75 browser.call( function () {
76 return EditPage.apiEdit( name, content );
77 } );
78
79 // delete
80 DeletePage.delete( name, content + '-deletereason' );
81
82 // check
83 assert.equal(
84 DeletePage.displayedContent.getText(),
85 '"' + name + '" has been deleted. See deletion log for a record of recent deletions.\nReturn to Main Page.'
86 );
87
88 } );
89
90 } );