b04a5787232bda44f55c2e9cf83657f0e8151c03
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 UndoPage
= require( '../pageobjects/undo.page' ),
8 UserLoginPage
= require( 'wdio-mediawiki/LoginPage' ),
9 Util
= require( 'wdio-mediawiki/Util' );
11 describe( 'Page', function () {
12 var content
, name
, bot
;
14 before( async
function () {
15 bot
= await Api
.bot();
18 beforeEach( function () {
19 browser
.deleteAllCookies();
20 content
= Util
.getTestString( 'beforeEach-content-' );
21 name
= Util
.getTestString( 'BeforeEach-name-' );
24 it( 'should be previewable', function () {
25 EditPage
.preview( name
, content
);
27 assert
.strictEqual( EditPage
.heading
.getText(), 'Creating ' + name
);
28 assert
.strictEqual( EditPage
.displayedContent
.getText(), content
);
29 assert( EditPage
.content
.isDisplayed(), 'editor is still present' );
30 assert( !EditPage
.conflictingContent
.isDisplayed(), 'no edit conflict happened' );
33 it( 'should be creatable', function () {
35 EditPage
.edit( name
, content
);
38 assert
.strictEqual( EditPage
.heading
.getText(), name
);
39 assert
.strictEqual( EditPage
.displayedContent
.getText(), content
);
42 it( 'should be re-creatable', function () {
43 const initialContent
= Util
.getTestString( 'initialContent-' );
46 browser
.call( async () => {
47 await bot
.edit( name
, initialContent
, 'create for delete' );
48 await bot
.delete( name
, 'delete prior to recreate' );
52 EditPage
.edit( name
, content
);
55 assert
.strictEqual( EditPage
.heading
.getText(), name
);
56 assert
.strictEqual( EditPage
.displayedContent
.getText(), content
);
59 it( 'should be editable @daily', function () {
61 browser
.call( async () => {
62 await bot
.edit( name
, content
, 'create for edit' );
66 const editContent
= Util
.getTestString( 'editContent-' );
67 EditPage
.edit( name
, editContent
);
70 assert
.strictEqual( EditPage
.heading
.getText(), name
);
71 assert( EditPage
.displayedContent
.getText().includes( editContent
) );
74 it( 'should have history @daily', function () {
76 browser
.call( async () => {
77 await bot
.edit( name
, content
, `created with "${content}"` );
81 HistoryPage
.open( name
);
82 assert
.strictEqual( HistoryPage
.comment
.getText(), `created with "${content}"` );
85 it( 'should be deletable', function () {
87 browser
.call( async () => {
88 await bot
.edit( name
, content
, 'create for delete' );
92 UserLoginPage
.loginAdmin();
95 DeletePage
.delete( name
, 'delete reason' );
99 DeletePage
.displayedContent
.getText(),
100 '"' + name
+ '" has been deleted. See deletion log for a record of recent deletions.\nReturn to Main Page.'
104 it( 'should be restorable', function () {
106 browser
.call( async () => {
107 await bot
.edit( name
, content
, 'create for delete' );
108 await bot
.delete( name
, 'delete for restore' );
112 UserLoginPage
.loginAdmin();
115 RestorePage
.restore( name
, 'restore reason' );
118 assert
.strictEqual( RestorePage
.displayedContent
.getText(), name
+ ' has been restored\nConsult the deletion log for a record of recent deletions and restorations.' );
121 it( 'should be undoable', function () {
122 let previousRev
, undoRev
;
123 browser
.call( async () => {
125 await bot
.edit( name
, content
, 'create to edit and undo' );
128 const response
= await bot
.edit( name
, Util
.getTestString( 'editContent-' ) );
129 previousRev
= response
.edit
.oldrevid
;
130 undoRev
= response
.edit
.newrevid
;
133 UndoPage
.undo( name
, previousRev
, undoRev
);
135 assert
.strictEqual( EditPage
.displayedContent
.getText(), content
);