Skip to content
Open
8 changes: 8 additions & 0 deletions rb/lib/selenium/webdriver/common/options.rb
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,14 @@ def add_option(name, value = nil)
@options[name] = value
end

def enable_bidi!
@options[:web_socket_url] = true
end

def bidi?
!!@options[:web_socket_url]
end

def ==(other)
return false unless other.is_a? self.class

Expand Down
18 changes: 18 additions & 0 deletions rb/spec/integration/selenium/webdriver/chrome/options_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,24 @@ module Chrome
expect(ua).to eq('foo;bar')
end
end

it 'enables bidi' do
quit_driver

options = Selenium::WebDriver::Options.chrome
expect(options.web_socket_url).to be_nil
expect(options.bidi?).to be false

options.enable_bidi!
expect(options.web_socket_url).to be true
expect(options.bidi?).to be true

driver = Selenium::WebDriver.for :chrome, options: options

expect(driver.capabilities.web_socket_url).to be_a String

driver.quit
end
end
end # Chrome
end # WebDriver
Expand Down
12 changes: 12 additions & 0 deletions rb/spec/unit/selenium/webdriver/chrome/options_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,18 @@ module Chrome
end
end

describe '#enable_bidi!' do
it 'allows setting and querying bidi' do
expect(options.web_socket_url).to be_nil
expect(options.bidi?).to be false

options.enable_bidi!

expect(options.bidi?).to be true
expect(options.web_socket_url).to be true
end
end

describe '#add_extension' do
it 'adds an extension' do
allow(File).to receive(:file?).and_return(true)
Expand Down