From f2155e0c3305538c0fb95791e56f34743977a865 Mon Sep 17 00:00:00 2001 From: Vojta Jina Date: Thu, 4 Jul 2013 01:01:04 -0700 Subject: [PATCH] feat(launcher): normalize quoted paths Closes #491 --- lib/launchers/Base.js | 6 ++++++ test/unit/launchers/Base.spec.coffee | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/lib/launchers/Base.js b/lib/launchers/Base.js index a5eafbe38..da03fa6cb 100644 --- a/lib/launchers/Base.js +++ b/lib/launchers/Base.js @@ -100,6 +100,12 @@ var BaseBrowser = function(id, emitter, captureTimeout, retryLimit) { this._execCommand = function(cmd, args) { + // normalize the cmd, remove quotes (spawn does not like them) + if (cmd.charAt(0) === cmd.charAt(cmd.length - 1) && '\'`"'.indexOf(cmd.charAt(0)) !== -1) { + cmd = cmd.substring(1, cmd.length - 1); + log.warn('The path should not be quoted.\n Normalized the path to %s', cmd); + } + log.debug(cmd + ' ' + args.join(' ')); self._process = spawn(cmd, args); diff --git a/test/unit/launchers/Base.spec.coffee b/test/unit/launchers/Base.spec.coffee index 6ffe090cd..5af9ac49f 100644 --- a/test/unit/launchers/Base.spec.coffee +++ b/test/unit/launchers/Base.spec.coffee @@ -99,6 +99,22 @@ describe 'launchers Base', -> expect(spawnProcess.kill).to.not.have.been.called + it 'should remove quotes from the cmd', -> + browser = new m.BaseBrowser 123 + + browser.DEFAULT_CMD = darwin: '"/bin/brow ser"' + browser.start '/url' + expect(mockSpawn).to.have.been.calledWith '/bin/brow ser', ['/url?id=123'] + + browser.DEFAULT_CMD = darwin: '\'bin/brow ser\'' + browser.start '/url' + expect(mockSpawn).to.have.been.calledWith '/bin/brow ser', ['/url?id=123'] + + browser.DEFAULT_CMD = darwin: '`bin/brow ser`' + browser.start '/url' + expect(mockSpawn).to.have.been.calledWith '/bin/brow ser', ['/url?id=123'] + + describe 'kill', -> it 'should just fire done if already killed', (done) -> browser = new m.BaseBrowser 123, new events.EventEmitter, 0, 1 # disable retry