1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Add a test case for layout nil.

This commit is contained in:
José Valim 2011-12-20 14:56:18 +01:00 committed by Alexey Vakhov
parent c82fd8fc2a
commit dd0275e463
2 changed files with 16 additions and 1 deletions

View file

@ -249,6 +249,7 @@ module AbstractController
# Symbol:: call the method specified by the symbol, which will return the template name
# false:: There is no layout
# true:: raise an ArgumentError
# nil:: Force default layout behavior with inheritance
#
# ==== Parameters
# * <tt>layout</tt> - The layout to use.

View file

@ -14,7 +14,10 @@ module AbstractControllerTests
"layouts/overwrite.erb" => "Overwrite <%= yield %>",
"layouts/with_false_layout.erb" => "False Layout <%= yield %>",
"abstract_controller_tests/layouts/with_string_implied_child.erb" =>
"With Implied <%= yield %>"
"With Implied <%= yield %>",
"abstract_controller_tests/layouts/with_grand_child_of_implied.erb" =>
"With Grand Child <%= yield %>"
)]
end
@ -64,6 +67,10 @@ module AbstractControllerTests
class WithChildOfImplied < WithStringImpliedChild
end
class WithGrandChildOfImplied < WithStringImpliedChild
layout nil
end
class WithProc < Base
layout proc { |c| "overwrite" }
@ -299,6 +306,13 @@ module AbstractControllerTests
assert_equal "With Implied Hello string!", controller.response_body
end
test "when a grandchild has nil layout specified, the child has an implied layout, and the " \
"parent has specified a layout, use the child controller layout" do
controller = WithGrandChildOfImplied.new
controller.process(:index)
assert_equal "With Grand Child Hello string!", controller.response_body
end
test "raises an exception when specifying layout true" do
assert_raises ArgumentError do
Object.class_eval do