diff options
author | Eileen M. Uchitelle <eileencodes@users.noreply.github.com> | 2019-01-29 17:54:16 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-29 17:54:16 -0500 |
commit | 94d54fa4ab641a0ddeb173409cb41cc5becc02a9 (patch) | |
tree | 0d9d2aa005388fb7980226068c720e6d362c451c /actionpack/lib/action_dispatch/system_testing | |
parent | 3d22069c6355dc60be65e01958cf32917bc53142 (diff) | |
parent | 1a4f61307286702205fd32b3aa62c26c21c9cce3 (diff) | |
download | rails-94d54fa4ab641a0ddeb173409cb41cc5becc02a9.tar.gz rails-94d54fa4ab641a0ddeb173409cb41cc5becc02a9.tar.bz2 rails-94d54fa4ab641a0ddeb173409cb41cc5becc02a9.zip |
Merge pull request #35081 from eileencodes/ec-driver-option-updated
[UPDATED] Implement a way to add browser capabilities
Diffstat (limited to 'actionpack/lib/action_dispatch/system_testing')
-rw-r--r-- | actionpack/lib/action_dispatch/system_testing/browser.rb | 21 | ||||
-rw-r--r-- | actionpack/lib/action_dispatch/system_testing/driver.rb | 9 |
2 files changed, 22 insertions, 8 deletions
diff --git a/actionpack/lib/action_dispatch/system_testing/browser.rb b/actionpack/lib/action_dispatch/system_testing/browser.rb index 1b0bce6b9e..f691bd5fe5 100644 --- a/actionpack/lib/action_dispatch/system_testing/browser.rb +++ b/actionpack/lib/action_dispatch/system_testing/browser.rb @@ -29,20 +29,27 @@ module ActionDispatch end end + def capabilities + @option ||= case type + when :chrome + Selenium::WebDriver::Chrome::Options.new + when :firefox + Selenium::WebDriver::Firefox::Options.new + end + end + private def headless_chrome_browser_options - options = Selenium::WebDriver::Chrome::Options.new - options.args << "--headless" - options.args << "--disable-gpu" if Gem.win_platform? + capability.args << "--headless" + capability.args << "--disable-gpu" if Gem.win_platform? - options + capabilities end def headless_firefox_browser_options - options = Selenium::WebDriver::Firefox::Options.new - options.args << "-headless" + capabilities.args << "-headless" - options + capabilities end end end diff --git a/actionpack/lib/action_dispatch/system_testing/driver.rb b/actionpack/lib/action_dispatch/system_testing/driver.rb index 5252ff6746..25a09dd918 100644 --- a/actionpack/lib/action_dispatch/system_testing/driver.rb +++ b/actionpack/lib/action_dispatch/system_testing/driver.rb @@ -3,11 +3,12 @@ module ActionDispatch module SystemTesting class Driver # :nodoc: - def initialize(name, **options) + def initialize(name, **options, &capabilities) @name = name @browser = Browser.new(options[:using]) @screen_size = options[:screen_size] @options = options[:options] + @capabilities = capabilities end def use @@ -22,6 +23,8 @@ module ActionDispatch end def register + define_browser_capabilities(@browser.capabilities) + Capybara.register_driver @name do |app| case @name when :selenium then register_selenium(app) @@ -31,6 +34,10 @@ module ActionDispatch end end + def define_browser_capabilities(capabilities) + @capabilities.call(capabilities) if @capabilities + end + def browser_options @options.merge(options: @browser.options).compact end |