diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2016-03-07 18:05:02 -0300 |
---|---|---|
committer | Rafael França <rafaelmfranca@gmail.com> | 2016-03-07 18:05:02 -0300 |
commit | a38afb3e55e2dc4b33760321db51ccf8fa06b2c8 (patch) | |
tree | 840934c7c7aaeaf68084478c478e4a2599ab9746 /actionpack | |
parent | 75216b533b301d89c3bb04768a2d0da511ee1a4e (diff) | |
parent | 4ca01d95f6a26d0f65fa23b2a64ca32ec8ea8567 (diff) | |
download | rails-a38afb3e55e2dc4b33760321db51ccf8fa06b2c8.tar.gz rails-a38afb3e55e2dc4b33760321db51ccf8fa06b2c8.tar.bz2 rails-a38afb3e55e2dc4b33760321db51ccf8fa06b2c8.zip |
Merge pull request #23880 from bronson/extract-integration-behavior
extract ActionDispatch::IntegrationTest::Behavior
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_dispatch/testing/integration.rb | 57 |
1 files changed, 35 insertions, 22 deletions
diff --git a/actionpack/lib/action_dispatch/testing/integration.rb b/actionpack/lib/action_dispatch/testing/integration.rb index b0b5db704b..60c562d7cd 100644 --- a/actionpack/lib/action_dispatch/testing/integration.rb +++ b/actionpack/lib/action_dispatch/testing/integration.rb @@ -735,36 +735,49 @@ module ActionDispatch # Consult the Rails Testing Guide for more. class IntegrationTest < ActiveSupport::TestCase - include Integration::Runner - include ActionController::TemplateAssertions - include ActionDispatch::Routing::UrlFor + module UrlOptions + extend ActiveSupport::Concern + def url_options + integration_session.url_options + end + end - @@app = nil + module Behavior + extend ActiveSupport::Concern - def self.app - @@app || ActionDispatch.test_app - end + include Integration::Runner + include ActionController::TemplateAssertions - def self.app=(app) - @@app = app - end + included do + include ActionDispatch::Routing::UrlFor + include UrlOptions # don't let UrlFor override the url_options method + ActiveSupport.run_load_hooks(:action_dispatch_integration_test, self) + @@app = nil + end - def app - super || self.class.app - end + module ClassMethods + def app + defined?(@@app) ? @@app : ActionDispatch.test_app + end - def url_options - integration_session.url_options - end + def app=(app) + @@app = app + end - def document_root_element - html_document.root - end + def register_encoder(*args) + Integration::Session::RequestEncoder.register_encoder(*args) + end + end + + def app + super || self.class.app + end - def self.register_encoder(*args) - Integration::Session::RequestEncoder.register_encoder(*args) + def document_root_element + html_document.root + end end - ActiveSupport.run_load_hooks(:action_dispatch_integration_test, self) + include Behavior end end |