From 704853b58be60b307261da9b9990a4c87c68860e Mon Sep 17 00:00:00 2001 From: Lucas Mazza Date: Thu, 23 Feb 2017 22:48:12 -0300 Subject: Change `SystemTestCase.driven_by` to use `setup`/`teardown` hooks Previously, `driven_by` would change the Capybara configuration when the test case is loaded, and having multiple test classes with different `driven_by` configs would fail as the last loaded would be effective. --- actionpack/lib/action_dispatch/system_test_case.rb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'actionpack/lib/action_dispatch/system_test_case.rb') diff --git a/actionpack/lib/action_dispatch/system_test_case.rb b/actionpack/lib/action_dispatch/system_test_case.rb index 70a5b75781..d6388d8fb7 100644 --- a/actionpack/lib/action_dispatch/system_test_case.rb +++ b/actionpack/lib/action_dispatch/system_test_case.rb @@ -105,9 +105,16 @@ module ActionDispatch # # driven_by :selenium, screen_size: [800, 800] def self.driven_by(driver, using: :chrome, screen_size: [1400, 1400]) - SystemTesting::Driver.new(driver).run + driver = if selenium?(driver) + SystemTesting::Browser.new(using, screen_size) + else + SystemTesting::Driver.new(driver) + end + + setup { driver.use } + teardown { driver.reset } + SystemTesting::Server.new.run - SystemTesting::Browser.new(using, screen_size).run if selenium?(driver) end def self.selenium?(driver) # :nodoc: -- cgit v1.2.3