token_re, include cleanup, git cleanup
[urisagit/Template-Simple.git] / t / include.t
CommitLineData
e374d8da 1#!perl
2
3use strict ;
4use lib qw(t) ;
5use common ;
6
7use File::Slurp ;
8use Data::Dumper ;
9
10# these dirs must be in order to the deepest for rmdir to work properly
11
12my @tmpl_dirs = qw( templates templates/deeper templates/deeper/deepest ) ;
13
14my %tmpl_files = (
15
16 'templates/FOO.tmpl' => <<FOO,
17this loads bar <[%include BAR%]>
18FOO
19 'templates/deeper/BAR.tmpl' => <<BAR,
20{this should hide}
21BAR
22 'templates/deeper/deepest/BAR.tmpl' => <<BAR,
23[this should be hidden then revealed]
24BAR
25
26) ;
27
28my $tests = [
e374d8da 29 {
30 name => 'simple include',
31 skip => 0,
32 opts => {
e374d8da 33 templates => {
34 'foo' => 'bar',
35 }
36 },
37 data => {},
38 template => '[%INCLUDE foo%]',
39 expected => 'bar',
40 },
41 {
42 name => 'nested includes',
43 skip => 0,
44 opts => {
45 templates => {
46 foo => '[%include bar%]',
47 bar => 'quux',
48 },
49 },
50 data => {},
51 template => '[%INCLUDE foo%]',
52 expected => 'quux',
53 },
54 {
55 name => 'serial includes',
56 skip => 0,
57 opts => {
58 templates => {
59 foo => 'foo is here',
60 bar => 'bar is too',
61 quux => 'quux is on the drums',
62 },
63 },
64 data => {},
65 template => '[%INCLUDE foo%] [%INCLUDE bar%] [%INCLUDE quux%]',
66 expected => 'foo is here bar is too quux is on the drums',
67 },
e374d8da 68 {
69 name => 'missing include',
70 skip => 0,
71 data => {},
72 keep_obj => 1,
73 pretest => sub { $_[0]{obj}->delete_templates() },
74 error => qr/can't find/,
75 },
e374d8da 76 {
77 name => 'load include files',
78 skip => 0,
79 opts => {
f5c8badf 80 search_dirs => [ qw(
e374d8da 81 templates
82 templates/deeper
83 templates/deeper/deepest
84 ) ],
85 },
86 data => {},
87 template => '[%INCLUDE FOO%]',
88 expected => <<EXPECTED,
89this loads bar <{this should hide}
90>
91EXPECTED
92
93 },
94 {
95 name => 'use lower path',
96 skip => 0,
97 opts => {
98 include_paths => [ qw(
99 templates
100 templates/deeper/deepest
101 ) ],
102 },
103 data => {},
104 expected => <<EXPECTED,
105this loads bar <[this should be hidden then revealed]
106>
107EXPECTED
108
109 },
110 {
111 name => 'delete covering file',
112 skip => 0,
113 opts => {
f5c8badf 114 search_dirs => [ qw(
e374d8da 115 templates
116 templates/deeper
117 templates/deeper/deepest
118 ) ],
119 },
120 pretest => sub { unlink 'templates/deeper/BAR.tmpl' },
f5c8badf 121 posttest => sub { write_tmpl_files() },
122
e374d8da 123 data => {},
124 expected => <<EXPECTED,
125this loads bar <[this should be hidden then revealed]
126>
127EXPECTED
128
129 },
130] ;
131
132
133write_tmpl_files() ;
134
135template_tester( $tests ) ;
136
137#remove_tmpl_files() ;
138
139exit ;
140
141
142sub write_tmpl_files {
143
144 mkdir $_, 0755 for @tmpl_dirs ;
145
146 while( my( $file, $tmpl ) = each %tmpl_files ) {
147
148 write_file( $file, $tmpl ) ;
149 }
150}
151
152sub remove_tmpl_files {
153
154 unlink keys %tmpl_files ;
e374d8da 155 rmdir $_ for reverse @tmpl_dirs ;
156}