From 52c7dc56df97e7ee4b17090c51f8038fea64236a Mon Sep 17 00:00:00 2001 From: addshore Date: Sat, 13 Jan 2018 12:56:46 +0000 Subject: [PATCH] selenium: add deletion test to page spec Change-Id: Ia17b52958778a09378eeb10c9f24ebe9229bd9f5 --- tests/selenium/pageobjects/delete.page.js | 22 ++++++++++++++++++++ tests/selenium/pageobjects/userlogin.page.js | 4 ++++ tests/selenium/specs/page.js | 22 ++++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 tests/selenium/pageobjects/delete.page.js diff --git a/tests/selenium/pageobjects/delete.page.js b/tests/selenium/pageobjects/delete.page.js new file mode 100644 index 0000000000..bb095bb3d1 --- /dev/null +++ b/tests/selenium/pageobjects/delete.page.js @@ -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(); diff --git a/tests/selenium/pageobjects/userlogin.page.js b/tests/selenium/pageobjects/userlogin.page.js index bdbd41bc9d..0061d0c258 100644 --- a/tests/selenium/pageobjects/userlogin.page.js +++ b/tests/selenium/pageobjects/userlogin.page.js @@ -19,5 +19,9 @@ class UserLoginPage extends Page { this.loginButton.click(); } + loginAdmin() { + this.login( browser.options.username, browser.options.password ); + } + } module.exports = new UserLoginPage(); diff --git a/tests/selenium/specs/page.js b/tests/selenium/specs/page.js index e59da78a55..4ec94eb38f 100644 --- a/tests/selenium/specs/page.js +++ b/tests/selenium/specs/page.js @@ -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.' + ); + + } ); + } ); -- 2.20.1