From d14f64699715d24a7ceb33e6ef8fa14127716c24 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Sun, 20 Jul 2014 22:51:39 +0800 Subject: Fix AC::TemplateAssertions instance variables not resetting. Fixes https://github.com/rails/rails/issues/16119. --- actionpack/lib/action_controller/test_case.rb | 12 +++++++----- actionpack/lib/action_dispatch/testing/integration.rb | 1 + 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'actionpack/lib') diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb index a18c35e3e9..657924a16c 100644 --- a/actionpack/lib/action_controller/test_case.rb +++ b/actionpack/lib/action_controller/test_case.rb @@ -13,10 +13,7 @@ module ActionController end def setup_subscriptions - @_partials = Hash.new(0) - @_templates = Hash.new(0) - @_layouts = Hash.new(0) - @_files = Hash.new(0) + reset_template_assertion @_subscribers = [] @_subscribers << ActiveSupport::Notifications.subscribe("render_template.action_view") do |_name, _start, _finish, _id, payload| @@ -56,10 +53,15 @@ module ActionController end def process(*args) + reset_template_assertion + super + end + + def reset_template_assertion @_partials = Hash.new(0) @_templates = Hash.new(0) @_layouts = Hash.new(0) - super + @_files = Hash.new(0) end # Asserts that the request was rendered with the appropriate template file or partials. diff --git a/actionpack/lib/action_dispatch/testing/integration.rb b/actionpack/lib/action_dispatch/testing/integration.rb index cb2cb10870..12b796b95f 100644 --- a/actionpack/lib/action_dispatch/testing/integration.rb +++ b/actionpack/lib/action_dispatch/testing/integration.rb @@ -329,6 +329,7 @@ module ActionDispatch xml_http_request xhr get_via_redirect post_via_redirect).each do |method| define_method(method) do |*args| reset! unless integration_session + reset_template_assertion # reset the html_document variable, but only for new get/post calls @html_document = nil unless method == 'cookies' || method == 'assigns' integration_session.__send__(method, *args).tap do -- cgit v1.2.3