diff --git a/test/integration/context_test.rb b/test/integration/context_test.rb index 942a506..d537aa2 100644 --- a/test/integration/context_test.rb +++ b/test/integration/context_test.rb @@ -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 diff --git a/test/integration/drop_test.rb b/test/integration/drop_test.rb index 7153435..7290298 100644 --- a/test/integration/drop_test.rb +++ b/test/integration/drop_test.rb @@ -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 diff --git a/test/integration/filter_test.rb b/test/integration/filter_test.rb index f214f94..d84458b 100644 --- a/test/integration/filter_test.rb +++ b/test/integration/filter_test.rb @@ -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 diff --git a/test/integration/hash_ordering_test.rb b/test/integration/hash_ordering_test.rb index 51b095a..588e1c1 100644 --- a/test/integration/hash_ordering_test.rb +++ b/test/integration/hash_ordering_test.rb @@ -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 diff --git a/test/integration/parsing_quirks_test.rb b/test/integration/parsing_quirks_test.rb index fd044a6..0701530 100644 --- a/test/integration/parsing_quirks_test.rb +++ b/test/integration/parsing_quirks_test.rb @@ -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 diff --git a/test/test_helper.rb b/test/test_helper.rb index d5bfe9e..d513f65 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -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