summaryrefslogtreecommitdiff
path: root/www/wiki/tests/selenium/specs
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/tests/selenium/specs')
-rw-r--r--www/wiki/tests/selenium/specs/page.js136
-rw-r--r--www/wiki/tests/selenium/specs/user.js69
2 files changed, 205 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.' );
+
+ } );
+
+} );
diff --git a/www/wiki/tests/selenium/specs/user.js b/www/wiki/tests/selenium/specs/user.js
new file mode 100644
index 00000000..3f3872dc
--- /dev/null
+++ b/www/wiki/tests/selenium/specs/user.js
@@ -0,0 +1,69 @@
+'use strict';
+const assert = require( 'assert' ),
+ CreateAccountPage = require( '../pageobjects/createaccount.page' ),
+ PreferencesPage = require( '../pageobjects/preferences.page' ),
+ UserLoginPage = require( '../pageobjects/userlogin.page' );
+
+describe( 'User', function () {
+
+ var password,
+ username;
+
+ before( function () {
+ // disable VisualEditor welcome dialog
+ UserLoginPage.open();
+ browser.localStorage( 'POST', { key: 've-beta-welcome-dialog', value: '1' } );
+ } );
+
+ beforeEach( function () {
+ browser.deleteCookie();
+ username = `User-${Math.random().toString()}`;
+ password = Math.random().toString();
+ } );
+
+ it( 'should be able to create account', function () {
+
+ // create
+ CreateAccountPage.createAccount( username, password );
+
+ // check
+ assert.equal( CreateAccountPage.heading.getText(), `Welcome, ${username}!` );
+
+ } );
+
+ it( 'should be able to log in', function () {
+
+ // create
+ browser.call( function () {
+ return CreateAccountPage.apiCreateAccount( username, password );
+ } );
+
+ // log in
+ UserLoginPage.login( username, password );
+
+ // check
+ assert.equal( UserLoginPage.userPage.getText(), username );
+
+ } );
+
+ it( 'should be able to change preferences', function () {
+
+ var realName = Math.random().toString();
+
+ // create
+ browser.call( function () {
+ return CreateAccountPage.apiCreateAccount( username, password );
+ } );
+
+ // log in
+ UserLoginPage.login( username, password );
+
+ // change
+ PreferencesPage.changeRealName( realName );
+
+ // check
+ assert.equal( PreferencesPage.realName.getValue(), realName );
+
+ } );
+
+} );