with_global_filter test helper

This commit is contained in:
Florian Weingarten
2014-07-28 19:28:22 +00:00
parent 57d5426eed
commit a2f0f2547d
6 changed files with 25 additions and 24 deletions
+4 -6
View File
@@ -16,12 +16,10 @@ class ContextTest < Minitest::Test
end end
end end
original_filters = Array.new(Strainer.class_eval('@@filters')) with_global_filter(global) do
Template.register_filter(global) assert_equal 'Global test', Template.parse("{{'test' | notice }}").render!
assert_equal 'Global test', Template.parse("{{'test' | notice }}").render! assert_equal 'Local test', Template.parse("{{'test' | notice }}").render!({}, :filters => [local])
assert_equal 'Local test', Template.parse("{{'test' | notice }}").render!({}, :filters => [local]) end
ensure
Strainer.class_eval('@@filters = ' + original_filters.to_s)
end end
def test_has_key_will_not_add_an_error_for_missing_keys def test_has_key_will_not_add_an_error_for_missing_keys
+1 -1
View File
@@ -104,7 +104,7 @@ class DropsTest < Minitest::Test
include Liquid include Liquid
def test_product_drop def test_product_drop
tpl = Liquid::Template.parse( ' ' ) tpl = Liquid::Template.parse(' ')
assert_equal ' ', tpl.render!('product' => ProductDrop.new) assert_equal ' ', tpl.render!('product' => ProductDrop.new)
end end
+5 -8
View File
@@ -111,14 +111,11 @@ class FiltersInTemplate < Minitest::Test
include Liquid include Liquid
def test_local_global def test_local_global
original_filters = Array.new(Strainer.class_eval('@@filters')) with_global_filter(MoneyFilter) do
Template.register_filter(MoneyFilter) assert_equal " 1000$ ", Template.parse("{{1000 | money}}").render!(nil, nil)
assert_equal " 1000$ CAD ", Template.parse("{{1000 | money}}").render!(nil, :filters => CanadianMoneyFilter)
assert_equal " 1000$ ", Template.parse("{{1000 | money}}").render!(nil, nil) assert_equal " 1000$ CAD ", Template.parse("{{1000 | money}}").render!(nil, :filters => [CanadianMoneyFilter])
assert_equal " 1000$ CAD ", Template.parse("{{1000 | money}}").render!(nil, :filters => CanadianMoneyFilter) end
assert_equal " 1000$ CAD ", Template.parse("{{1000 | money}}").render!(nil, :filters => [CanadianMoneyFilter])
ensure
Strainer.class_eval('@@filters = ' + original_filters.to_s)
end end
def test_local_filter_with_deprecated_syntax def test_local_filter_with_deprecated_syntax
+3 -8
View File
@@ -16,13 +16,8 @@ class HashOrderingTest < Minitest::Test
include Liquid include Liquid
def test_global_register_order def test_global_register_order
original_filters = Array.new(Strainer.class_eval('@@filters')) with_global_filter(MoneyFilter, CanadianMoneyFilter) do
Template.register_filter(MoneyFilter) assert_equal " 1000$ CAD ", Template.parse("{{1000 | money}}").render(nil, nil)
Template.register_filter(CanadianMoneyFilter) end
assert_equal " 1000$ CAD ", Template.parse("{{1000 | money}}").render(nil, nil)
ensure
Strainer.class_eval('@@filters = ' + original_filters.to_s)
end end
end end
+1 -1
View File
@@ -82,7 +82,7 @@ class ParsingQuirksTest < Minitest::Test
end end
def test_raise_on_invalid_tag_delimiter def test_raise_on_invalid_tag_delimiter
assert_raise(Liquid::SyntaxError) do assert_raises(Liquid::SyntaxError) do
Template.new.parse('{% end %}') Template.new.parse('{% end %}')
end end
end end
+11
View File
@@ -47,10 +47,21 @@ module Minitest
assert_match match, exception.message assert_match match, exception.message
end end
def with_global_filter(*globals)
original_filters = Array.new(Liquid::Strainer.class_variable_get(:@@filters))
globals.each do |global|
Liquid::Template.register_filter(global)
end
yield
ensure
Liquid::Strainer.class_variable_set(:@@filters, original_filters)
end
def with_error_mode(mode) def with_error_mode(mode)
old_mode = Liquid::Template.error_mode old_mode = Liquid::Template.error_mode
Liquid::Template.error_mode = mode Liquid::Template.error_mode = mode
yield yield
ensure
Liquid::Template.error_mode = old_mode Liquid::Template.error_mode = old_mode
end end
end end