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