diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2015-02-12 12:04:23 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2015-02-12 12:04:23 -0800 |
commit | 303567e554de26822f3107be55c471d6477a745f (patch) | |
tree | 13c7fbc71d9434b93393d89d75c72fd9b8547961 /actionpack/lib | |
parent | fa63448420d3385dbd043aca22dba973b45b8bb2 (diff) | |
download | rails-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')
-rw-r--r-- | actionpack/lib/action_dispatch/testing/integration.rb | 12 |
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 |