selenium: add deletion test to page spec
authoraddshore <addshorewiki@gmail.com>
Sat, 13 Jan 2018 12:56:46 +0000 (12:56 +0000)
committeraddshore <addshorewiki@gmail.com>
Sat, 20 Jan 2018 10:41:41 +0000 (10:41 +0000)
Change-Id: Ia17b52958778a09378eeb10c9f24ebe9229bd9f5

tests/selenium/pageobjects/delete.page.js [new file with mode: 0644]
tests/selenium/pageobjects/userlogin.page.js
tests/selenium/specs/page.js

diff --git a/tests/selenium/pageobjects/delete.page.js b/tests/selenium/pageobjects/delete.page.js
new file mode 100644 (file)
index 0000000..bb095bb
--- /dev/null
@@ -0,0 +1,22 @@
+'use strict';
+const Page = require( './page' );
+
+class DeletePage extends Page {
+
+       get reason() { return browser.element( '#wpReason' ); }
+       get watch() { return browser.element( '#wpWatch' ); }
+       get submit() { return browser.element( '#wpConfirmB' ); }
+       get displayedContent() { return browser.element( '#mw-content-text' ); }
+
+       open( name ) {
+               super.open( name + '&action=delete' );
+       }
+
+       delete( name, reason ) {
+               this.open( name );
+               this.reason.setValue( reason );
+               this.submit.click();
+       }
+
+}
+module.exports = new DeletePage();
index bdbd41b..0061d0c 100644 (file)
@@ -19,5 +19,9 @@ class UserLoginPage extends Page {
                this.loginButton.click();
        }
 
+       loginAdmin() {
+               this.login( browser.options.username, browser.options.password );
+       }
+
 }
 module.exports = new UserLoginPage();
index e59da78..4ec94eb 100644 (file)
@@ -1,5 +1,6 @@
 'use strict';
 const assert = require( 'assert' ),
+       DeletePage = require( '../pageobjects/delete.page' ),
        EditPage = require( '../pageobjects/edit.page' ),
        HistoryPage = require( '../pageobjects/history.page' ),
        UserLoginPage = require( '../pageobjects/userlogin.page' );
@@ -65,4 +66,25 @@ describe( 'Page', function () {
 
        } );
 
+       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.'
+               );
+
+       } );
+
 } );