@@ -11,7 +11,7 @@ import * as path from 'path';
1111import * as q from 'q' ;
1212
1313import { Config } from '../config' ;
14- import { BrowserError } from '../exitCodes' ;
14+ import { BrowserError , ConfigError } from '../exitCodes' ;
1515import { Logger } from '../logger' ;
1616
1717import { DriverProvider } from './driverProvider' ;
@@ -95,13 +95,15 @@ export class Local extends DriverProvider {
9595 * ready to test.
9696 */
9797 setupDriverEnv ( ) : q . Promise < any > {
98- let deferred = q . defer ( ) ;
99-
10098 this . addDefaultBinaryLocs_ ( ) ;
10199 logger . info ( 'Starting selenium standalone server...' ) ;
102100
103101 let serverConf = this . config_ . localSeleniumStandaloneOpts || { } ;
104102
103+ if ( ! Array . isArray ( serverConf . jvmArgs ) ) {
104+ throw new ConfigError ( logger , 'jvmArgs should be an array.' ) ;
105+ }
106+
105107 // If args or port is not set use seleniumArgs and seleniumPort
106108 // for backward compatibility
107109 if ( serverConf . args === undefined ) {
@@ -121,14 +123,20 @@ export class Local extends DriverProvider {
121123
122124 this . server_ = new remote . SeleniumServer ( this . config_ . seleniumServerJar , serverConf ) ;
123125
126+ let deferred = q . defer ( ) ;
124127 // start local server, grab hosted address, and resolve promise
125- this . server_ . start ( this . config_ . seleniumServerStartTimeout ) . then ( ( url : string ) => {
126- logger . info ( 'Selenium standalone server started at ' + url ) ;
127- this . server_ . address ( ) . then ( ( address : string ) => {
128- this . config_ . seleniumAddress = address ;
129- deferred . resolve ( ) ;
130- } ) ;
131- } ) ;
128+ this . server_ . start ( this . config_ . seleniumServerStartTimeout )
129+ . then ( ( url : string ) => {
130+ logger . info ( 'Selenium standalone server started at ' + url ) ;
131+ return this . server_ . address ( ) ;
132+ } )
133+ . then ( ( address : string ) => {
134+ this . config_ . seleniumAddress = address ;
135+ deferred . resolve ( ) ;
136+ } )
137+ . catch ( ( err : string ) => {
138+ deferred . reject ( err ) ;
139+ } ) ;
132140
133141 return deferred . promise ;
134142 }
@@ -143,13 +151,9 @@ export class Local extends DriverProvider {
143151 * is down.
144152 */
145153 teardownEnv ( ) : q . Promise < any > {
146- let deferred = q . defer ( ) ;
147- super . teardownEnv ( ) . then ( ( ) => {
154+ return super . teardownEnv ( ) . then ( ( ) => {
148155 logger . info ( 'Shutting down selenium standalone server.' ) ;
149- this . server_ . stop ( ) . then ( ( ) => {
150- deferred . resolve ( ) ;
151- } ) ;
156+ return this . server_ . stop ( ) ;
152157 } ) ;
153- return deferred . promise ;
154158 }
155159}
0 commit comments