diff options
author | eileencodes <eileencodes@gmail.com> | 2017-07-08 11:08:03 -0400 |
---|---|---|
committer | eileencodes <eileencodes@gmail.com> | 2017-07-08 11:13:28 -0400 |
commit | 91d22b783275474464a03f6487f5c28b5dc803b3 (patch) | |
tree | 797cf240a7532af1c439c903db1e47e2d855e230 | |
parent | a136c291ed29953787e8218137c01eadf6da63a8 (diff) | |
download | rails-91d22b783275474464a03f6487f5c28b5dc803b3.tar.gz rails-91d22b783275474464a03f6487f5c28b5dc803b3.tar.bz2 rails-91d22b783275474464a03f6487f5c28b5dc803b3.zip |
Don't call register on custom drivers
It's possible for developers toadd a custom driver and then call it
using `driven_by`. Because we were only skipping `register` for
`:rack_test` that meant any custom driver would attempt to be registered
as well.
The three listed here are special because Rails registers them with
special options. If you're registering your own custom driver then you
don't want to separately register that driver.
Fixes #29688
-rw-r--r-- | actionpack/lib/action_dispatch/system_testing/driver.rb | 6 | ||||
-rw-r--r-- | actionpack/test/dispatch/system_testing/driver_test.rb | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/actionpack/lib/action_dispatch/system_testing/driver.rb b/actionpack/lib/action_dispatch/system_testing/driver.rb index 1a027f2e23..81e6f0fc80 100644 --- a/actionpack/lib/action_dispatch/system_testing/driver.rb +++ b/actionpack/lib/action_dispatch/system_testing/driver.rb @@ -9,14 +9,14 @@ module ActionDispatch end def use - register unless rack_test? + register if registerable? setup end private - def rack_test? - @name == :rack_test + def registerable? + [:selenium, :poltergeist, :webkit].include?(@name) end def register diff --git a/actionpack/test/dispatch/system_testing/driver_test.rb b/actionpack/test/dispatch/system_testing/driver_test.rb index 4a1b971da5..34d27671bb 100644 --- a/actionpack/test/dispatch/system_testing/driver_test.rb +++ b/actionpack/test/dispatch/system_testing/driver_test.rb @@ -29,7 +29,7 @@ class DriverTest < ActiveSupport::TestCase assert_equal ({ skip_image_loading: true }), driver.instance_variable_get(:@options) end - test "rack_test? returns false if driver is poltergeist" do - assert_not ActionDispatch::SystemTesting::Driver.new(:poltergeist).send(:rack_test?) + test "registerable? returns false if driver is rack_test" do + assert_not ActionDispatch::SystemTesting::Driver.new(:rack_test).send(:registerable?) end end |