diff options
Diffstat (limited to 'actionpack/lib/system_testing')
-rw-r--r-- | actionpack/lib/system_testing/base.rb | 9 | ||||
-rw-r--r-- | actionpack/lib/system_testing/driver_adapter.rb | 18 | ||||
-rw-r--r-- | actionpack/lib/system_testing/driver_adapters.rb | 13 | ||||
-rw-r--r-- | actionpack/lib/system_testing/driver_adapters/capybara_rack_test_driver.rb | 24 | ||||
-rw-r--r-- | actionpack/lib/system_testing/test_helper.rb | 12 |
5 files changed, 76 insertions, 0 deletions
diff --git a/actionpack/lib/system_testing/base.rb b/actionpack/lib/system_testing/base.rb new file mode 100644 index 0000000000..ae4236f97d --- /dev/null +++ b/actionpack/lib/system_testing/base.rb @@ -0,0 +1,9 @@ +require 'system_testing/test_helper' +require 'system_testing/driver_adapter' + +module SystemTesting + module Base + include TestHelper + include DriverAdapter + end +end diff --git a/actionpack/lib/system_testing/driver_adapter.rb b/actionpack/lib/system_testing/driver_adapter.rb new file mode 100644 index 0000000000..70c4396323 --- /dev/null +++ b/actionpack/lib/system_testing/driver_adapter.rb @@ -0,0 +1,18 @@ +require 'system_testing/driver_adapters' + +module SystemTesting + module DriverAdapter + extend ActiveSupport::Concern + + included do + self.driver_adapter = :capybara_rack_test_driver + end + + module ClassMethods + def driver_adapter=(driver_name_or_class) + driver = DriverAdapters.lookup(driver_name_or_class).new + driver.call + end + end + end +end diff --git a/actionpack/lib/system_testing/driver_adapters.rb b/actionpack/lib/system_testing/driver_adapters.rb new file mode 100644 index 0000000000..38e2bdddcc --- /dev/null +++ b/actionpack/lib/system_testing/driver_adapters.rb @@ -0,0 +1,13 @@ +module SystemTesting + module DriverAdapters + extend ActiveSupport::Autoload + + autoload :CapybaraRackTestDriver + + class << self + def lookup(name) + const_get(name.to_s.camelize) + end + end + end +end diff --git a/actionpack/lib/system_testing/driver_adapters/capybara_rack_test_driver.rb b/actionpack/lib/system_testing/driver_adapters/capybara_rack_test_driver.rb new file mode 100644 index 0000000000..2890686e29 --- /dev/null +++ b/actionpack/lib/system_testing/driver_adapters/capybara_rack_test_driver.rb @@ -0,0 +1,24 @@ +module SystemTesting + module DriverAdapters + class CapybaraRackTestDriver + attr_reader :useragent + + def initialize(useragent: 'Capybara') + @useragent = useragent + end + + def call + registration + end + + private + def registration + Capybara.register_driver :rack_test do |app| + Capybara::RackTest::Driver.new(app, headers: { + 'HTTP_USER_AGENT' => @useragent + }) + end + end + end + end +end diff --git a/actionpack/lib/system_testing/test_helper.rb b/actionpack/lib/system_testing/test_helper.rb new file mode 100644 index 0000000000..68b187ed7a --- /dev/null +++ b/actionpack/lib/system_testing/test_helper.rb @@ -0,0 +1,12 @@ +require 'capybara/rails' + +module SystemTesting + module TestHelper + include Capybara::DSL + + def after_teardown + Capybara.reset_sessions! + super + end + end +end |