Skip to content

Commit da155c1

Browse files
dbojleyba
authored andcommitted
JS: Chrome base path handling, pass to the driver service
Fixes #492 Signed-off-by: Jason Leyba <[email protected]>
1 parent ec627ef commit da155c1

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

Diff for: javascript/node/selenium-webdriver/chrome.js

+5
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,9 @@ var ServiceBuilder = function(opt_exe) {
166166
};
167167

168168

169+
/** @private {string} */
170+
ServiceBuilder.prototype.path_ = null;
171+
169172
/** @private {number} */
170173
ServiceBuilder.prototype.port_ = 0;
171174

@@ -249,6 +252,7 @@ ServiceBuilder.prototype.setNumHttpThreads = function(n) {
249252
*/
250253
ServiceBuilder.prototype.setUrlBasePath = function(path) {
251254
this.args_.push('--url-base=' + path);
255+
this.path_ = path;
252256
return this;
253257
};
254258

@@ -291,6 +295,7 @@ ServiceBuilder.prototype.build = function() {
291295

292296
return new remote.DriverService(this.exe_, {
293297
loopback: true,
298+
path: this.path_,
294299
port: port,
295300
args: webdriver.promise.when(port, function(port) {
296301
return args.concat('--port=' + port);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
// Licensed to the Software Freedom Conservancy (SFC) under one
2+
// or more contributor license agreements. See the NOTICE file
3+
// distributed with this work for additional information
4+
// regarding copyright ownership. The SFC licenses this file
5+
// to you under the Apache License, Version 2.0 (the
6+
// "License"); you may not use this file except in compliance
7+
// with the License. You may obtain a copy of the License at
8+
//
9+
// http://www.apache.org/licenses/LICENSE-2.0
10+
//
11+
// Unless required by applicable law or agreed to in writing,
12+
// software distributed under the License is distributed on an
13+
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
// KIND, either express or implied. See the License for the
15+
// specific language governing permissions and limitations
16+
// under the License.
17+
18+
'use strict';
19+
20+
var webdriver = require('../..'),
21+
chrome = require('../../chrome'),
22+
assert = require('../../testing/assert');
23+
24+
var test = require('../../lib/test');
25+
26+
27+
test.suite(function(env) {
28+
describe('chromedriver', function() {
29+
var service;
30+
test.afterEach(function() {
31+
if (service) {
32+
return service.kill();
33+
}
34+
});
35+
36+
test.it('can be started on a custom path', function() {
37+
service = new chrome.ServiceBuilder()
38+
.setUrlBasePath('/foo/bar/baz')
39+
.build();
40+
return service.start().then(function(url) {
41+
assert(url).endsWith('/foo/bar/baz');
42+
});
43+
});
44+
});
45+
}, {browsers: ['chrome']});

0 commit comments

Comments
 (0)