da5e90961ee52ee9b26f87d4f851dd042f9a3c33
[lhc/web/wiklou.git] / tests / selenium / pageobjects / history.page.js
1 const Page = require( 'wdio-mediawiki/Page' ),
2 Api = require( 'wdio-mediawiki/Api' );
3
4 class HistoryPage extends Page {
5 get heading() { return browser.element( '#firstHeading' ); }
6 get headingText() { return browser.getText( '#firstHeading' ); }
7 get comment() { return browser.element( '#pagehistory .comment' ); }
8 get rollback() { return browser.element( '.mw-rollback-link' ); }
9 get rollbackLink() { return browser.element( '.mw-rollback-link a' ); }
10 get rollbackConfirmable() { return browser.element( '.mw-rollback-link .jquery-confirmable-text' ); }
11 get rollbackConfirmableYes() { return browser.element( '.mw-rollback-link .jquery-confirmable-button-yes' ); }
12 get rollbackConfirmableNo() { return browser.element( '.mw-rollback-link .jquery-confirmable-button-no' ); }
13 get rollbackNonJsConfirmable() { return browser.element( '.mw-htmlform .oo-ui-fieldsetLayout-header .oo-ui-labelElement-label' ); }
14 get rollbackNonJsConfirmableYes() { return browser.element( '.mw-htmlform .mw-htmlform-submit-buttons button' ); }
15
16 open( title ) {
17 super.openTitle( title, { action: 'history' } );
18 }
19
20 vandalizePage( name, content ) {
21 let vandalUsername = 'Evil_' + browser.options.username;
22
23 browser.call( function () {
24 return Api.edit( name, content );
25 } );
26
27 browser.call( function () {
28 return Api.createAccount(
29 vandalUsername, browser.options.password
30 );
31 } );
32
33 browser.call( function () {
34 Api.edit(
35 name,
36 'Vandalized: ' + content,
37 vandalUsername
38 );
39 } );
40 }
41 }
42
43 module.exports = new HistoryPage();