mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Revert "Revert integration test refactoring that caused app test regressions"
This reverts commit 7142059883
.
This commit is contained in:
parent
094ad22349
commit
d5e55e960c
2 changed files with 10 additions and 18 deletions
|
@ -388,8 +388,16 @@ module ActionDispatch
|
|||
|
||||
APP_SESSIONS = {}
|
||||
|
||||
def app
|
||||
@app ||= nil
|
||||
attr_reader :app
|
||||
|
||||
def before_setup
|
||||
super
|
||||
@app = nil
|
||||
@integration_session = nil
|
||||
end
|
||||
|
||||
def integration_session
|
||||
@integration_session ||= create_session(app)
|
||||
end
|
||||
|
||||
# Reset the current session. This is useful for testing multiple sessions
|
||||
|
@ -417,8 +425,6 @@ module ActionDispatch
|
|||
%w(get post patch put head delete cookies assigns
|
||||
xml_http_request xhr get_via_redirect post_via_redirect).each do |method|
|
||||
define_method(method) do |*args|
|
||||
reset! unless integration_session
|
||||
|
||||
# reset the html_document variable, except for cookies/assigns calls
|
||||
unless method == 'cookies' || method == 'assigns'
|
||||
@html_document = nil
|
||||
|
@ -450,19 +456,16 @@ module ActionDispatch
|
|||
# Copy the instance variables from the current session instance into the
|
||||
# test instance.
|
||||
def copy_session_variables! #:nodoc:
|
||||
return unless integration_session
|
||||
@controller = @integration_session.controller
|
||||
@response = @integration_session.response
|
||||
@request = @integration_session.request
|
||||
end
|
||||
|
||||
def default_url_options
|
||||
reset! unless integration_session
|
||||
integration_session.default_url_options
|
||||
end
|
||||
|
||||
def default_url_options=(options)
|
||||
reset! unless integration_session
|
||||
integration_session.default_url_options = options
|
||||
end
|
||||
|
||||
|
@ -472,7 +475,6 @@ module ActionDispatch
|
|||
|
||||
# Delegate unhandled messages to the current session instance.
|
||||
def method_missing(sym, *args, &block)
|
||||
reset! unless integration_session
|
||||
if integration_session.respond_to?(sym)
|
||||
integration_session.__send__(sym, *args, &block).tap do
|
||||
copy_session_variables!
|
||||
|
@ -481,11 +483,6 @@ module ActionDispatch
|
|||
super
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def integration_session
|
||||
@integration_session ||= nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -663,7 +660,6 @@ module ActionDispatch
|
|||
end
|
||||
|
||||
def url_options
|
||||
reset! unless integration_session
|
||||
integration_session.url_options
|
||||
end
|
||||
|
||||
|
|
|
@ -254,10 +254,6 @@ class ResponseTest < ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
class ResponseIntegrationTest < ActionDispatch::IntegrationTest
|
||||
def app
|
||||
@app
|
||||
end
|
||||
|
||||
test "response cache control from railsish app" do
|
||||
@app = lambda { |env|
|
||||
ActionDispatch::Response.new.tap { |resp|
|
||||
|
|
Loading…
Reference in a new issue