@@ -49,12 +49,107 @@ def test_variable_many_embedded_fragments
4949
5050 def test_with_block
5151 template = Liquid ::Template . parse ( " {% comment %} {% endcomment %} " )
52- assert_equal ( [ String , String ] , block_types ( template . root . nodelist ) )
53- assert_equal ( 2 , template . root . nodelist . size )
52+ assert_equal ( [ String , Comment , String ] , block_types ( template . root . nodelist ) )
53+ assert_equal ( 3 , template . root . nodelist . size )
54+ end
55+
56+ def test_remove_empty_for_blocks_with_optimization_option
57+ source = <<~LIQUID . chomp
58+ {% for i in (1..1000000) %}
59+ {% endfor %}
60+ LIQUID
61+
62+ assert_root_nodelist_size ( source , 0 , omit_blank_nodes : true )
63+
64+ source = <<~LIQUID . chomp
65+ {% for i in (1..1000000) %}
66+ {% else %}
67+ {% endfor %}
68+ LIQUID
69+
70+ assert_root_nodelist_size ( source , 0 , omit_blank_nodes : true )
71+
72+ source = <<~LIQUID . chomp
73+ {% for i in list %}
74+ i
75+ {% endfor %}
76+ LIQUID
77+
78+ assert_root_nodelist_size ( source , 1 , omit_blank_nodes : true )
79+
80+ source = <<~LIQUID . chomp
81+ {% for i in list %}
82+ {% else %}
83+ 1
84+ {% endfor %}
85+ LIQUID
86+
87+ assert_root_nodelist_size ( source , 1 , omit_blank_nodes : true )
88+ end
89+
90+ def test_remove_comment_nodes_with_optimization_option
91+ source = <<~LIQUID . chomp
92+ {% comment %}
93+ {% if true %}
94+ {% endif %}
95+ {% endcomment %}
96+ LIQUID
97+
98+ assert_root_nodelist_size ( source , 0 , omit_blank_nodes : true )
99+
100+ source = <<~LIQUID . chomp
101+ {% liquid
102+ comment
103+ if true
104+ endif
105+ endcomment
106+ %}
107+ LIQUID
108+
109+ assert_root_nodelist_size ( source , 0 , omit_blank_nodes : true )
110+ end
111+
112+ def test_remove_if_nodes_with_optimization_option
113+ source = <<~LIQUID . chomp
114+ {% if true %}
115+ {% endif %}
116+ LIQUID
117+
118+ assert_root_nodelist_size ( source , 0 , omit_blank_nodes : true )
119+
120+ source = <<~LIQUID . chomp
121+ {% unless true %}
122+ {% endunless %}
123+ LIQUID
124+
125+ assert_root_nodelist_size ( source , 0 , omit_blank_nodes : true )
126+
127+ source = <<~LIQUID . chomp
128+ {% if false %}
129+ {% else %}
130+ {% endif %}
131+ LIQUID
132+
133+ assert_root_nodelist_size ( source , 0 , omit_blank_nodes : true )
134+
135+ source = <<~LIQUID . chomp
136+ {% if false %}
137+ {% else %}
138+ Hello!
139+ {% endif %}
140+ LIQUID
141+
142+ assert_root_nodelist_size ( source , 1 , omit_blank_nodes : true )
54143 end
55144
56145 private
57146
147+ def assert_root_nodelist_size ( source , expected_size , parse_options = { } )
148+ template = Liquid ::Template . parse ( source , parse_options )
149+
150+ assert_equal ( expected_size , template . root . nodelist . size )
151+ end
152+
58153 def block_types ( nodelist )
59154 nodelist . collect ( &:class )
60155 end
0 commit comments