1 const Page
= require( 'wdio-mediawiki/Page' ),
2 Api
= require( 'wdio-mediawiki/Api' ),
3 Util
= require( 'wdio-mediawiki/Util' );
5 class HistoryPage
extends Page
{
6 get heading() { return browser
.element( '#firstHeading' ); }
7 get headingText() { return browser
.getText( '#firstHeading' ); }
8 get comment() { return browser
.element( '#pagehistory .comment' ); }
9 get rollback() { return browser
.element( '.mw-rollback-link' ); }
10 get rollbackLink() { return browser
.element( '.mw-rollback-link a' ); }
11 get rollbackConfirmable() { return browser
.element( '.mw-rollback-link .jquery-confirmable-text' ); }
12 get rollbackConfirmableYes() { return browser
.element( '.mw-rollback-link .jquery-confirmable-button-yes' ); }
13 get rollbackConfirmableNo() { return browser
.element( '.mw-rollback-link .jquery-confirmable-button-no' ); }
14 get rollbackNonJsConfirmable() { return browser
.element( '.mw-htmlform .oo-ui-fieldsetLayout-header .oo-ui-labelElement-label' ); }
15 get rollbackNonJsConfirmableYes() { return browser
.element( '.mw-htmlform .mw-htmlform-submit-buttons button' ); }
18 super.openTitle( title
, { action
: 'history' } );
21 toggleRollbackConfirmationSetting( enable
) {
22 Util
.waitForModuleState( 'mediawiki.api', 'ready', 5000 );
23 return browser
.execute( function ( enable
) {
24 return new mw
.Api().saveOption(
25 'showrollbackconfirmation',
31 vandalizePage( name
, content
) {
32 let vandalUsername
= 'Evil_' + browser
.options
.username
;
34 browser
.call( function () {
35 return Api
.edit( name
, content
);
38 browser
.call( function () {
39 return Api
.createAccount(
40 vandalUsername
, browser
.options
.password
44 browser
.call( function () {
47 'Vandalized: ' + content
,
54 module
.exports
= new HistoryPage();