diff --git a/lib/liquid/block.rb b/lib/liquid/block.rb index dc22a47..c74f7c2 100644 --- a/lib/liquid/block.rb +++ b/lib/liquid/block.rb @@ -77,6 +77,9 @@ module Liquid body.parse(tokens, parse_context) do |end_tag_name, end_tag_params| @blank &&= body.blank? + # Instrument for bug 1346 + Usage.increment("end_tag_params") if end_tag_params && !end_tag_params.empty? + return false if end_tag_name == block_delimiter raise_tag_never_closed(block_name) unless end_tag_name diff --git a/test/integration/block_test.rb b/test/integration/block_test.rb index 5cc2aa4..91569b5 100644 --- a/test/integration/block_test.rb +++ b/test/integration/block_test.rb @@ -55,4 +55,24 @@ class BlockTest < Minitest::Test assert_equal buf.object_id, output.object_id end end + + def test_instrument_for_bug_1346 + calls = [] + Liquid::Usage.stub(:increment, ->(name) { calls << name }) do + Liquid::Template.parse("{% for i in (1..2) %}{{ i }}{% endfor {% foo %}") + end + assert_equal(["end_tag_params"], calls) + + calls = [] + Liquid::Usage.stub(:increment, ->(name) { calls << name }) do + Liquid::Template.parse("{% for i in (1..2) %}{{ i }}{% endfor test %}") + end + assert_equal(["end_tag_params"], calls) + + calls = [] + Liquid::Usage.stub(:increment, ->(name) { calls << name }) do + Liquid::Template.parse("{% for i in (1..2) %}{{ i }}{% endfor %}") + end + assert_equal([], calls) + end end