Commit | Line | Data |
e374d8da |
1 | #!perl |
2 | |
3 | use lib qw(t) ; |
4 | use common ; |
5 | |
6 | my $tests = [ |
7 | |
8 | { |
9 | name => 'pre_delim', |
10 | opts => { |
11 | pre_delim => '<%', |
12 | }, |
13 | data => { |
14 | foo => 'FOO is 3', |
15 | BAR => 'bar is baz', |
16 | }, |
17 | template => <<TEMPLATE, |
18 | <%foo%] |
19 | <%BAR%] |
20 | TEMPLATE |
21 | expected => <<EXPECTED, |
22 | FOO is 3 |
23 | bar is baz |
24 | EXPECTED |
25 | }, |
26 | { |
27 | name => 'post_delim', |
28 | opts => { |
29 | post_delim => '%>', |
30 | }, |
31 | data => { |
32 | foo => 'FOO is 3', |
33 | BAR => 'bar is baz', |
34 | }, |
35 | template => <<TEMPLATE, |
36 | [%foo%> |
37 | [%BAR%> |
38 | TEMPLATE |
39 | expected => <<EXPECTED, |
40 | FOO is 3 |
41 | bar is baz |
42 | EXPECTED |
43 | }, |
44 | { |
45 | name => 'pre/post_delim', |
46 | opts => { |
47 | pre_delim => '<%', |
48 | post_delim => '%>', |
49 | }, |
50 | data => { |
51 | foo => 'FOO is 3', |
52 | BAR => 'bar is baz', |
53 | }, |
54 | template => <<TEMPLATE, |
55 | <%foo%> |
56 | <%BAR%> |
57 | TEMPLATE |
58 | expected => <<EXPECTED, |
59 | FOO is 3 |
60 | bar is baz |
61 | EXPECTED |
62 | }, |
63 | { |
64 | name => 'pre/post_delim regexes', |
65 | opts => { |
66 | pre_delim => qr/A+/, |
67 | post_delim => qr/B+/, |
68 | }, |
69 | data => { |
70 | foo => 'FOO is 3', |
71 | bAR => 'bar is baz', |
72 | }, |
73 | template => <<TEMPLATE, |
74 | AAAfooBBBBB |
75 | AbARB |
76 | TEMPLATE |
77 | expected => <<EXPECTED, |
78 | FOO is 3 |
79 | bar is baz |
80 | EXPECTED |
81 | }, |
82 | { |
83 | name => 'chunk delim', |
84 | opts => { |
85 | pre_delim => '<%', |
86 | post_delim => '%>', |
87 | }, |
88 | data => { |
89 | foo => { FOO => 3 }, |
90 | bar => { BAR => 4 }, |
91 | }, |
92 | template => <<TEMPLATE, |
93 | <%START foo%> |
94 | <%FOO%> |
95 | <%END foo%> |
96 | <%START bar%><%BAR%><%END bar%> |
97 | TEMPLATE |
98 | expected => <<EXPECTED, |
99 | |
100 | 3 |
101 | |
102 | 4 |
103 | EXPECTED |
104 | }, |
105 | |
106 | { |
107 | name => 'chunk delim - array of hashes', |
108 | opts => { |
109 | pre_delim => '<%', |
110 | post_delim => '%>', |
111 | }, |
112 | data => [ |
113 | { |
114 | foo => { FOO => 3 }, |
115 | bar => { BAR => 4 }, |
116 | }, |
117 | { |
118 | foo => { FOO => 6 }, |
119 | bar => { BAR => 'quux' }, |
120 | } |
121 | ], |
122 | template => <<TEMPLATE, |
123 | <%START foo%> |
124 | <%FOO%> |
125 | <%END foo%> |
126 | <%START bar%><%BAR%><%END bar%> |
127 | TEMPLATE |
128 | expected => <<EXPECTED, |
129 | |
130 | 3 |
131 | |
132 | 4 |
133 | |
134 | 6 |
135 | |
136 | quux |
137 | EXPECTED |
138 | }, |
139 | { |
140 | name => 'greedy chunk', |
141 | opts => { |
142 | greedy_chunk => 1, |
143 | }, |
144 | data => { |
145 | FOO => 'foo', |
146 | }, |
147 | template => <<TEMPLATE, |
148 | [%START FOO%] |
149 | [%START FOO%] |
150 | bar |
151 | [%END FOO%] |
152 | [%END FOO%] |
153 | TEMPLATE |
154 | expected => <<EXPECTED, |
155 | foo |
156 | EXPECTED |
157 | }, |
158 | { |
159 | name => 'not greedy chunk', |
160 | opts => { |
161 | greedy_chunk => 0, |
162 | }, |
163 | data => { |
164 | FOO => 'foo', |
165 | }, |
166 | template => <<TEMPLATE, |
167 | [%START FOO%] |
168 | [%START FOO%] |
169 | bar |
170 | [%END FOO%] |
171 | [%END FOO%] |
172 | TEMPLATE |
173 | expected => <<EXPECTED, |
174 | foo |
175 | [%END FOO%] |
176 | EXPECTED |
177 | }, |
178 | ] ; |
179 | |
180 | template_tester( $tests ) ; |
181 | |
182 | exit ; |