f151054e21e3f0ced6edb6e9814737508d846f83
[urisagit/Template-Simple.git] / t / nested.t
1 #!perl
2
3 use strict ;
4 use lib qw(t) ;
5 use common ;
6
7 use File::Slurp ;
8 use Data::Dumper ;
9
10 my $tests = [
11
12         {
13                 name    => 'nested bug [- -]',
14                 skip    => 0,
15                 opts    => {
16                         pre_delim  => qr/\[\-/,
17                         post_delim => qr/\-\]/,
18                 },
19                 data    => {
20                         widgets => [
21                                 {
22                                         title => "bart",
23                                 },
24                                 {
25                                         title => "marge",
26                                 }
27                         ],
28                 },
29                 template => <<TEMPLATE,
30 <table width="100%" border=1>
31      [-start widgets-]
32      <tr>
33      <td>[-anchor-]</td>
34      <td>
35          <b>[-title-]</b>
36          <br>[-description-]
37      </td>
38      <td>[-escaped_anchor-]</td>
39      <td>[-options-]</td>
40      </tr>
41          [-end widgets-]
42 </table>
43 TEMPLATE
44
45                 expected => <<EXPECTED,
46 <table width="100%" border=1>
47      
48      <tr>
49      <td></td>
50      <td>
51          <b>bart</b>
52          <br>
53      </td>
54      <td></td>
55      <td></td>
56      </tr>
57          
58      <tr>
59      <td></td>
60      <td>
61          <b>marge</b>
62          <br>
63      </td>
64      <td></td>
65      <td></td>
66      </tr>
67          
68 </table>
69 EXPECTED
70         },
71         {
72                 name    => 'nested bug',
73                 skip    => 0,
74                 data    => {
75                         widgets => [
76                                 {
77                                         title => "bart",
78                                 },
79                                 {
80                                         title => "marge",
81                                 }
82                         ],
83                 },
84                 template => <<TEMPLATE,
85 <table width="100%" border=1>
86      [%start widgets%]
87      <tr>
88      <td>[%anchor%]</td>
89      <td>
90          <b>[%title%]</b>
91          <br>[%description%]
92      </td>
93      <td>[%escaped_anchor%]</td>
94      <td>[%options%]</td>
95      </tr>
96          [%end widgets%]
97 </table>
98 TEMPLATE
99
100                 expected => <<EXPECTED,
101 <table width="100%" border=1>
102      
103      <tr>
104      <td></td>
105      <td>
106          <b>bart</b>
107          <br>
108      </td>
109      <td></td>
110      <td></td>
111      </tr>
112          
113      <tr>
114      <td></td>
115      <td>
116          <b>marge</b>
117          <br>
118      </td>
119      <td></td>
120      <td></td>
121      </tr>
122          
123 </table>
124 EXPECTED
125         },
126         {
127                 name    => 'nested bug ,',
128                 skip    => 0,
129                 opts    => {
130                 },
131                 data    => {
132                         widgets => [
133                                 {
134                                         title => "bart",
135                                 },
136                                 {
137                                         title => "marge",
138                                 }
139                         ],
140                 },
141                 template => <<TEMPLATE,
142 ,,,,,[%start widgets%]
143 ,,,,,,,,,{[%title%]}
144 [% s %]
145 ,,,,,,,,,[%end widgets%]
146 TEMPLATE
147
148                 expected => <<EXPECTED,
149 ,,,,,
150 ,,,,,,,,,{bart}
151
152 ,,,,,,,,,
153 ,,,,,,,,,{marge}
154
155 ,,,,,,,,,
156 EXPECTED
157         },
158         {
159                 name    => 'nested bug short',
160                 skip    => 0,
161                 data    => {
162                         widgets => [
163                                 {
164                                         title => "bart",
165                                 },
166                                 {
167                                         title => "marge",
168                                 }
169                         ],
170                 },
171                 template => <<TEMPLATE,
172      [%start widgets%]
173          <b>[%title%]</b>
174          [%end widgets%]
175 TEMPLATE
176
177                 expected => <<EXPECTED,
178      
179          <b>bart</b>
180          
181          <b>marge</b>
182          
183 EXPECTED
184         },
185
186 ] ;
187
188 template_tester( $tests ) ;
189
190 exit ;
191
192