mirror of
https://github.com/Shopify/liquid.git
synced 2026-10-03 09:05:13 -07:00
Test disable_tags register
This commit is contained in:
+4
-2
@@ -38,8 +38,10 @@ module Liquid
|
|||||||
''
|
''
|
||||||
end
|
end
|
||||||
|
|
||||||
def disabled?(context)
|
def disabled?(context, output)
|
||||||
context.registers['disabled_tags']&.disabled?(tag_name)
|
if context.registers['disabled_tags']&.disabled?(tag_name)
|
||||||
|
output << disabled_response
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def disabled_response
|
def disabled_response
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ module Liquid
|
|||||||
end
|
end
|
||||||
|
|
||||||
def render_to_output_buffer(context, output)
|
def render_to_output_buffer(context, output)
|
||||||
return output << disabled_response if disabled?(context)
|
disabled?(context, output) && return
|
||||||
template_name = context.evaluate(@template_name_expr)
|
template_name = context.evaluate(@template_name_expr)
|
||||||
raise ArgumentError, options[:locale].t("errors.argument.include") unless template_name
|
raise ArgumentError, options[:locale].t("errors.argument.include") unless template_name
|
||||||
|
|
||||||
|
|||||||
@@ -146,4 +146,23 @@ class RenderTagTest < Minitest::Test
|
|||||||
Liquid::Template.file_system = StubFileSystem.new('decr' => '{% decrement %}')
|
Liquid::Template.file_system = StubFileSystem.new('decr' => '{% decrement %}')
|
||||||
assert_template_result '-1-2-1', '{% decrement %}{% decrement %}{% render "decr" %}'
|
assert_template_result '-1-2-1', '{% decrement %}{% decrement %}{% render "decr" %}'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_includes_will_not_render_inside_render_tag
|
||||||
|
Liquid::Template.file_system = StubFileSystem.new(
|
||||||
|
'foo' => 'bar',
|
||||||
|
'test_include' => '{% include "foo" %}'
|
||||||
|
)
|
||||||
|
|
||||||
|
assert_template_result 'include usage has been disabled in this context.', '{% render "test_include" %}'
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_includes_will_not_render_inside_nested_sibling_tags
|
||||||
|
Liquid::Template.file_system = StubFileSystem.new(
|
||||||
|
'foo' => 'bar',
|
||||||
|
'nested_render_with_sibling_include' => '{% render "test_include" %}{% include "foo" %}',
|
||||||
|
'test_include' => '{% include "foo" %}'
|
||||||
|
)
|
||||||
|
|
||||||
|
assert_template_result 'include usage has been disabled in this context.include usage has been disabled in this context.', '{% render "nested_render_with_sibling_include" %}'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class DisabledTagsTest < Minitest::Test
|
||||||
|
include Liquid
|
||||||
|
|
||||||
|
def test_disables_tag_specified
|
||||||
|
register = DisabledTags.new
|
||||||
|
register.disable("foo") do
|
||||||
|
assert_equal true, register.disabled?("foo")
|
||||||
|
assert_equal false, register.disabled?("bar")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_disables_nested_tags
|
||||||
|
register = DisabledTags.new
|
||||||
|
register.disable("foo") do
|
||||||
|
register.disable("foo") do
|
||||||
|
assert_equal true, register.disabled?("foo")
|
||||||
|
assert_equal false, register.disabled?("bar")
|
||||||
|
end
|
||||||
|
register.disable("bar") do
|
||||||
|
assert_equal true, register.disabled?("foo")
|
||||||
|
assert_equal true, register.disabled?("bar")
|
||||||
|
register.disable("foo") do
|
||||||
|
assert_equal true, register.disabled?("foo")
|
||||||
|
assert_equal true, register.disabled?("bar")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
assert_equal true, register.disabled?("foo")
|
||||||
|
assert_equal false, register.disabled?("bar")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user