Skip to content

Commit

Permalink
[rb] set #driver_path on Service class instead of browser module
Browse files Browse the repository at this point in the history
  • Loading branch information
titusfortner committed Apr 17, 2019
1 parent 19887a4 commit 675d540
Show file tree
Hide file tree
Showing 17 changed files with 166 additions and 22 deletions.
9 changes: 6 additions & 3 deletions rb/lib/selenium/webdriver/chrome.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,15 @@ module Selenium
module WebDriver
module Chrome
def self.driver_path=(path)
Platform.assert_executable path
@driver_path = path
WebDriver.logger.deprecate 'Selenium::WebDriver::Chrome#driver_path=',
'Selenium::WebDriver::Chrome::Service#driver_path='
Selenium::WebDriver::Chrome::Service.driver_path = path
end

def self.driver_path
@driver_path ||= nil
WebDriver.logger.deprecate 'Selenium::WebDriver::Chrome#driver_path',
'Selenium::WebDriver::Chrome::Service#driver_path'
Selenium::WebDriver::Chrome::Service.driver_path
end

def self.path=(path)
Expand Down
6 changes: 5 additions & 1 deletion rb/lib/selenium/webdriver/chrome/service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ module Chrome

class Service < WebDriver::Service
@default_port = 9515
@driver_path = Chrome.driver_path
@executable = 'chromedriver'
@missing_text = <<~ERROR
Unable to find chromedriver. Please download the server from
Expand All @@ -35,6 +34,11 @@ class Service < WebDriver::Service
ERROR
@shutdown_supported = true

def self.driver_path=(path)
Platform.assert_executable path
@driver_path = path
end

private

# Note: This processing is deprecated
Expand Down
5 changes: 5 additions & 0 deletions rb/lib/selenium/webdriver/common/service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,11 @@ def edge(*args)
def safari(*args)
Safari::Service.new(*args)
end

def driver_path=(path)
Platform.assert_executable path if path.is_a?(String)
@driver_path = path
end
end

attr_accessor :host
Expand Down
11 changes: 7 additions & 4 deletions rb/lib/selenium/webdriver/edge.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,15 @@ module Selenium
module WebDriver
module Edge
def self.driver_path=(path)
Platform.assert_executable path
@driver_path = path
WebDriver.logger.deprecate 'Selenium::WebDriver::Edge#driver_path=',
'Selenium::WebDriver::Edge::Service#driver_path='
Selenium::WebDriver::Edge::Service.driver_path = path
end

def self.driver_path(_warning = true)
@driver_path ||= nil
def self.driver_path
WebDriver.logger.deprecate 'Selenium::WebDriver::Edge#driver_path',
'Selenium::WebDriver::Edge::Service#driver_path'
Selenium::WebDriver::Edge::Service.driver_path
end
end # Edge
end # WebDriver
Expand Down
1 change: 0 additions & 1 deletion rb/lib/selenium/webdriver/edge/service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ module Edge

class Service < WebDriver::Service
@default_port = 17556
@driver_path = Edge.driver_path
@executable = 'MicrosoftWebDriver'
@missing_text = <<~ERROR
Unable to find MicrosoftWebDriver. Please download the server from
Expand Down
9 changes: 6 additions & 3 deletions rb/lib/selenium/webdriver/firefox.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,15 @@ module Firefox
DEFAULT_LOAD_NO_FOCUS_LIB = false

def self.driver_path=(path)
Platform.assert_executable path
@driver_path = path
WebDriver.logger.deprecate 'Selenium::WebDriver::Firefox#driver_path=',
'Selenium::WebDriver::Firefox::Service#driver_path='
Selenium::WebDriver::Firefox::Service.driver_path = path
end

def self.driver_path
@driver_path ||= nil
WebDriver.logger.deprecate 'Selenium::WebDriver::Firefox#driver_path',
'Selenium::WebDriver::Firefox::Service#driver_path'
Selenium::WebDriver::Firefox::Service.driver_path
end

def self.path=(path)
Expand Down
1 change: 0 additions & 1 deletion rb/lib/selenium/webdriver/firefox/service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ module Firefox

class Service < WebDriver::Service
@default_port = 4444
@driver_path = Firefox.driver_path
@executable = 'geckodriver'
@missing_text = <<~ERROR
Unable to find Mozilla geckodriver. Please download the server from
Expand Down
9 changes: 6 additions & 3 deletions rb/lib/selenium/webdriver/ie.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,15 @@ module Selenium
module WebDriver
module IE
def self.driver_path=(path)
Platform.assert_executable path
@driver_path = path
WebDriver.logger.deprecate 'Selenium::WebDriver::IE#driver_path=',
'Selenium::WebDriver::IE::Service#driver_path='
Selenium::WebDriver::IE::Service.driver_path = path
end

def self.driver_path
@driver_path ||= nil
WebDriver.logger.deprecate 'Selenium::WebDriver::IE#driver_path',
'Selenium::WebDriver::IE::Service#driver_path'
Selenium::WebDriver::IE::Service.driver_path
end
end # IE
end # WebDriver
Expand Down
1 change: 0 additions & 1 deletion rb/lib/selenium/webdriver/ie/service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ module IE

class Service < WebDriver::Service
@default_port = 5555
@driver_path = IE.driver_path
@executable = 'IEDriverServer'
@missing_text = <<~ERROR
Unable to find IEDriverServer. Please download the server from
Expand Down
9 changes: 6 additions & 3 deletions rb/lib/selenium/webdriver/safari.rb
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,15 @@ def path
end

def driver_path=(path)
Platform.assert_executable path
@driver_path = path
WebDriver.logger.deprecate 'Selenium::WebDriver::Safari#driver_path=',
'Selenium::WebDriver::Safari::Service#driver_path='
Selenium::WebDriver::Safari::Service.driver_path = path
end

def driver_path
@driver_path ||= nil
WebDriver.logger.deprecate 'Selenium::WebDriver::Safari#driver_path',
'Selenium::WebDriver::Safari::Service#driver_path'
Selenium::WebDriver::Safari::Service.driver_path
end
end
end # Safari
Expand Down
1 change: 0 additions & 1 deletion rb/lib/selenium/webdriver/safari/service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ module Safari

class Service < WebDriver::Service
@default_port = 7050
@driver_path = Safari.driver_path
@executable = 'safaridriver'
@missing_text = <<~ERROR
Unable to find Apple's safaridriver which comes with Safari 10.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ def create_chrome_driver(opt = {})
WebDriver::Chrome.path = binary if binary

server = ENV['CHROMEDRIVER'] || ENV['chrome_server']
WebDriver::Chrome.driver_path = server if server
WebDriver::Chrome::Service.driver_path = server if server

WebDriver::Driver.for :chrome, opt
end
Expand Down
25 changes: 25 additions & 0 deletions rb/spec/unit/selenium/webdriver/chrome/service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,31 @@ module WebDriver
expect(service.uri.to_s).to eq "http://#{Platform.localhost}:#{port}"
end

it 'uses #driver_path=' do
path = '/path/to/driver'
Chrome::Service.driver_path = path

service = Service.chrome

expect(service.executable_path).to eq path
end

it 'accepts Chrome#driver_path= and Chrome#driver_path but throws deprecation notices' do
path = '/path/to/driver'

expect {
Selenium::WebDriver::Chrome.driver_path = path
}.to output(/WARN Selenium \[DEPRECATION\] Selenium::WebDriver::Chrome#driver_path=/).to_stdout_from_any_process

expect {
expect(Selenium::WebDriver::Chrome.driver_path).to eq path
}.to output(/WARN Selenium \[DEPRECATION\] Selenium::WebDriver::Chrome#driver_path/).to_stdout_from_any_process

service = Service.chrome

expect(service.executable_path).to eq path
end

it 'does not create args by default' do
allow(Platform).to receive(:find_binary).and_return(service_path)

Expand Down
24 changes: 24 additions & 0 deletions rb/spec/unit/selenium/webdriver/edge/service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,30 @@ module WebDriver
expect(service.uri.to_s).to eq "http://#{Platform.localhost}:#{port}"
end

it 'uses #driver_path=' do
path = '/path/to/driver'
Edge::Service.driver_path = path

service = Service.chrome

expect(service.executable_path).to eq path
end

it 'accepts Edge#driver_path= but throws deprecation notice' do
path = '/path/to/driver'
expect {
Selenium::WebDriver::Edge.driver_path = path
}.to output(/WARN Selenium \[DEPRECATION\] Selenium::WebDriver::Edge#driver_path=/).to_stdout_from_any_process

expect {
expect(Selenium::WebDriver::Edge.driver_path).to eq path
}.to output(/WARN Selenium \[DEPRECATION\] Selenium::WebDriver::Edge#driver_path/).to_stdout_from_any_process

service = Service.chrome

expect(service.executable_path).to eq path
end

it 'does not create args by default' do
allow(Platform).to receive(:find_binary).and_return(service_path)

Expand Down
25 changes: 25 additions & 0 deletions rb/spec/unit/selenium/webdriver/firefox/service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,31 @@ module WebDriver
expect(service.uri.to_s).to eq "http://#{Platform.localhost}:#{port}"
end

it 'uses #driver_path=' do
path = '/path/to/driver'
Firefox::Service.driver_path = path

service = Service.firefox

expect(service.executable_path).to eq path
end

it 'accepts Firefox#driver_path= but throws deprecation notice' do
path = '/path/to/driver'

expect {
Selenium::WebDriver::Firefox.driver_path = path
}.to output(/WARN Selenium \[DEPRECATION\] Selenium::WebDriver::Firefox#driver_path=/).to_stdout_from_any_process

expect {
expect(Selenium::WebDriver::Firefox.driver_path).to eq path
}.to output(/WARN Selenium \[DEPRECATION\] Selenium::WebDriver::Firefox#driver_path/).to_stdout_from_any_process

service = Service.firefox

expect(service.executable_path).to eq path
end

it 'does not create args by default' do
allow(Platform).to receive(:find_binary).and_return(service_path)

Expand Down
25 changes: 25 additions & 0 deletions rb/spec/unit/selenium/webdriver/ie/service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,31 @@ module WebDriver
expect(service.uri.to_s).to eq "http://#{Platform.localhost}:#{port}"
end

it 'uses #driver_path=' do
path = '/path/to/driver'
IE::Service.driver_path = path

service = Service.ie

expect(service.executable_path).to eq path
end

it 'accepts IE#driver_path= but throws deprecation notice' do
path = '/path/to/driver'

expect {
Selenium::WebDriver::IE.driver_path = path
}.to output(/WARN Selenium \[DEPRECATION\] Selenium::WebDriver::IE#driver_path=/).to_stdout_from_any_process

expect {
expect(Selenium::WebDriver::IE.driver_path).to eq path
}.to output(/WARN Selenium \[DEPRECATION\] Selenium::WebDriver::IE#driver_path/).to_stdout_from_any_process

service = Service.ie

expect(service.executable_path).to eq path
end

it 'does not create args by default' do
allow(Platform).to receive(:find_binary).and_return(service_path)

Expand Down
25 changes: 25 additions & 0 deletions rb/spec/unit/selenium/webdriver/safari/service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,31 @@ module WebDriver
expect(service.uri.to_s).to eq "http://#{Platform.localhost}:#{port}"
end

it 'uses #driver_path=' do
path = '/path/to/driver'
Safari::Service.driver_path = path

service = Service.safari

expect(service.executable_path).to eq path
end

it 'accepts Safari#driver_path= but throws deprecation notice' do
path = '/path/to/driver'

expect {
Selenium::WebDriver::Safari.driver_path = path
}.to output(/WARN Selenium \[DEPRECATION\] Selenium::WebDriver::Safari#driver_path=/).to_stdout_from_any_process

expect {
expect(Selenium::WebDriver::Safari.driver_path).to eq path
}.to output(/WARN Selenium \[DEPRECATION\] Selenium::WebDriver::Safari#driver_path/).to_stdout_from_any_process

service = Service.safari

expect(service.executable_path).to eq path
end

it 'does not create args by default' do
allow(Platform).to receive(:find_binary).and_return(service_path)

Expand Down

0 comments on commit 675d540

Please sign in to comment.