Skip to content
Browse files

Improve assert_template layout checking

  • Loading branch information...
1 parent 4bd05a7 commit 0d19a081ee12b46791d8709e5c0898429e2ef91f @avakhov avakhov committed Apr 11, 2012
View
18 actionpack/lib/action_controller/test_case.rb
@@ -22,6 +22,9 @@ def setup_subscriptions
path = payload[:layout]
if path
@layouts[path] += 1
+ if path =~ /^layouts\/(.*)/
+ @layouts[$1] += 1
+ end
end
end
@@ -61,6 +64,15 @@ def process(*args)
# # assert that the exact template "admin/posts/new" was rendered
# assert_template %r{\Aadmin/posts/new\Z}
#
+ # # assert that the layout 'admin' was rendered
+ # assert_template :layout => 'admin'
+ # assert_template :layout => 'layouts/admin'
+ # assert_template :layout => :admin
+ #
+ # # assert that no layout was rendered
+ # assert_template :layout => nil
+ # assert_template :layout => false
+ #
# # assert that the "_customer" partial was rendered twice
# assert_template :partial => '_customer', :count => 2
#
@@ -98,11 +110,11 @@ def assert_template(options = {}, message = nil)
expected_layout, @layouts.keys)
case expected_layout
- when String
- assert_includes @layouts.keys, expected_layout, msg
+ when String, Symbol
+ assert_includes @layouts.keys, expected_layout.to_s, msg
when Regexp
assert(@layouts.keys.any? {|l| l =~ expected_layout }, msg)
- when nil
+ when nil, false
assert(@layouts.empty?, msg)
end
end
View
15 actionpack/test/controller/action_pack_assertions_test.rb
@@ -500,6 +500,21 @@ def test_passed_with_no_layout
assert_template :layout => nil
end
+ def test_passed_with_no_layout_false
+ get :hello_world
+ assert_template :layout => false
+ end
+
+ def test_passes_with_correct_layout_without_layouts_prefix
+ get :render_with_layout
+ assert_template :layout => "standard"
+ end
+
+ def test_passes_with_correct_layout_symbol
+ get :render_with_layout
+ assert_template :layout => :standard
+ end
+
def test_assert_template_reset_between_requests
get :hello_world
assert_template 'test/hello_world'

0 comments on commit 0d19a08

Please sign in to comment.
Something went wrong with that request. Please try again.