diff options
author | eileencodes <eileencodes@gmail.com> | 2016-11-06 18:55:15 -0500 |
---|---|---|
committer | eileencodes <eileencodes@gmail.com> | 2017-02-20 15:07:33 -0500 |
commit | 5bf0aa6745db27c45c0778f9f6e9046f9ee9fb94 (patch) | |
tree | 7ba85a8ea15146725c68ce6b9e5a94ebac6d0c9c /actionsystemtest/lib/action_system_test/driver_adapters.rb | |
parent | a21e18d5080a2c4808330271885f5664a725d3f3 (diff) | |
download | rails-5bf0aa6745db27c45c0778f9f6e9046f9ee9fb94.tar.gz rails-5bf0aa6745db27c45c0778f9f6e9046f9ee9fb94.tar.bz2 rails-5bf0aa6745db27c45c0778f9f6e9046f9ee9fb94.zip |
Turn system testing into it's own gem and rename
Renames `Rails::SystemTestCase` to `ActionSystemTest` and moves it to a
gem under the Rails name.
We need to name the class `ActionSystemTestCase` because the gem expects
a module but tests themselves expect a class.
Adds MIT-LICENSE, CHANGELOG, and README for the future.
Diffstat (limited to 'actionsystemtest/lib/action_system_test/driver_adapters.rb')
-rw-r--r-- | actionsystemtest/lib/action_system_test/driver_adapters.rb | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/actionsystemtest/lib/action_system_test/driver_adapters.rb b/actionsystemtest/lib/action_system_test/driver_adapters.rb new file mode 100644 index 0000000000..aead9d6f60 --- /dev/null +++ b/actionsystemtest/lib/action_system_test/driver_adapters.rb @@ -0,0 +1,46 @@ +module ActionSystemTest + # == System Testing Driver Adapters + # + # By default Rails supports Capybara with the Selenium Driver. Rails provides + # configuration setup for using the selenium driver with Capybara. + # Additionally Rails can be used as a layer between Capybara and its other + # supported drivers: +:rack_test+, +:selenium+, +:webkit+, or +:poltergeist+. + # + # *{RackTest}[https://github.com/jnicklas/capybara#racktest] + # *{Selenium}[http://seleniumhq.org/docs/01_introducing_selenium.html#selenium-2-aka-selenium-webdriver] + # *{Webkit}[https://github.com/thoughtbot/capybara-webkit] + # *{Poltergeist}[https://github.com/teampoltergeist/poltergeist] + # + # === Driver Features + # + # | | Default Browser | Supports Screenshots? | + # |-----------------|-----------------------|-----------------------| + # | Rails' Selenium | Chrome | Yes | + # | Rack Test | No JS Support | No | + # | Selenium | Firefox | Yes | + # | WebKit | Headless w/ Qt | Yes | + # | Poltergeist | Headless w/ PhantomJS | Yes | + module DriverAdapters + extend ActiveSupport::Autoload + + autoload :CapybaraDriver + autoload :RailsSeleniumDriver + + class << self + # Returns driver for specified name. + # + # ActionSystemTest::DriverAdapters.lookup(:rails_selenium_driver) + # # => ActionSystemTest::DriverAdapters::RailsSeleniumDriver + def lookup(driver) + if CapybaraDriver::CAPYBARA_DEFAULTS.include?(driver) + CapybaraDriver.new(name: driver) + elsif driver.is_a?(Symbol) + klass = const_get(driver.to_s.camelize) + klass.new + else + driver + end + end + end + end +end |