changed token_id to token_re
[urisagit/Template-Simple.git] / t / options.t
CommitLineData
e374d8da 1#!perl
2
3use lib qw(t) ;
4use common ;
5
6my $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%]
20TEMPLATE
21 expected => <<EXPECTED,
22FOO is 3
23bar is baz
24EXPECTED
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%>
38TEMPLATE
39 expected => <<EXPECTED,
40FOO is 3
41bar is baz
42EXPECTED
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%>
57TEMPLATE
58 expected => <<EXPECTED,
59FOO is 3
60bar is baz
61EXPECTED
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,
74AAAfooBBBBB
75AbARB
76TEMPLATE
77 expected => <<EXPECTED,
78FOO is 3
79bar is baz
80EXPECTED
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%>
97TEMPLATE
98 expected => <<EXPECTED,
99
1003
101
1024
103EXPECTED
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%>
127TEMPLATE
128 expected => <<EXPECTED,
129
1303
131
1324
133
1346
135
136quux
137EXPECTED
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%]
150bar
151[%END FOO%]
152[%END FOO%]
153TEMPLATE
154 expected => <<EXPECTED,
155foo
156EXPECTED
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%]
169bar
170[%END FOO%]
171[%END FOO%]
172TEMPLATE
173 expected => <<EXPECTED,
174foo
175[%END FOO%]
176EXPECTED
177 },
c1b17cb5 178 {
ba66415e 179 name => 'token_re',
c1b17cb5 180 opts => {
ba66415e 181 token_re => qw/[-\w]+?/,
c1b17cb5 182 },
183 data => {
184 'foo-bar' => 'FOO is 3',
185 'BAR-BAZ' => 'bar is baz',
186 },
187 template => <<TEMPLATE,
188[%foo-bar%]
189[%BAR-BAZ%]
190TEMPLATE
191 expected => <<EXPECTED,
192FOO is 3
193bar is baz
194EXPECTED
195 },
e374d8da 196] ;
197
198template_tester( $tests ) ;
199
200exit ;