with_global_filter test helper

This commit is contained in:
Florian Weingarten
2014-07-28 16:32:09 +00:00
parent 57d5426eed
commit a2f0f2547d
6 changed files with 25 additions and 24 deletions

View File

@@ -16,12 +16,10 @@ class ContextTest < Minitest::Test
end
end
original_filters = Array.new(Strainer.class_eval('@@filters'))
Template.register_filter(global)
assert_equal 'Global test', Template.parse("{{'test' | notice }}").render!
assert_equal 'Local test', Template.parse("{{'test' | notice }}").render!({}, :filters => [local])
ensure
Strainer.class_eval('@@filters = ' + original_filters.to_s)
with_global_filter(global) do
assert_equal 'Global test', Template.parse("{{'test' | notice }}").render!
assert_equal 'Local test', Template.parse("{{'test' | notice }}").render!({}, :filters => [local])
end
end
def test_has_key_will_not_add_an_error_for_missing_keys

View File

@@ -104,7 +104,7 @@ class DropsTest < Minitest::Test
include Liquid
def test_product_drop
tpl = Liquid::Template.parse( ' ' )
tpl = Liquid::Template.parse(' ')
assert_equal ' ', tpl.render!('product' => ProductDrop.new)
end

View File

@@ -111,14 +111,11 @@ class FiltersInTemplate < Minitest::Test
include Liquid
def test_local_global
original_filters = Array.new(Strainer.class_eval('@@filters'))
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$ CAD ", Template.parse("{{1000 | money}}").render!(nil, :filters => [CanadianMoneyFilter])
ensure
Strainer.class_eval('@@filters = ' + original_filters.to_s)
with_global_filter(MoneyFilter) do
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
end
def test_local_filter_with_deprecated_syntax

View File

@@ -16,13 +16,8 @@ class HashOrderingTest < Minitest::Test
include Liquid
def test_global_register_order
original_filters = Array.new(Strainer.class_eval('@@filters'))
Template.register_filter(MoneyFilter)
Template.register_filter(CanadianMoneyFilter)
assert_equal " 1000$ CAD ", Template.parse("{{1000 | money}}").render(nil, nil)
ensure
Strainer.class_eval('@@filters = ' + original_filters.to_s)
with_global_filter(MoneyFilter, CanadianMoneyFilter) do
assert_equal " 1000$ CAD ", Template.parse("{{1000 | money}}").render(nil, nil)
end
end
end

View File

@@ -82,7 +82,7 @@ class ParsingQuirksTest < Minitest::Test
end
def test_raise_on_invalid_tag_delimiter
assert_raise(Liquid::SyntaxError) do
assert_raises(Liquid::SyntaxError) do
Template.new.parse('{% end %}')
end
end

View File

@@ -47,10 +47,21 @@ module Minitest
assert_match match, exception.message
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)
old_mode = Liquid::Template.error_mode
Liquid::Template.error_mode = mode
yield
ensure
Liquid::Template.error_mode = old_mode
end
end