Skip to content

Commit 677a308

Browse files
authored
Merge pull request #12 from browserstack/args_fix
fixed issue with args affecting proxy and localIdentifer
2 parents 030dd8f + 65e6715 commit 677a308

File tree

3 files changed

+33
-16
lines changed

3 files changed

+33
-16
lines changed

browserstack-local.gemspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Gem::Specification.new do |s|
22
s.name = 'browserstack-local'
3-
s.version = '0.2.0'
4-
s.date = '2016-05-04'
3+
s.version = '1.0.0'
4+
s.date = '2016-07-06'
55
s.summary = "BrowserStack Local"
66
s.description = "Ruby bindings for BrowserStack Local"
77
s.authors = ["BrowserStack"]

lib/browserstack/local.rb

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,18 @@ def add_args(key, value=nil)
2929
elsif key == "forcelocal" && value.to_s != "false"
3030
@force_local_flag = "-forcelocal"
3131
elsif key == "localIdentifier"
32-
@local_identifier_flag = "-localIdentifier '#{value}'"
32+
@local_identifier_flag = value
3333
elsif key == "f"
3434
@folder_flag = "-f"
35-
@folder_path = "'#{value}'"
35+
@folder_path = value
3636
elsif key == "proxyHost"
37-
@proxy_host = "-proxyHost '#{value}'"
37+
@proxy_host = value
3838
elsif key == "proxyPort"
39-
@proxy_port = "-proxyPort #{value}"
39+
@proxy_port = value
4040
elsif key == "proxyUser"
41-
@proxy_user = "-proxyUser '#{value}'"
41+
@proxy_user = value
4242
elsif key == "proxyPass"
43-
@proxy_pass = "-proxyPass '#{value}'"
43+
@proxy_pass = value
4444
elsif key == "hosts"
4545
@hosts = value
4646
elsif key == "logfile"
@@ -53,7 +53,7 @@ def add_args(key, value=nil)
5353
if value.to_s.downcase.eql?("true")
5454
@user_arguments << "-#{key}"
5555
else
56-
@user_arguments << "-#{key} '#{value}'"
56+
@user_arguments += ["-#{key}", value]
5757
end
5858
end
5959
end
@@ -122,11 +122,28 @@ def command
122122
end
123123

124124
def start_command
125-
"#{@binary_path} -d start -logFile '#{@logfile}' #{@folder_flag} #{@key} #{@folder_path} #{@force_local_flag} #{@local_identifier_flag} #{@only_flag} #{@only_automate_flag} #{@proxy_host} #{@proxy_port} #{@proxy_user} #{@proxy_pass} #{@force_proxy_flag} #{@force_flag} #{@verbose_flag} #{@hosts} #{@user_arguments.join(" ")} 2>&1".strip
125+
cmd = "#{@binary_path} -d start -logFile '#{@logfile}' #{@folder_flag} #{@key} #{@folder_path} #{@force_local_flag}"
126+
cmd += " -localIdentifier #{@local_identifier_flag}" if @local_identifier_flag
127+
cmd += " #{@only_flag} #{@only_automate_flag}"
128+
cmd += " -proxyHost #{@proxy_host}" if @proxy_host
129+
cmd += " -proxyPort #{@proxy_port}" if @proxy_port
130+
cmd += " -proxyUser #{@proxy_user}" if @proxy_user
131+
cmd += " -proxyPass #{@proxy_pass}" if @proxy_pass
132+
cmd += " #{@force_proxy_flag} #{@force_flag} #{@verbose_flag} #{@hosts} #{@user_arguments.join(" ")} 2>&1"
133+
cmd.strip
126134
end
127135

128136
def start_command_args
129-
args = ["#{@binary_path}", "-d", "start", "-logFile", "#{@logfile}", "#{@key}", "#{@folder_flag}", "#{@folder_path}", "#{@force_local_flag}", "#{@local_identifier_flag}", "#{@only_flag}", "#{@only_automate_flag}", "#{@proxy_host}", "#{@proxy_port}", "#{@proxy_user}", "#{@proxy_pass}", "#{@force_proxy_flag}","#{@force_flag}", "#{@verbose_flag}", "#{@hosts}", "#{@user_arguments.join(" ")}"]
137+
args = [@binary_path, "-d", "start", "-logFile", @logfile, @key, @folder_flag, @folder_path, @force_local_flag]
138+
args += ["-localIdentifier", local_identifier_flag] if @local_identifier_flag
139+
args += [@only_flag, @only_automate_flag]
140+
args += ["-proxyHost", @proxy_host] if @proxy_host
141+
args += ["-proxyPort", @proxy_port] if @proxy_port
142+
args += ["-proxyUser", @proxy_user] if @proxy_user
143+
args += ["-proxyPass", @proxy_pass] if @proxy_pass
144+
args += [@force_proxy_flag, @force_flag, @verbose_flag, @hosts]
145+
args += @user_arguments
146+
130147
args = args.select {|a| a.to_s != "" }
131148
args.push(:err => [:child, :out])
132149
args

test/browserstack-local-test.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def test_enable_verbose
3636
def test_set_folder
3737
@bs_local.add_args 'f', "/"
3838
assert_match /\-f/, @bs_local.command
39-
assert_match /\'\/\'/, @bs_local.command
39+
assert_match /\//, @bs_local.command
4040
end
4141

4242
def test_enable_force
@@ -61,7 +61,7 @@ def test_enable_force_local
6161

6262
def test_set_local_identifier
6363
@bs_local.add_args "localIdentifier", "randomString"
64-
assert_match /\-localIdentifier \'randomString\'/, @bs_local.command
64+
assert_match /\-localIdentifier randomString/, @bs_local.command
6565
end
6666

6767
def test_custom_boolean_argument
@@ -72,8 +72,8 @@ def test_custom_boolean_argument
7272
end
7373

7474
def test_custom_keyval
75-
@bs_local.add_args "customKey1", "custom value1"
76-
@bs_local.add_args "customKey2", "custom value2"
75+
@bs_local.add_args "customKey1", "'custom value1'"
76+
@bs_local.add_args "customKey2", "'custom value2'"
7777
assert_match /\-customKey1 \'custom value1\'/, @bs_local.command
7878
assert_match /\-customKey2 \'custom value2\'/, @bs_local.command
7979
end
@@ -83,7 +83,7 @@ def test_set_proxy
8383
@bs_local.add_args "proxyPort", 8080
8484
@bs_local.add_args "proxyUser", "user"
8585
@bs_local.add_args "proxyPass", "pass"
86-
assert_match /\-proxyHost \'localhost\' \-proxyPort 8080 \-proxyUser \'user\' \-proxyPass \'pass\'/, @bs_local.command
86+
assert_match /\-proxyHost localhost \-proxyPort 8080 \-proxyUser user \-proxyPass pass/, @bs_local.command
8787
end
8888

8989
def test_force_proxy

0 commit comments

Comments
 (0)