Skip to content

Commit

Permalink
[rb] convert Bridge modules to subclasses
Browse files Browse the repository at this point in the history
  • Loading branch information
titusfortner committed Apr 2, 2020
1 parent 268cff2 commit abf5074
Show file tree
Hide file tree
Showing 9 changed files with 22 additions and 11 deletions.
2 changes: 1 addition & 1 deletion rb/lib/selenium/webdriver/chrome/bridge.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
module Selenium
module WebDriver
module Chrome
module Bridge
class Bridge < WebDriver::Remote::Bridge

COMMANDS = {
get_network_conditions: [:get, 'session/:session_id/chromium/network_conditions'],
Expand Down
4 changes: 4 additions & 0 deletions rb/lib/selenium/webdriver/chrome/driver.rb
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ def browser
:chrome
end

def bridge_class
Bridge
end

def execute_cdp(cmd, **params)
@bridge.send_command(cmd: cmd, params: params)
end
Expand Down
8 changes: 2 additions & 6 deletions rb/lib/selenium/webdriver/common/driver.rb
Original file line number Diff line number Diff line change
Expand Up @@ -319,14 +319,10 @@ def create_bridge(**opts)

capabilities = generate_capabilities(cap_array)

bridge = Remote::Bridge.new(http_client: opts.delete(:http_client), url: opts.delete(:url))
bridge_opts = {http_client: opts.delete(:http_client), url: opts.delete(:url)}
raise ArgumentError, "Unable to create a driver with parameters: #{opts}" unless opts.empty?

namespacing = self.class.to_s.split('::')

if Object.const_defined?("#{namespacing[0..-2].join('::')}::Bridge") && !namespacing.include?('Remote')
bridge.extend Object.const_get("#{namespacing[0, namespacing.length - 1].join('::')}::Bridge")
end
bridge = (respond_to?(:bridge_class) ? bridge_class : Remote::Bridge).new(bridge_opts)

bridge.create_session(capabilities)
bridge
Expand Down
3 changes: 1 addition & 2 deletions rb/lib/selenium/webdriver/edge_chrome/bridge.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@
module Selenium
module WebDriver
module EdgeChrome
module Bridge
include Selenium::WebDriver::Chrome::Bridge
class Bridge < WebDriver::Chrome::Bridge
end # Bridge
end # EdgeChrome
end # WebDriver
Expand Down
4 changes: 4 additions & 0 deletions rb/lib/selenium/webdriver/edge_chrome/driver.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ class Driver < Selenium::WebDriver::Chrome::Driver
def browser
:edge_chrome
end

def bridge_class
Bridge
end
end # Driver
end # EdgeChrome
end # WebDriver
Expand Down
2 changes: 1 addition & 1 deletion rb/lib/selenium/webdriver/firefox/bridge.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
module Selenium
module WebDriver
module Firefox
module Bridge
class Bridge < WebDriver::Remote::Bridge

COMMANDS = {
install_addon: [:post, 'session/:session_id/moz/addon/install'],
Expand Down
4 changes: 4 additions & 0 deletions rb/lib/selenium/webdriver/firefox/driver.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ class Driver < WebDriver::Driver
def browser
:firefox
end

def bridge_class
Bridge
end
end # Driver
end # Firefox
end # WebDriver
Expand Down
2 changes: 1 addition & 1 deletion rb/lib/selenium/webdriver/safari/bridge.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
module Selenium
module WebDriver
module Safari
module Bridge
class Bridge < WebDriver::Remote::Bridge

# https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/WebDriverEndpointDoc/Commands/Commands.html
COMMANDS = {
Expand Down
4 changes: 4 additions & 0 deletions rb/lib/selenium/webdriver/safari/driver.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ class Driver < WebDriver::Driver
def browser
:safari
end

def bridge_class
Bridge
end
end # Driver
end # Safari
end # WebDriver
Expand Down

0 comments on commit abf5074

Please sign in to comment.