mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Load selenium/webdriver only if needed
Currently, 'selenium-webdriver' gem is required to use system tests even if a non-selenium driver is used (such as Poltergeist, Cuprite, etc.). We should require it only if Selenium is used by a user
This commit is contained in:
parent
7cd59448ba
commit
ce82acab23
3 changed files with 9 additions and 3 deletions
|
@ -4,7 +4,6 @@ gem "capybara", ">= 3.26"
|
||||||
|
|
||||||
require "capybara/dsl"
|
require "capybara/dsl"
|
||||||
require "capybara/minitest"
|
require "capybara/minitest"
|
||||||
require "selenium/webdriver"
|
|
||||||
require "action_controller"
|
require "action_controller"
|
||||||
require "action_dispatch/system_testing/driver"
|
require "action_dispatch/system_testing/driver"
|
||||||
require "action_dispatch/system_testing/browser"
|
require "action_dispatch/system_testing/browser"
|
||||||
|
|
|
@ -10,7 +10,10 @@ module ActionDispatch
|
||||||
@options = options[:options] || {}
|
@options = options[:options] || {}
|
||||||
@capabilities = capabilities
|
@capabilities = capabilities
|
||||||
|
|
||||||
@browser.preload unless name == :rack_test
|
if name == :selenium
|
||||||
|
require "selenium/webdriver"
|
||||||
|
@browser.preload
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def use
|
def use
|
||||||
|
|
|
@ -148,9 +148,13 @@ class DriverTest < ActiveSupport::TestCase
|
||||||
::Selenium::WebDriver::Chrome::Service.driver_path = original_driver_path
|
::Selenium::WebDriver::Chrome::Service.driver_path = original_driver_path
|
||||||
end
|
end
|
||||||
|
|
||||||
test "does not preload if :rack_test is set" do
|
test "does not preload if used driver is not :selenium" do
|
||||||
assert_not_called_on_instance_of(ActionDispatch::SystemTesting::Browser, :preload) do
|
assert_not_called_on_instance_of(ActionDispatch::SystemTesting::Browser, :preload) do
|
||||||
ActionDispatch::SystemTesting::Driver.new(:rack_test, using: :chrome)
|
ActionDispatch::SystemTesting::Driver.new(:rack_test, using: :chrome)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
assert_not_called_on_instance_of(ActionDispatch::SystemTesting::Browser, :preload) do
|
||||||
|
ActionDispatch::SystemTesting::Driver.new(:poltergeist)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue