From 866e437c057c78606ba4281987602c0d9120a5ba Mon Sep 17 00:00:00 2001 From: Dylan Thacker-Smith Date: Mon, 19 Oct 2020 16:32:02 -0400 Subject: [PATCH] Test tag disabling using custom tags (#1318) Since I don't think we have any use case to disable the `raw` or `echo` tags, so I would like liquid-c to not have to support that --- test/integration/tag/disableable_test.rb | 44 ++++++++++++++---------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/test/integration/tag/disableable_test.rb b/test/integration/tag/disableable_test.rb index b20145d..ca53787 100644 --- a/test/integration/tag/disableable_test.rb +++ b/test/integration/tag/disableable_test.rb @@ -5,36 +5,44 @@ require 'test_helper' class TagDisableableTest < Minitest::Test include Liquid - class DisableRaw < Block - disable_tags "raw" + module RenderTagName + def render(_context) + tag_name + end end - class DisableRawEcho < Block - disable_tags "raw", "echo" - end - - class DisableableRaw < Liquid::Raw + class Custom < Tag prepend Liquid::Tag::Disableable + include RenderTagName end - class DisableableEcho < Liquid::Echo + class Custom2 < Tag prepend Liquid::Tag::Disableable + include RenderTagName end - def test_disables_raw + class DisableCustom < Block + disable_tags "custom" + end + + class DisableBoth < Block + disable_tags "custom", "custom2" + end + + def test_block_tag_disabling_nested_tag with_disableable_tags do - with_custom_tag('disable', DisableRaw) do - output = Template.parse('{% disable %}{% raw %}Foobar{% endraw %}{% echo "foo" %}{% enddisable %}').render - assert_equal('Liquid error: raw usage is not allowed in this contextfoo', output) + with_custom_tag('disable', DisableCustom) do + output = Template.parse('{% disable %}{% custom %};{% custom2 %}{% enddisable %}').render + assert_equal('Liquid error: custom usage is not allowed in this context;custom2', output) end end end - def test_disables_echo_and_raw + def test_block_tag_disabling_multiple_nested_tags with_disableable_tags do - with_custom_tag('disable', DisableRawEcho) do - output = Template.parse('{% disable %}{% raw %}Foobar{% endraw %}{% echo "foo" %}{% enddisable %}').render - assert_equal('Liquid error: raw usage is not allowed in this contextLiquid error: echo usage is not allowed in this context', output) + with_custom_tag('disable', DisableBoth) do + output = Template.parse('{% disable %}{% custom %};{% custom2 %}{% enddisable %}').render + assert_equal('Liquid error: custom usage is not allowed in this context;Liquid error: custom2 usage is not allowed in this context', output) end end end @@ -42,8 +50,8 @@ class TagDisableableTest < Minitest::Test private def with_disableable_tags - with_custom_tag('raw', DisableableRaw) do - with_custom_tag('echo', DisableableEcho) do + with_custom_tag('custom', Custom) do + with_custom_tag('custom2', Custom2) do yield end end