1#============================================================= -*-perl-*- 2# 3# t/table.t 4# 5# Tests the 'Table' plugin. 6# 7# Written by Andy Wardley <abw@kfs.org> 8# 9# Copyright (C) 2000-2006 Andy Wardley. All Rights Reserved. 10# 11# This is free software; you can redistribute it and/or modify it 12# under the same terms as Perl itself. 13# 14# $Id$ 15# 16#======================================================================== 17 18use strict; 19use warnings; 20use lib qw( ../lib ); 21use Template::Test; 22 23$Template::Test::DEBUG = 0; 24 25my $params = { 26 alphabet => [ 'a'..'z' ], 27 empty => [ ], 28}; 29 30test_expect(\*DATA, { POST_CHOMP => 1 }, $params); 31 32 33#------------------------------------------------------------------------ 34# test input 35#------------------------------------------------------------------------ 36 37__DATA__ 38 39-- test -- 40[% USE table(alphabet, rows=5) %] 41[% FOREACH letter = table.col(0) %] 42[% letter %].. 43[%- END +%] 44[% FOREACH letter = table.col(1) %] 45[% letter %].. 46[%- END %] 47 48-- expect -- 49a..b..c..d..e.. 50f..g..h..i..j.. 51 52-- test -- 53[% USE table(alphabet, rows=5) %] 54[% FOREACH letter = table.row(0) %] 55[% letter %].. 56[%- END +%] 57[% FOREACH letter = table.row(1) %] 58[% letter %].. 59[%- END %] 60 61-- expect -- 62a..f..k..p..u..z.. 63b..g..l..q..v.... 64 65-- test -- 66[% USE table(alphabet, rows=3) %] 67[% FOREACH col = table.cols %] 68[% col.0 %] [% col.1 %] [% col.2 +%] 69[% END %] 70 71-- expect -- 72a b c 73d e f 74g h i 75j k l 76m n o 77p q r 78s t u 79v w x 80y z 81 82-- test -- 83[% USE alpha = table(alphabet, cols=3, pad=0) %] 84[% FOREACH group = alpha.col %] 85[ [% group.first %] - [% group.last %] ([% group.size %] letters) ] 86[% END %] 87 88-- expect -- 89[ a - i (9 letters) ] 90[ j - r (9 letters) ] 91[ s - z (8 letters) ] 92 93-- test -- 94[% USE alpha = table(alphabet, rows=5, pad=0, overlap=1) %] 95[% FOREACH group = alpha.col %] 96[ [% group.first %] - [% group.last %] ([% group.size %] letters) ] 97[% END %] 98 99-- expect -- 100[ a - e (5 letters) ] 101[ e - i (5 letters) ] 102[ i - m (5 letters) ] 103[ m - q (5 letters) ] 104[ q - u (5 letters) ] 105[ u - y (5 letters) ] 106[ y - z (2 letters) ] 107 108 109-- test -- 110[% USE table(alphabet, rows=5, pad=0) %] 111[% FOREACH col = table.cols %] 112[% col.join('-') +%] 113[% END %] 114 115-- expect -- 116a-b-c-d-e 117f-g-h-i-j 118k-l-m-n-o 119p-q-r-s-t 120u-v-w-x-y 121z 122 123-- test -- 124[% USE table(alphabet, rows=8, overlap=1 pad=0) %] 125[% FOREACH col = table.cols %] 126[% FOREACH item = col %][% item %] [% END +%] 127[% END %] 128 129-- expect -- 130a b c d e f g h 131h i j k l m n o 132o p q r s t u v 133v w x y z 134 135-- test -- 136[% USE table([1,3,5], cols=5) %] 137[% FOREACH t = table.rows %] 138[% t.join(', ') %] 139[% END %] 140-- expect -- 1411, 3, 5 142 143-- test -- 144> 145[% USE table(empty, rows=3) -%] 146[% FOREACH col = table.cols -%] 147col 148[% FOREACH item = col -%] 149item: [% item -%] 150[% END -%] 151[% END -%] 152< 153-- expect -- 154> 155< 156