aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/testing/integration.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2015-02-12 12:04:23 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2015-02-12 12:04:23 -0800
commit303567e554de26822f3107be55c471d6477a745f (patch)
tree13c7fbc71d9434b93393d89d75c72fd9b8547961 /actionpack/lib/action_dispatch/testing/integration.rb
parentfa63448420d3385dbd043aca22dba973b45b8bb2 (diff)
downloadrails-303567e554de26822f3107be55c471d6477a745f.tar.gz
rails-303567e554de26822f3107be55c471d6477a745f.tar.bz2
rails-303567e554de26822f3107be55c471d6477a745f.zip
lazily create the integration session
now we don't have to call reset! everywhere
Diffstat (limited to 'actionpack/lib/action_dispatch/testing/integration.rb')
-rw-r--r--actionpack/lib/action_dispatch/testing/integration.rb12
1 files changed, 5 insertions, 7 deletions
diff --git a/actionpack/lib/action_dispatch/testing/integration.rb b/actionpack/lib/action_dispatch/testing/integration.rb
index f6b6c57a83..79aadaad53 100644
--- a/actionpack/lib/action_dispatch/testing/integration.rb
+++ b/actionpack/lib/action_dispatch/testing/integration.rb
@@ -389,7 +389,7 @@ module ActionDispatch
APP_SESSIONS = {}
- attr_reader :app, :integration_session
+ attr_reader :app
def before_setup
super
@@ -397,6 +397,10 @@ module ActionDispatch
@integration_session = nil
end
+ def integration_session
+ @integration_session ||= create_session(app)
+ end
+
# Reset the current session. This is useful for testing multiple sessions
# in a single test case.
def reset!
@@ -422,8 +426,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
@@ -462,12 +464,10 @@ module ActionDispatch
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
@@ -477,7 +477,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!
@@ -662,7 +661,6 @@ module ActionDispatch
end
def url_options
- reset! unless integration_session
integration_session.url_options
end