提交 d5e55e96 编写于 作者: E eileencodes

Revert "Revert integration test refactoring that caused app test regressions"

This reverts commit 71420598.
上级 094ad223
......@@ -388,8 +388,16 @@ module Runner
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 @@ def remove! # :nodoc:
%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 @@ def open_session
# 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 @@ def respond_to?(method, include_private = false)
# 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 @@ def method_missing(sym, *args, &block)
super
end
end
private
def integration_session
@integration_session ||= nil
end
end
end
......@@ -663,7 +660,6 @@ def app
end
def url_options
reset! unless integration_session
integration_session.url_options
end
......
......@@ -254,10 +254,6 @@ def test_response_body_encoding
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|
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册