From 2c27c2a6e1414e6b85be404018d2af7b4947e654 Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Wed, 11 Nov 2020 14:24:33 -0500 Subject: [PATCH] Move tests for VariableLookup --- lib/liquid/variable_lookup.rb | 11 ++++---- test/unit/variable_lookup_unit_test.rb | 36 ++++++++++++++++++++++++++ test/unit/variable_unit_test.rb | 6 ----- 3 files changed, 42 insertions(+), 11 deletions(-) create mode 100644 test/unit/variable_lookup_unit_test.rb diff --git a/lib/liquid/variable_lookup.rb b/lib/liquid/variable_lookup.rb index 95ab6ca..cb59ddb 100644 --- a/lib/liquid/variable_lookup.rb +++ b/lib/liquid/variable_lookup.rb @@ -110,11 +110,12 @@ module Liquid def to_s str = name.dup lookups.each do |lookup| - if lookup.instance_of?(String) - str += '.' + lookup - else - str += '[' + lookup.to_s + ']' - end + str += + if lookup.instance_of?(String) + '.' + lookup + else + '[' + lookup.to_s + ']' + end end str end diff --git a/test/unit/variable_lookup_unit_test.rb b/test/unit/variable_lookup_unit_test.rb new file mode 100644 index 0000000..daf6849 --- /dev/null +++ b/test/unit/variable_lookup_unit_test.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +require 'test_helper' + +class VariableLookupUnitTest < Minitest::Test + include Liquid + + def test_variable_lookup_parsing + lookup = parse_variable_lookup('a.b.c') + assert_equal('a', lookup.name) + assert_equal(['b', 'c'], lookup.lookups) + + lookup = parse_variable_lookup('a[b]') + assert_equal('a', lookup.name) + assert_equal([parse_variable_lookup('b')], lookup.lookups) + end + + def test_to_s + lookup = parse_variable_lookup('a.b.c') + assert_equal('a.b.c', lookup.to_s) + + lookup = parse_variable_lookup('a[b.c].d') + assert_equal('a[b.c].d', lookup.to_s) + end + + private + + def parse_variable_lookup(markup) + if Liquid::Template.error_mode == :strict + p = Liquid::Parser.new(markup) + VariableLookup.strict_parse(p) + else + VariableLookup.lax_parse(markup) + end + end +end diff --git a/test/unit/variable_unit_test.rb b/test/unit/variable_unit_test.rb index 2833ffe..3c79f96 100644 --- a/test/unit/variable_unit_test.rb +++ b/test/unit/variable_unit_test.rb @@ -152,12 +152,6 @@ class VariableUnitTest < Minitest::Test assert_equal(" name_of_variable | upcase ", var.raw) end - def test_variable_lookup_interface - lookup = parse_variable_lookup('a.b.c') - assert_equal('a', lookup.name) - assert_equal(['b', 'c'], lookup.lookups) - end - private def parse_variable_lookup(markup)