Skip to content

Commit a42e132

Browse files
committed
rb - better wires spec support for all platforms
1 parent 47a66a3 commit a42e132

File tree

4 files changed

+22
-10
lines changed

4 files changed

+22
-10
lines changed

Rakefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ task :test_rb => [
251251
"//rb:rc-client-integration-test",
252252
"//rb:chrome-test",
253253
"//rb:phantomjs-test",
254+
("//rb:wires-test" if ENV['MARIONETTE_PATH']),
254255
("//rb:safari-test" if mac?),
255256
("//rb:ie-test" if windows?),
256257
("//rb:edge-test" if windows?)

rb/lib/selenium/webdriver/firefox/service.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def start_process
9898
server_command = [@executable_path, "--binary=#{Firefox::Binary.path}", "--webdriver-port=#{@port}", *@extra_args]
9999
@process = ChildProcess.build(*server_command)
100100

101-
@process.io.inherit!
101+
@process.io.inherit! if $DEBUG || Platform.os == :windows
102102
@process.start
103103
end
104104

rb/lib/selenium/webdriver/remote/w3c_capabilities.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ def firefox(opts = {})
7373

7474
def w3c?(opts = {})
7575
return false unless opts[:desired_capabilities].is_a?(W3CCapabilities) || opts.delete(:wires)
76+
Firefox::Binary.path = ENV['MARIONETTE_PATH'] if ENV['MARIONETTE_PATH']
7677
firefox_version = Firefox::Binary.version
7778
raise ArgumentError, "Firefox Version #{firefox_version} does not support W3CCapabilities" if firefox_version < 43
7879
true

rb/spec/integration/selenium/webdriver/wires/wires_spec.rb

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,28 +26,38 @@ module WebDriver
2626
describe Firefox do
2727

2828
context "when designated firefox installation includes Marionette" do
29-
before(:all) { Firefox::Binary.path = "/Applications/FirefoxDeveloperEdition.app/Contents/MacOS/firefox-bin" }
30-
after { @driver.quit }
31-
32-
# Currently versions that support Wires do not support Legacy Firefox Extension
33-
xit "Does not use wires by default" do
34-
@driver = Selenium::WebDriver.for :firefox
35-
expect(@driver.instance_variable_get('@bridge').instance_variable_get('@launcher')).to_not be_nil
29+
before(:each) do
30+
unless ENV['MARIONETTE_PATH']
31+
pending "Set ENV['MARIONETTE_PATH'] to test Marionette enabled Firefox installations"
32+
end
3633
end
3734

38-
it "Uses Wires when initialized with :desired_capabilities" do
35+
after { @driver.quit if @driver }
36+
37+
it "Uses Wires when initialized with W3C desired_capabilities" do
3938
caps = Selenium::WebDriver::Remote::W3CCapabilities.firefox
4039
expect { @driver = Selenium::WebDriver.for :firefox, :desired_capabilities => caps }.to_not raise_exception
4140
end
4241

4342
it "Uses Wires when initialized with wires option" do
4443
@driver = Selenium::WebDriver.for :firefox, {wires: true}
44+
4545
expect(@driver.instance_variable_get('@bridge').instance_variable_get('@launcher')).to be_nil
4646
end
47+
48+
it "Does not use wires by default" do
49+
@driver = Selenium::WebDriver.for :firefox
50+
expect(@driver.instance_variable_get('@bridge').instance_variable_get('@launcher')).to_not be_nil
51+
end
4752
end
4853

4954
context "when designated firefox installation does not include Marionette" do
50-
before(:all) { Firefox::Binary.path = "/Applications/Firefox.app/Contents/MacOS/firefox-bin" }
55+
before(:all) do
56+
@marionette_path = ENV['MARIONETTE_PATH']
57+
ENV['MARIONETTE_PATH'] = nil
58+
Firefox::Binary.instance_variable_set(:"@path", nil)
59+
end
60+
after(:all) {ENV['MARIONETTE_PATH'] = @marionette_path}
5161
let(:message) { /Firefox Version \d\d does not support W3CCapabilities/ }
5262

5363
it "Does not use Wires by default" do

0 commit comments

Comments
 (0)