diff options
Diffstat (limited to 'www/wiki/tests/selenium/specs/page.js')
-rw-r--r-- | www/wiki/tests/selenium/specs/page.js | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/www/wiki/tests/selenium/specs/page.js b/www/wiki/tests/selenium/specs/page.js new file mode 100644 index 00000000..376dce59 --- /dev/null +++ b/www/wiki/tests/selenium/specs/page.js @@ -0,0 +1,136 @@ +'use strict'; +const assert = require( 'assert' ), + DeletePage = require( '../pageobjects/delete.page' ), + RestorePage = require( '../pageobjects/restore.page' ), + EditPage = require( '../pageobjects/edit.page' ), + HistoryPage = require( '../pageobjects/history.page' ), + UserLoginPage = require( '../pageobjects/userlogin.page' ); + +describe( 'Page', function () { + + var content, + name; + + function getTestString() { + return Math.random().toString() + '-öäü-♠♣♥♦'; + } + + before( function () { + // disable VisualEditor welcome dialog + UserLoginPage.open(); + browser.localStorage( 'POST', { key: 've-beta-welcome-dialog', value: '1' } ); + } ); + + beforeEach( function () { + browser.deleteCookie(); + content = getTestString(); + name = getTestString(); + } ); + + it( 'should be creatable', function () { + + // create + EditPage.edit( name, content ); + + // check + assert.equal( EditPage.heading.getText(), name ); + assert.equal( EditPage.displayedContent.getText(), content ); + + } ); + + it( 'should be re-creatable', function () { + let initialContent = getTestString(); + + // create + browser.call( function () { + return EditPage.apiEdit( name, initialContent ); + } ); + + // delete + browser.call( function () { + return DeletePage.apiDelete( name, 'delete prior to recreate' ); + } ); + + // create + EditPage.edit( name, content ); + + // check + assert.equal( EditPage.heading.getText(), name ); + assert.equal( EditPage.displayedContent.getText(), content ); + + } ); + + it( 'should be editable', function () { + + // create + browser.call( function () { + return EditPage.apiEdit( name, content ); + } ); + + // edit + EditPage.edit( name, content ); + + // check + assert.equal( EditPage.heading.getText(), name ); + assert.equal( EditPage.displayedContent.getText(), content ); + + } ); + + it( 'should have history', function () { + + // create + browser.call( function () { + return EditPage.apiEdit( name, content ); + } ); + + // check + HistoryPage.open( name ); + assert.equal( HistoryPage.comment.getText(), `(Created page with "${content}")` ); + + } ); + + it( 'should be deletable', function () { + + // login + UserLoginPage.loginAdmin(); + + // create + browser.call( function () { + return EditPage.apiEdit( name, content ); + } ); + + // delete + DeletePage.delete( name, content + '-deletereason' ); + + // check + assert.equal( + DeletePage.displayedContent.getText(), + '"' + name + '" has been deleted. See deletion log for a record of recent deletions.\nReturn to Main Page.' + ); + + } ); + + it( 'should be restorable', function () { + + // login + UserLoginPage.loginAdmin(); + + // create + browser.call( function () { + return EditPage.apiEdit( name, content ); + } ); + + // delete + browser.call( function () { + return DeletePage.apiDelete( name, content + '-deletereason' ); + } ); + + // restore + RestorePage.restore( name, content + '-restorereason' ); + + // check + assert.equal( RestorePage.displayedContent.getText(), name + ' has been restored\nConsult the deletion log for a record of recent deletions and restorations.' ); + + } ); + +} ); |