render_to_output_buffer

This commit is contained in:
Florian Weingarten
2019-04-23 17:06:29 -04:00
parent 2a1ca3152d
commit 9640e77805
30 changed files with 184 additions and 88 deletions
+4 -4
View File
@@ -1,12 +1,10 @@
require 'test_helper'
class FoobarTag < Liquid::Tag
def render(context, output = '')
def render_to_output_buffer(context, output)
output << ' '
output
end
Liquid::Template.register_tag('foobar', FoobarTag)
end
class BlankTestFileSystem
@@ -32,7 +30,9 @@ class BlankTest < Minitest::Test
end
def test_new_tags_are_not_blank_by_default
assert_template_result(" " * N, wrap_in_for("{% foobar %}"))
with_custom_tag('foobar', FoobarTag) do
assert_template_result(" " * N, wrap_in_for("{% foobar %}"))
end
end
def test_loops_are_blank
+1 -1
View File
@@ -66,7 +66,7 @@ class CustomInclude < Liquid::Tag
def parse(tokens)
end
def render(context, output = '')
def render_to_output_buffer(context, output)
output << @template_name[1..-2]
output
end
+9 -9
View File
@@ -177,31 +177,31 @@ class TemplateTest < Minitest::Test
def test_render_length_persists_between_blocks
t = Template.parse("{% if true %}aaaa{% endif %}")
t.resource_limits.render_length_limit = 3
t.resource_limits.render_length_limit = 7
assert_equal "Liquid error: Memory limits exceeded", t.render
t.resource_limits.render_length_limit = 4
t.resource_limits.render_length_limit = 8
assert_equal "aaaa", t.render
t = Template.parse("{% if true %}aaaa{% endif %}{% if true %}bbb{% endif %}")
t.resource_limits.render_length_limit = 6
t.resource_limits.render_length_limit = 13
assert_equal "Liquid error: Memory limits exceeded", t.render
t.resource_limits.render_length_limit = 7
t.resource_limits.render_length_limit = 14
assert_equal "aaaabbb", t.render
t = Template.parse("{% if true %}a{% endif %}{% if true %}b{% endif %}{% if true %}a{% endif %}{% if true %}b{% endif %}{% if true %}a{% endif %}{% if true %}b{% endif %}")
t.resource_limits.render_length_limit = 4
assert_equal "Liquid error: Memory limits exceeded", t.render
t.resource_limits.render_length_limit = 5
assert_equal "Liquid error: Memory limits exceeded", t.render
t.resource_limits.render_length_limit = 6
t.resource_limits.render_length_limit = 11
assert_equal "Liquid error: Memory limits exceeded", t.render
t.resource_limits.render_length_limit = 12
assert_equal "ababab", t.render
end
def test_render_length_uses_number_of_bytes_not_characters
t = Template.parse("{% if true %}すごい{% endif %}")
t.resource_limits.render_length_limit = 8
t.resource_limits.render_length_limit = 10
assert_equal "Liquid error: Memory limits exceeded", t.render
t.resource_limits.render_length_limit = 9
t.resource_limits.render_length_limit = 18
assert_equal "すごい", t.render
end