diff options
author | John Hawthorn <john@hawthorn.email> | 2019-07-03 11:23:55 -0700 |
---|---|---|
committer | John Hawthorn <john@hawthorn.email> | 2019-07-03 13:56:50 -0700 |
commit | b21ef266619074c27f0ea147f5ebaccfe1709ecf (patch) | |
tree | 54062c1265bea879614b20dd0169cd60718b12eb /actionpack/test/dispatch | |
parent | 182d4751974cc95fb0145ea24299fd0ab98fd049 (diff) | |
download | rails-b21ef266619074c27f0ea147f5ebaccfe1709ecf.tar.gz rails-b21ef266619074c27f0ea147f5ebaccfe1709ecf.tar.bz2 rails-b21ef266619074c27f0ea147f5ebaccfe1709ecf.zip |
Preload browser driver_path for system testing
The webdrivers gem configures Selenium::WebDriver::Service.driver_path
as a proc which updates the web drivers and returns their path.
This commit introduces SystemTesting::Browser#preload, which runs this
proc early. This ensures that webdrivers update is run before forking
for parallel testing, but doesn't explicitly tie us to that gem (and I
think anything configured as driver_path probably makes sense to
eager-load).
Diffstat (limited to 'actionpack/test/dispatch')
-rw-r--r-- | actionpack/test/dispatch/system_testing/driver_test.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/actionpack/test/dispatch/system_testing/driver_test.rb b/actionpack/test/dispatch/system_testing/driver_test.rb index 7ef306d04b..d3b16d0328 100644 --- a/actionpack/test/dispatch/system_testing/driver_test.rb +++ b/actionpack/test/dispatch/system_testing/driver_test.rb @@ -120,4 +120,17 @@ class DriverTest < ActiveSupport::TestCase driver.use end end + + test "preloads browser's driver_path" do + called = false + + original_driver_path = ::Selenium::WebDriver::Chrome::Service.driver_path + ::Selenium::WebDriver::Chrome::Service.driver_path = -> { called = true } + + ActionDispatch::SystemTesting::Driver.new(:selenium, screen_size: [1400, 1400], using: :chrome) + + assert called + ensure + ::Selenium::WebDriver::Chrome::Service.driver_path = original_driver_path + end end |