Merge "SpecialNewFiles: Swap from/to date serverside"
[lhc/web/wiklou.git] / tests / selenium / pageobjects / edit.page.js
1 'use strict';
2 const Page = require( './page' );
3
4 class EditPage extends Page {
5
6 get content() { return browser.element( '#wpTextbox1' ); }
7 get displayedContent() { return browser.element( '#mw-content-text' ); }
8 get heading() { return browser.element( '#firstHeading' ); }
9 get save() { return browser.element( '#wpSave' ); }
10
11 openForEditing( name ) {
12 super.open( name + '&action=edit' );
13 }
14
15 edit( name, content ) {
16 this.openForEditing( name );
17 this.content.setValue( content );
18 this.save.click();
19 }
20
21 apiEdit( name, content ) {
22 const url = require( 'url' ), // https://nodejs.org/docs/latest/api/url.html
23 baseUrl = url.parse( browser.options.baseUrl ), // http://webdriver.io/guide/testrunner/browserobject.html
24 Bot = require( 'nodemw' ), // https://github.com/macbre/nodemw
25 client = new Bot( {
26 protocol: baseUrl.protocol,
27 server: baseUrl.hostname,
28 port: baseUrl.port,
29 path: baseUrl.path,
30 debug: false
31 } );
32
33 return new Promise( ( resolve, reject ) => {
34 client.edit( name, content, `Created page with "${content}"`, function ( err ) {
35 if ( err ) {
36 return reject( err );
37 }
38 resolve();
39 } );
40 } );
41 }
42
43 }
44 module.exports = new EditPage();