From d0c2cb752d366f5ad2afb5da64dab31f0894b39d Mon Sep 17 00:00:00 2001 From: msgehard Date: Mon, 2 Aug 2010 08:58:20 -0600 Subject: [PATCH] Layouts are now checked independently of partials in assert_template [5247 state:resolved] --- actionpack/lib/action_controller/test_case.rb | 34 ++++++++++++++---------- actionpack/test/controller/layout_test.rb | 2 +- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb index e306697..49acf5a 100644 --- a/actionpack/lib/action_controller/test_case.rb +++ b/actionpack/lib/action_controller/test_case.rb @@ -89,19 +89,6 @@ module ActionController "expecting ? to be rendered ? time(s) but rendered ? time(s)", expected_partial, expected_count, actual_count) assert(actual_count == expected_count.to_i, msg) - elsif options.key?(:layout) - msg = build_message(message, - "expecting layout but action rendered ", - expected_layout, @layouts.keys) - - case layout = options[:layout] - when String - assert(@layouts.include?(expected_layout), msg) - when Regexp - assert(@layouts.any? {|l| l =~ layout }, msg) - when nil - assert(@layouts.empty?, msg) - end else msg = build_message(message, "expecting partial but action rendered ", @@ -112,6 +99,25 @@ module ActionController assert @partials.empty?, "Expected no partials to be rendered" end + if expected_layout = options[:layout] + case expected_layout + when String + msg = build_message(message, + "expecting layout but action rendered layouts ", + expected_layout, @layouts.keys) + assert(@layouts.include?(expected_layout), msg) + when Regexp + msg = build_message(message, + "expecting layout to match but action rendered layouts ", + expected_layout, @layouts.keys) + assert(@layouts.keys.any? {|l| l =~ expected_layout }, msg) + when nil + msg = build_message(message, + "expecting no layout but action rendered layouts ", + @layouts.keys) + assert(@layouts.empty?, msg) + end + end end end end @@ -311,7 +317,7 @@ module ActionController def tests(controller_class) self.controller_class = controller_class end - + def controller_class=(new_class) prepare_controller_class(new_class) if new_class write_inheritable_attribute(:controller_class, new_class) diff --git a/actionpack/test/controller/layout_test.rb b/actionpack/test/controller/layout_test.rb index 165c61f..58d1e0b 100644 --- a/actionpack/test/controller/layout_test.rb +++ b/actionpack/test/controller/layout_test.rb @@ -167,7 +167,7 @@ class LayoutSetInResponseTest < ActionController::TestCase def test_layout_is_picked_from_the_controller_instances_view_path @controller = PrependsViewPathController.new get :hello - assert_template :layout => /layouts\/alt\.\w+/ + assert_template :layout => /layouts\/alt/ end def test_absolute_pathed_layout -- 1.7.0