aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2016-03-07 18:05:02 -0300
committerRafael França <rafaelmfranca@gmail.com>2016-03-07 18:05:02 -0300
commita38afb3e55e2dc4b33760321db51ccf8fa06b2c8 (patch)
tree840934c7c7aaeaf68084478c478e4a2599ab9746
parent75216b533b301d89c3bb04768a2d0da511ee1a4e (diff)
parent4ca01d95f6a26d0f65fa23b2a64ca32ec8ea8567 (diff)
downloadrails-a38afb3e55e2dc4b33760321db51ccf8fa06b2c8.tar.gz
rails-a38afb3e55e2dc4b33760321db51ccf8fa06b2c8.tar.bz2
rails-a38afb3e55e2dc4b33760321db51ccf8fa06b2c8.zip
Merge pull request #23880 from bronson/extract-integration-behavior
extract ActionDispatch::IntegrationTest::Behavior
-rw-r--r--actionpack/lib/action_dispatch/testing/integration.rb57
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