1#!perl 2 3use strict ; 4use lib qw(t) ; 5use common ; 6 7use File::Slurp ; 8use Data::Dumper ; 9 10my $tests = [ 11 12 { 13 name => 'nested [- -]', 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> 43TEMPLATE 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> 69EXPECTED 70 }, 71 { 72 name => 'nested', 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> 98TEMPLATE 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> 124EXPECTED 125 }, 126 { 127 name => 'nested ,', 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%] 146TEMPLATE 147 148 expected => <<EXPECTED, 149,,,,, 150,,,,,,,,,{bart} 151 152,,,,,,,,, 153,,,,,,,,,{marge} 154 155,,,,,,,,, 156EXPECTED 157 }, 158 { 159 name => 'nested 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%] 175TEMPLATE 176 177 expected => <<EXPECTED, 178 179 <b>bart</b> 180 181 <b>marge</b> 182 183EXPECTED 184 }, 185 186] ; 187 188template_tester( $tests ) ; 189 190exit ; 191 192 193