@@ -49,12 +49,107 @@ def test_variable_many_embedded_fragments
49
49
50
50
def test_with_block
51
51
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 )
54
143
end
55
144
56
145
private
57
146
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
+
58
153
def block_types ( nodelist )
59
154
nodelist . collect ( &:class )
60
155
end
0 commit comments