Selenium tests should log in before creating pages
authorŽeljko Filipin <zeljko.filipin@gmail.com>
Tue, 3 Oct 2017 09:17:39 +0000 (11:17 +0200)
committerŽeljko Filipin <zeljko.filipin@gmail.com>
Tue, 3 Oct 2017 09:46:01 +0000 (11:46 +0200)
MediaWiki Vagrant by default allows creating pages to anonymous users,
but other environments, like Beta Cluster, require user to log in
before creating pages.

Bug: T176315
Change-Id: I34eeaf3cc22a64be6580aa483b28885137ba60b6

tests/selenium/pageobjects/edit.page.js
tests/selenium/wdio.conf.jenkins.js
tests/selenium/wdio.conf.js

index 25da8cb..34f4263 100644 (file)
@@ -27,15 +27,23 @@ class EditPage extends Page {
                                server: baseUrl.hostname,
                                port: baseUrl.port,
                                path: baseUrl.path,
                                server: baseUrl.hostname,
                                port: baseUrl.port,
                                path: baseUrl.path,
+                               username: browser.options.username,
+                               password: browser.options.password,
                                debug: false
                        } );
 
                return new Promise( ( resolve, reject ) => {
                                debug: false
                        } );
 
                return new Promise( ( resolve, reject ) => {
-                       client.edit( name, content, `Created page with "${content}"`, function ( err ) {
+                       client.logIn( function ( err ) {
                                if ( err ) {
                                if ( err ) {
+                                       console.log( err );
                                        return reject( err );
                                }
                                        return reject( err );
                                }
-                               resolve();
+                               client.edit( name, content, `Created page with "${content}"`, function ( err ) {
+                                       if ( err ) {
+                                               return reject( err );
+                                       }
+                                       resolve();
+                               } );
                        } );
                } );
        }
                        } );
                } );
        }
index 6049eb2..59e1878 100644 (file)
@@ -1,13 +1,19 @@
 /* eslint no-undef: "error" */
 /* eslint-env node */
 'use strict';
 /* eslint no-undef: "error" */
 /* eslint-env node */
 'use strict';
-var merge = require( 'deepmerge' ),
+const merge = require( 'deepmerge' ),
+       password = 'testpass',
+       username = 'WikiAdmin',
        wdioConf = require( './wdio.conf.js' );
 
 // Overwrite default settings
 exports.config = merge( wdioConf.config, {
        wdioConf = require( './wdio.conf.js' );
 
 // Overwrite default settings
 exports.config = merge( wdioConf.config, {
-       username: 'WikiAdmin',
-       password: 'testpass',
+       username: process.env.MEDIAWIKI_USER === undefined ?
+               username :
+               process.env.MEDIAWIKI_USER,
+       password: process.env.MEDIAWIKI_PASSWORD === undefined ?
+               password :
+               process.env.MEDIAWIKI_PASSWORD,
        screenshotPath: '../log/',
        baseUrl: process.env.MW_SERVER + process.env.MW_SCRIPT_PATH,
 
        screenshotPath: '../log/',
        baseUrl: process.env.MW_SERVER + process.env.MW_SCRIPT_PATH,
 
index 32a7712..cf9da0c 100644 (file)
@@ -3,7 +3,9 @@
 /* eslint-disable no-console, comma-dangle */
 'use strict';
 
 /* eslint-disable no-console, comma-dangle */
 'use strict';
 
-const path = require( 'path' );
+const password = 'vagrant',
+       path = require( 'path' ),
+       username = 'Admin';
 
 function relPath( foo ) {
        return path.resolve( __dirname, '../..', foo );
 
 function relPath( foo ) {
        return path.resolve( __dirname, '../..', foo );
@@ -23,10 +25,10 @@ exports.config = {
        // Use if from tests with:
        // browser.options.username
        username: process.env.MEDIAWIKI_USER === undefined ?
        // Use if from tests with:
        // browser.options.username
        username: process.env.MEDIAWIKI_USER === undefined ?
-               'Admin' :
+               username :
                process.env.MEDIAWIKI_USER,
        password: process.env.MEDIAWIKI_PASSWORD === undefined ?
                process.env.MEDIAWIKI_USER,
        password: process.env.MEDIAWIKI_PASSWORD === undefined ?
-               'vagrant' :
+               password :
                process.env.MEDIAWIKI_PASSWORD,
        //
        // ======
                process.env.MEDIAWIKI_PASSWORD,
        //
        // ======