Compare commits

..

5 Commits

Author SHA1 Message Date
Dylan Thacker-Smith
9567794a7a Only use MethodLiteral in condition expressions 2020-09-22 11:57:40 -04:00
Dylan Thacker-Smith
cddd8ea4ff Extract rescue code from BlockBody#render_node for re-use in liquid-c 2020-09-16 09:31:36 -04:00
Dylan Thacker-Smith
9917924adb Move some unit tests without internal coupling to integration tests
since I would like to continue supporting these tests in liquid-c
in the foreseeable future.
2020-09-15 16:32:12 -04:00
Dylan Thacker-Smith
17c3e9989a Move test/integration/parse_tree_visitor_test.rb to test/unit
The ParseTreeVisitor exposes the liquid internals that won't be
kept compatible with liquid-c, so move it out of the integration
tests directory so that we can easily ignore it when testing liquid-c
2020-09-15 16:32:12 -04:00
Dylan Thacker-Smith
2777b9d06c Allow creating symbols that are garbage collected in a test 2020-09-15 16:32:12 -04:00
3 changed files with 4 additions and 32 deletions

View File

@@ -153,11 +153,7 @@ module Liquid
if token[2] == WhitespaceControl
previous_token = @nodelist.last
if previous_token.is_a?(String)
first_byte = previous_token.getbyte(0)
previous_token.rstrip!
if previous_token.empty? && parse_context[:bug_compatible_whitespace_trimming] && first_byte
previous_token << first_byte
end
end
end
parse_context.trim_whitespace = (token[-3] == WhitespaceControl)

View File

@@ -34,6 +34,10 @@ module Liquid
@method_name = method_name
@to_s = to_s
end
def to_liquid
to_s
end
end
@@method_literals = {

View File

@@ -528,32 +528,4 @@ class TrimModeTest < Minitest::Test
END_EXPECTED
assert_template_result(expected, text)
end
def test_pre_trim_blank_preceding_text
template = Liquid::Template.parse("\n{%- raw %}{% endraw %}")
assert_equal("", template.render)
template = Liquid::Template.parse("\n{%- if true %}{% endif %}")
assert_equal("", template.render)
template = Liquid::Template.parse("{{ 'B' }} \n{%- if true %}C{% endif %}")
assert_equal("BC", template.render)
end
def test_bug_compatible_pre_trim
template = Liquid::Template.parse("\n {%- raw %}{% endraw %}", bug_compatible_whitespace_trimming: true)
assert_equal("\n", template.render)
template = Liquid::Template.parse("\n {%- if true %}{% endif %}", bug_compatible_whitespace_trimming: true)
assert_equal("\n", template.render)
template = Liquid::Template.parse("{{ 'B' }} \n{%- if true %}C{% endif %}", bug_compatible_whitespace_trimming: true)
assert_equal("B C", template.render)
template = Liquid::Template.parse("B\n {%- raw %}{% endraw %}", bug_compatible_whitespace_trimming: true)
assert_equal("B", template.render)
template = Liquid::Template.parse("B\n {%- if true %}{% endif %}", bug_compatible_whitespace_trimming: true)
assert_equal("B", template.render)
end
end # TrimModeTest