diff --git a/lib/liquid/context.rb b/lib/liquid/context.rb index 0ba943b7..b757ce99 100644 --- a/lib/liquid/context.rb +++ b/lib/liquid/context.rb @@ -56,7 +56,7 @@ module Liquid if strainer.respond_to?(method) strainer.__send__(method, *args) else - args.first + raise FilterNotFound, "Filter '#{method}' not found" end end diff --git a/test/context_test.rb b/test/context_test.rb index 5c23376d..a57432b8 100644 --- a/test/context_test.rb +++ b/test/context_test.rb @@ -156,7 +156,9 @@ class ContextTest < Test::Unit::TestCase assert_equal 'hi? hi!', context.invoke(:hi, 'hi?') context = Context.new(@template) - assert_equal 'hi?', context.invoke(:hi, 'hi?') + assert_raises(FilterNotFound) { + context.invoke(:hi, 'hi?') + } context.add_filters(filter) assert_equal 'hi? hi!', context.invoke(:hi, 'hi?') diff --git a/test/security_test.rb b/test/security_test.rb index 1ab0d6fa..7bd600bb 100644 --- a/test/security_test.rb +++ b/test/security_test.rb @@ -11,14 +11,14 @@ class SecurityTest < Test::Unit::TestCase def test_no_instance_eval text = %( {{ '1+1' | instance_eval }} ) - expected = %| 1+1 | + expected = %! Liquid error: Error - filter 'instance_eval' in ''1+1' | instance_eval' could not be found. ! assert_equal expected, Template.parse(text).render(@assigns) end def test_no_existing_instance_eval text = %( {{ '1+1' | __instance_eval__ }} ) - expected = %| 1+1 | + expected = %! Liquid error: Error - filter '__instance_eval__' in ''1+1' | __instance_eval__' could not be found. ! assert_equal expected, Template.parse(text).render(@assigns) end @@ -26,7 +26,7 @@ class SecurityTest < Test::Unit::TestCase def test_no_instance_eval_after_mixing_in_new_filter text = %( {{ '1+1' | instance_eval }} ) - expected = %| 1+1 | + expected = %! Liquid error: Error - filter 'instance_eval' in ''1+1' | instance_eval' could not be found. ! assert_equal expected, Template.parse(text).render(@assigns) end @@ -34,7 +34,7 @@ class SecurityTest < Test::Unit::TestCase def test_no_instance_eval_later_in_chain text = %( {{ '1+1' | add_one | instance_eval }} ) - expected = %| 1+1 + 1 | + expected = %! Liquid error: Error - filter 'instance_eval' in ''1+1' | add_one | instance_eval' could not be found. ! assert_equal expected, Template.parse(text).render(@assigns, :filters => SecurityFilter) end