Skip to content

Commit f2155e0

Browse files
committed
feat(launcher): normalize quoted paths
Closes #491
1 parent 42bf787 commit f2155e0

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

lib/launchers/Base.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,12 @@ var BaseBrowser = function(id, emitter, captureTimeout, retryLimit) {
100100

101101

102102
this._execCommand = function(cmd, args) {
103+
// normalize the cmd, remove quotes (spawn does not like them)
104+
if (cmd.charAt(0) === cmd.charAt(cmd.length - 1) && '\'`"'.indexOf(cmd.charAt(0)) !== -1) {
105+
cmd = cmd.substring(1, cmd.length - 1);
106+
log.warn('The path should not be quoted.\n Normalized the path to %s', cmd);
107+
}
108+
103109
log.debug(cmd + ' ' + args.join(' '));
104110
self._process = spawn(cmd, args);
105111

test/unit/launchers/Base.spec.coffee

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,22 @@ describe 'launchers Base', ->
9999
expect(spawnProcess.kill).to.not.have.been.called
100100

101101

102+
it 'should remove quotes from the cmd', ->
103+
browser = new m.BaseBrowser 123
104+
105+
browser.DEFAULT_CMD = darwin: '"/bin/brow ser"'
106+
browser.start '/url'
107+
expect(mockSpawn).to.have.been.calledWith '/bin/brow ser', ['/url?id=123']
108+
109+
browser.DEFAULT_CMD = darwin: '\'bin/brow ser\''
110+
browser.start '/url'
111+
expect(mockSpawn).to.have.been.calledWith '/bin/brow ser', ['/url?id=123']
112+
113+
browser.DEFAULT_CMD = darwin: '`bin/brow ser`'
114+
browser.start '/url'
115+
expect(mockSpawn).to.have.been.calledWith '/bin/brow ser', ['/url?id=123']
116+
117+
102118
describe 'kill', ->
103119
it 'should just fire done if already killed', (done) ->
104120
browser = new m.BaseBrowser 123, new events.EventEmitter, 0, 1 # disable retry

0 commit comments

Comments
 (0)