@@ -11,7 +11,7 @@ import * as path from 'path';
11
11
import * as q from 'q' ;
12
12
13
13
import { Config } from '../config' ;
14
- import { BrowserError } from '../exitCodes' ;
14
+ import { BrowserError , ConfigError } from '../exitCodes' ;
15
15
import { Logger } from '../logger' ;
16
16
17
17
import { DriverProvider } from './driverProvider' ;
@@ -95,13 +95,15 @@ export class Local extends DriverProvider {
95
95
* ready to test.
96
96
*/
97
97
setupDriverEnv ( ) : q . Promise < any > {
98
- let deferred = q . defer ( ) ;
99
-
100
98
this . addDefaultBinaryLocs_ ( ) ;
101
99
logger . info ( 'Starting selenium standalone server...' ) ;
102
100
103
101
let serverConf = this . config_ . localSeleniumStandaloneOpts || { } ;
104
102
103
+ if ( ! Array . isArray ( serverConf . jvmArgs ) ) {
104
+ throw new ConfigError ( logger , 'jvmArgs should be an array.' ) ;
105
+ }
106
+
105
107
// If args or port is not set use seleniumArgs and seleniumPort
106
108
// for backward compatibility
107
109
if ( serverConf . args === undefined ) {
@@ -121,14 +123,20 @@ export class Local extends DriverProvider {
121
123
122
124
this . server_ = new remote . SeleniumServer ( this . config_ . seleniumServerJar , serverConf ) ;
123
125
126
+ let deferred = q . defer ( ) ;
124
127
// 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
+ } ) ;
132
140
133
141
return deferred . promise ;
134
142
}
@@ -143,13 +151,9 @@ export class Local extends DriverProvider {
143
151
* is down.
144
152
*/
145
153
teardownEnv ( ) : q . Promise < any > {
146
- let deferred = q . defer ( ) ;
147
- super . teardownEnv ( ) . then ( ( ) => {
154
+ return super . teardownEnv ( ) . then ( ( ) => {
148
155
logger . info ( 'Shutting down selenium standalone server.' ) ;
149
- this . server_ . stop ( ) . then ( ( ) => {
150
- deferred . resolve ( ) ;
151
- } ) ;
156
+ return this . server_ . stop ( ) ;
152
157
} ) ;
153
- return deferred . promise ;
154
158
}
155
159
}
0 commit comments