[rb] update managing root paths for testing
diff --git a/rb/lib/selenium/webdriver/common/selenium_manager.rb b/rb/lib/selenium/webdriver/common/selenium_manager.rb
index 967a18c..be9f97a 100644
--- a/rb/lib/selenium/webdriver/common/selenium_manager.rb
+++ b/rb/lib/selenium/webdriver/common/selenium_manager.rb
@@ -17,6 +17,7 @@
# specific language governing permissions and limitations
# under the License.
+require 'bundler'
require 'open3'
module Selenium
@@ -28,12 +29,6 @@
#
class SeleniumManager
class << self
- attr_writer :bin_path
-
- def bin_path
- @bin_path ||= '../../../../../bin'
- end
-
# @param [Options] options browser options.
# @return [String] the path to the correct driver.
def driver_path(options)
@@ -76,17 +71,16 @@
def binary
@binary ||= begin
location = ENV.fetch('SE_MANAGER_PATH', begin
- directory = File.expand_path(bin_path, __FILE__)
if Platform.windows?
- "#{directory}/windows/selenium-manager.exe"
+ "#{Bundler.root}/bin/windows/selenium-manager.exe"
elsif Platform.mac?
- "#{directory}/macos/selenium-manager"
+ "#{Bundler.root}/bin/macos/selenium-manager"
elsif Platform.linux?
- "#{directory}/linux/selenium-manager"
+ "#{Bundler.root}/bin/linux/selenium-manager"
elsif Platform.unix?
WebDriver.logger.warn('Selenium Manager binary may not be compatible with Unix; verify settings',
id: %i[selenium_manager unix_binary])
- "#{directory}/linux/selenium-manager"
+ "#{Bundler.root}/bin/linux/selenium-manager"
end
rescue Error::WebDriverError => e
raise Error::WebDriverError, "Unable to obtain Selenium Manager binary for #{e.message}"
diff --git a/rb/spec/integration/selenium/webdriver/spec_support/test_environment.rb b/rb/spec/integration/selenium/webdriver/spec_support/test_environment.rb
index 5ded602..9c8ad99 100644
--- a/rb/spec/integration/selenium/webdriver/spec_support/test_environment.rb
+++ b/rb/spec/integration/selenium/webdriver/spec_support/test_environment.rb
@@ -17,6 +17,8 @@
# specific language governing permissions and limitations
# under the License.
+require 'bundler'
+
module Selenium
module WebDriver
module SpecSupport
@@ -27,10 +29,17 @@
@create_driver_error = nil
@create_driver_error_count = 0
- $LOAD_PATH.insert(0, root.join('bazel-bin/rb/lib').to_s) if File.exist?(root.join('bazel-bin/rb/lib'))
- WebDriver.logger.ignore(%i[logger_info])
- SeleniumManager.bin_path = root.join('bazel-bin/rb/bin').to_s if File.exist?(root.join('bazel-bin/rb/bin'))
+ bazel_path = Bundler.root.join('bazel-bin/rb/').to_s
+ $LOAD_PATH.insert(0, "#{bazel_path}/lib").to_s
+ ENV['SE_MANAGER_PATH'] = if Platform.windows?
+ "#{bazel_path}/bin/windows/selenium-manager.exe"
+ elsif Platform.mac?
+ "#{bazel_path}/bin/macos/selenium-manager"
+ elsif Platform.linux?
+ "#{bazel_path}/bin/linux/selenium-manager"
+ end
+ WebDriver.logger.ignore(:logger_info)
@driver = ENV.fetch('WD_SPEC_DRIVER', 'chrome').tr('-', '_').to_sym
@driver_instance = nil
@remote_server = nil
@@ -77,7 +86,7 @@
def app_server
@app_server ||= begin
- app_server = RackServer.new(root.join('common/src/web').to_s, random_port)
+ app_server = RackServer.new(Bundler.root.join('common/src/web').to_s, random_port)
app_server.start
app_server
@@ -108,7 +117,7 @@
def remote_server_jar
jar = 'java/src/org/openqa/selenium/grid/selenium_server_deploy.jar'
test_jar = Pathname.new(Dir.pwd).join(jar)
- built_jar = root.join("bazel-bin/#{jar}")
+ built_jar = Bundler.root.join("bazel-bin/#{jar}")
jar = if File.exist?(test_jar) && ENV['DOWNLOAD_SERVER'].nil?
test_jar
elsif File.exist?(built_jar) && ENV['DOWNLOAD_SERVER'].nil?
@@ -133,12 +142,6 @@
app_server.where_is filename
end
- def root
- # prefer #realpath over #expand_path to avoid problems with UNC
- # see https://bugs.ruby-lang.org/issues/13515
- @root ||= Pathname.new('../../../../../../../').realpath(__FILE__)
- end
-
def create_driver!(listener: nil, **opts, &block)
check_for_previous_error