diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md index 85a83ed7d9570..409725ae90cc0 100644 --- a/actionpack/CHANGELOG.md +++ b/actionpack/CHANGELOG.md @@ -1,5 +1,9 @@ ## Rails 4.0.0 (unreleased) ## +* `assert_template` is no more passing with empty string when some template has been rendered. + + *Roberto Soares* + * Allow setting a symbol as path in scope on routes. This is now allowed: scope :api do diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb index be8055955d700..fd3a261a72b0a 100644 --- a/actionpack/lib/action_controller/test_case.rb +++ b/actionpack/lib/action_controller/test_case.rb @@ -94,10 +94,14 @@ def assert_template(options = {}, message = nil) matches_template = case options when String - rendered.any? do |t, num| - options_splited = options.split(File::SEPARATOR) - t_splited = t.split(File::SEPARATOR) - t_splited.last(options_splited.size) == options_splited + if options.empty? + rendered.blank? + else + rendered.any? do |t, num| + options_splited = options.split(File::SEPARATOR) + t_splited = t.split(File::SEPARATOR) + t_splited.last(options_splited.size) == options_splited + end end when Regexp rendered.any? { |t,num| t.match(options) } diff --git a/actionpack/test/controller/action_pack_assertions_test.rb b/actionpack/test/controller/action_pack_assertions_test.rb index ca542eb7e252c..c653f7e75666f 100644 --- a/actionpack/test/controller/action_pack_assertions_test.rb +++ b/actionpack/test/controller/action_pack_assertions_test.rb @@ -447,6 +447,13 @@ def test_with_nil_fails_when_template_rendered end end + def test_with_empty_string_fails_when_template_rendered + get :hello_world + assert_raise(ActiveSupport::TestCase::Assertion) do + assert_template "" + end + end + def test_passes_with_correct_string get :hello_world assert_template 'hello_world'