From a5013bb5af299db6bf97f67d4198220280717e80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 5 Mar 2012 11:27:14 -0800 Subject: Merge pull request #5288 from lest/patch-2 force response body to be read in assert_template Conflicts: actionpack/lib/action_controller/test_case.rb --- actionpack/CHANGELOG.md | 6 ++++++ actionpack/lib/action_controller/test_case.rb | 2 ++ actionpack/test/controller/layout_test.rb | 13 +++++++++++++ 3 files changed, 21 insertions(+) diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md index 42eced7a37..8cf9959831 100644 --- a/actionpack/CHANGELOG.md +++ b/actionpack/CHANGELOG.md @@ -1,5 +1,11 @@ ## Rails 3.2.12 (unreleased) ## +* Fix `assert_template` with `render :stream => true`. + Fix #1743. + Backport #5288. + + *Sergey Nartimov* + * Eagerly populate the http method loookup cache so local project inflections do not interfere with use of underscore method ( and we don't need locks ) diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb index b574a36430..bc6828a805 100644 --- a/actionpack/lib/action_controller/test_case.rb +++ b/actionpack/lib/action_controller/test_case.rb @@ -70,6 +70,8 @@ module ActionController # def assert_template(options = {}, message = nil) validate_request! + # Force body to be read in case the template is being streamed + response.body case options when NilClass, String, Symbol diff --git a/actionpack/test/controller/layout_test.rb b/actionpack/test/controller/layout_test.rb index bc171e201b..38c4baceb0 100644 --- a/actionpack/test/controller/layout_test.rb +++ b/actionpack/test/controller/layout_test.rb @@ -78,6 +78,13 @@ end class DefaultLayoutController < LayoutTest end +class StreamingLayoutController < LayoutTest + def render(*args) + options = args.extract_options! + super(*args, options.merge(:stream => true)) + end +end + class AbsolutePathLayoutController < LayoutTest layout File.expand_path(File.expand_path(__FILE__) + '/../../fixtures/layout_tests/layouts/layout_test') end @@ -122,6 +129,12 @@ class LayoutSetInResponseTest < ActionController::TestCase assert_template :layout => "layouts/layout_test" end + def test_layout_set_when_using_streaming_layout + @controller = StreamingLayoutController.new + get :hello + assert_template :hello + end + def test_layout_set_when_set_in_controller @controller = HasOwnLayoutController.new get :hello -- cgit v1.2.3