diff --git a/actionpack/lib/action_dispatch/system_testing/driver.rb b/actionpack/lib/action_dispatch/system_testing/driver.rb index 1c2595be68..df6f2ab9cc 100644 --- a/actionpack/lib/action_dispatch/system_testing/driver.rb +++ b/actionpack/lib/action_dispatch/system_testing/driver.rb @@ -24,7 +24,7 @@ module ActionDispatch private def registerable? - [:selenium, :poltergeist, :webkit].include?(@name) + [:selenium, :poltergeist, :webkit, :rack_test].include?(@name) end def register @@ -35,6 +35,7 @@ module ActionDispatch when :selenium then register_selenium(app) when :poltergeist then register_poltergeist(app) when :webkit then register_webkit(app) + when :rack_test then register_rack_test(app) end end end @@ -59,6 +60,10 @@ module ActionDispatch end end + def register_rack_test(app) + Capybara::RackTest::Driver.new(app, { respect_data_method: true }.merge(@options)) + end + def setup Capybara.current_driver = @name end diff --git a/actionpack/test/dispatch/system_testing/driver_test.rb b/actionpack/test/dispatch/system_testing/driver_test.rb index d0fa252019..430286f5ee 100644 --- a/actionpack/test/dispatch/system_testing/driver_test.rb +++ b/actionpack/test/dispatch/system_testing/driver_test.rb @@ -51,10 +51,6 @@ class DriverTest < ActiveSupport::TestCase assert_equal ({ skip_image_loading: true }), driver.instance_variable_get(:@options) end - test "registerable? returns false if driver is rack_test" do - assert_not ActionDispatch::SystemTesting::Driver.new(:rack_test).send(:registerable?) - end - test "define extra capabilities using chrome" do driver = ActionDispatch::SystemTesting::Driver.new(:selenium, screen_size: [1400, 1400], using: :chrome) do |option| option.add_argument("start-maximized")