Make sure :layout => false is always used when rendering inside a layout

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1970 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
Jamis Buck 2005-08-05 20:51:03 +00:00
parent 3d4a323776
commit a3469cadad
3 changed files with 14 additions and 2 deletions

View File

@ -1,5 +1,7 @@
*SVN* *SVN*
* Make sure :layout => false is always used when rendering inside a layout
* Use raise instead of assert_not_nil in Test::Unit::TestCase#process to ensure that the test variables (controller, request, response) have been set * Use raise instead of assert_not_nil in Test::Unit::TestCase#process to ensure that the test variables (controller, request, response) have been set
* Make sure assigns are built for every request when testing #1866 * Make sure assigns are built for every request when testing #1866

View File

@ -208,6 +208,7 @@ module ActionController #:nodoc:
template_with_options = options.is_a?(Hash) template_with_options = options.is_a?(Hash)
if apply_layout?(template_with_options, options) && (layout = pick_layout(template_with_options, options, deprecated_layout)) if apply_layout?(template_with_options, options) && (layout = pick_layout(template_with_options, options, deprecated_layout))
options = options.merge :layout => false if template_with_options
logger.info("Rendering #{options} within #{layout}") if logger logger.info("Rendering #{options} within #{layout}") if logger
if template_with_options if template_with_options
@ -266,4 +267,4 @@ module ActionController #:nodoc:
end end
end end
end end
end end

View File

@ -59,6 +59,10 @@ class NewRenderTestController < ActionController::Base
def rendering_without_layout def rendering_without_layout
render :action => "hello_world", :layout => false render :action => "hello_world", :layout => false
end end
def layout_overriding_layout
render :action => "hello_world", :layout => "standard"
end
def rendering_nothing_on_layout def rendering_nothing_on_layout
render :nothing => true render :nothing => true
@ -154,7 +158,7 @@ class NewRenderTestController < ActionController::Base
"layouts/standard" "layouts/standard"
when "builder_layout_test" when "builder_layout_test"
"layouts/builder" "layouts/builder"
when "action_talk_to_layout" when "action_talk_to_layout", "layout_overriding_layout"
"layouts/talk_from_action" "layouts/talk_from_action"
end end
end end
@ -261,6 +265,11 @@ class NewRenderTest < Test::Unit::TestCase
assert_equal "Hello world!", @response.body assert_equal "Hello world!", @response.body
end end
def test_layout_overriding_layout
get :layout_overriding_layout
assert_no_match %r{<title>}, @response.body
end
def test_rendering_nothing_on_layout def test_rendering_nothing_on_layout
get :rendering_nothing_on_layout get :rendering_nothing_on_layout
assert_equal " ", @response.body assert_equal " ", @response.body