mirror of
https://github.com/kemko/liquid.git
synced 2026-01-01 15:55:40 +03:00
Test disable_tags register
This commit is contained in:
@@ -38,8 +38,10 @@ module Liquid
|
||||
''
|
||||
end
|
||||
|
||||
def disabled?(context)
|
||||
context.registers['disabled_tags']&.disabled?(tag_name)
|
||||
def disabled?(context, output)
|
||||
if context.registers['disabled_tags']&.disabled?(tag_name)
|
||||
output << disabled_response
|
||||
end
|
||||
end
|
||||
|
||||
def disabled_response
|
||||
|
||||
@@ -45,7 +45,7 @@ module Liquid
|
||||
end
|
||||
|
||||
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)
|
||||
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 %}')
|
||||
assert_template_result '-1-2-1', '{% decrement %}{% decrement %}{% render "decr" %}'
|
||||
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
|
||||
|
||||
35
test/unit/registers/disabled_tags_test.rb
Normal file
35
test/unit/registers/disabled_tags_test.rb
Normal file
@@ -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