X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fp5-CGI-Ex;a=blobdiff_plain;f=t%2F7_template_00_base.t;fp=t%2F7_template_00_base.t;h=aab6d0db928514f3e0a7e737ff3b8e0df78c782a;hp=b5813fc4b5f90be8b5c015c286cad8c548a4d4e3;hb=80a766126b7d0281ee013d369d9e6af45cc2cf42;hpb=8cd30501f5be7e40e26b3dc885dfe25520d39df9 diff --git a/t/7_template_00_base.t b/t/7_template_00_base.t index b5813fc..aab6d0d 100644 --- a/t/7_template_00_base.t +++ b/t/7_template_00_base.t @@ -14,7 +14,7 @@ BEGIN { }; use strict; -use Test::More tests => ! $is_tt ? 806 : 599; +use Test::More tests => ! $is_tt ? 894 : 613; use Data::Dumper qw(Dumper); use constant test_taint => 0 && eval { require Taint::Runtime }; @@ -270,10 +270,6 @@ process_ok('[% a = "a" %][% (c = (b = a)) %][% a %][% b %][% c %]' => 'aaaa'); process_ok("[% a = qw{Foo Bar Baz} ; a.2 %]" => 'Baz') if ! $is_tt; -process_ok("[% foo = 1 bar = 2 %][% foo %][% bar %]" => '12'); -process_ok("[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => '232') if ! $is_tt; -process_ok("[% a = 1 a = a + 2 a %]" => 3) if ! $is_tt; - process_ok("[% _foo = 1 %][% _foo %]2" => '2'); process_ok("[% foo._bar %]2" => '2', {foo => {_bar =>1}}); @@ -283,6 +279,17 @@ print "### multiple statements in same tag ##################################\n" process_ok("[% foo; %]" => '1', {foo => 1}); process_ok("[% GET foo; %]" => '1', {foo => 1}); process_ok("[% GET foo; GET foo %]" => '11', {foo => 1}); +process_ok("[% GET foo GET foo %]" => '11', {foo => 1}) if ! $is_tt; +process_ok("[% GET foo GET foo %]" => '', {foo => 1, tt_config => [SEMICOLONS => 1]}); + +process_ok("[% foo = 1 bar = 2 %][% foo %][% bar %]" => '12'); +process_ok("[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => '232') if ! $is_tt; +process_ok("[% a = 1 a = a + 2 a %]" => '3') if ! $is_tt; + +process_ok("[% foo = 1 bar = 2 %][% foo %][% bar %]" => '', {tt_config => [SEMICOLONS => 1]}) if ! $is_tt; +process_ok("[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => '', {tt_config => [SEMICOLONS => 1]}); +process_ok("[% a = 1 a = a + 2 a %]" => '', {tt_config => [SEMICOLONS => 1]}); + ###----------------------------------------------------------------### print "### CALL / DEFAULT ###################################################\n"; @@ -301,18 +308,20 @@ ok($t == 3, "CALL method actually called var"); print "### scalar vmethods ##################################################\n"; process_ok("[% n.0 %]" => '7', {n => 7}) if ! $is_tt; +process_ok("[% n.abs %]" => '7', {n => 7}) if ! $is_tt; +process_ok("[% n.abs %]" => '7', {n => -7}) if ! $is_tt; +process_ok("[% n.atan2.substr(0, 6) %]" => '1.5707', {n => 7}) if ! $is_tt; +process_ok("[% (4 * n.atan2(1)).substr(0, 7) %]" => '3.14159', {n => 1}) if ! $is_tt; process_ok("[% n.chunk(3).join %]" => 'abc def g', {n => 'abcdefg'}); process_ok("[% n.chunk(-3).join %]" => 'a bcd efg', {n => 'abcdefg'}); process_ok("[% n|collapse %]" => "a b", {n => ' a b '}); # TT2 filter +process_ok("[% n.cos.substr(0,5) %]" => "1", {n => 0}) if ! $is_tt; +process_ok("[% n.cos.substr(0,5) %]" => "0.707", {n => atan2(1,1)}) if ! $is_tt; process_ok("[% n.defined %]" => "1", {n => ''}); process_ok("[% n.defined %]" => "", {n => undef}); process_ok("[% n.defined %]" => "1", {n => '1'}); -process_ok("[% n|indent %]" => " a\n b", {n => "a\nb"}); # TT2 filter -process_ok("[% n|indent(2) %]" => " a\n b", {n => "a\nb"}); # TT2 filter -process_ok("[% n|indent('wow ') %]" => "wow a\nwow b", {n => "a\nb"}); # TT2 filter -process_ok("[% n.int %]" => "123", {n => "123.234"}) if ! $is_tt; -process_ok("[% n.int %]" => "123", {n => "123gggg"}) if ! $is_tt; -process_ok("[% n.int %]" => "0", {n => "ff123.234"}) if ! $is_tt; +process_ok("[% n.exp.substr(0,5) %]" => "2.718", {n => 1}) if ! $is_tt; +process_ok("[% n.exp.log.substr(0,5) %]" => "8", {n => 8}) if ! $is_tt; process_ok("[% n.fmt %]" => '7', {n => 7}) if ! $is_tt; process_ok("[% n.fmt('%02d') %]" => '07', {n => 7}) if ! $is_tt; process_ok("[% n.fmt('%0*d', 3) %]" => '007', {n => 7}) if ! $is_tt; @@ -321,11 +330,20 @@ process_ok("[% n|format('%02d') %]" => '07', {n => 7}); # TT2 filter process_ok("[% n|format('%0*d', 3) %]" => '007', {n => 7}) if ! $is_tt; process_ok("[% n|format('(%s)') %]" => "(a)\n(b)", {n => "a\nb"}); # TT2 filter process_ok("[% n.hash.items.1 %]" => "b", {n => {a => "b"}}); +process_ok("[% n.hex %]" => "255", {n => "FF"}) if ! $is_tt; process_ok("[% n|html %]" => "&", {n => '&'}); # TT2 filter +process_ok("[% n|indent %]" => " a\n b", {n => "a\nb"}); # TT2 filter +process_ok("[% n|indent(2) %]" => " a\n b", {n => "a\nb"}); # TT2 filter +process_ok("[% n|indent('wow ') %]" => "wow a\nwow b", {n => "a\nb"}); # TT2 filter +process_ok("[% n.int %]" => "123", {n => "123.234"}) if ! $is_tt; +process_ok("[% n.int %]" => "123", {n => "123gggg"}) if ! $is_tt; +process_ok("[% n.int %]" => "0", {n => "ff123.234"}) if ! $is_tt; process_ok("[% n.item %]" => '7', {n => 7}); +process_ok("[% n.lc %]" => 'abc', {n => "ABC"}) if ! $is_tt; process_ok("[% n|lcfirst %]" => 'fOO', {n => "FOO"}); # TT2 filter process_ok("[% n.length %]" => 3, {n => "abc"}); process_ok("[% n.list.0 %]" => 'abc', {n => "abc"}); +process_ok("[% n.log.substr(0,5) %]" => "4.605", {n => 100}) if ! $is_tt; process_ok("[% n|lower %]" => 'abc', {n => "ABC"}); # TT2 filter process_ok("[% n.match('foo').join %]" => '', {n => "bar"}); process_ok("[% n.match('foo').join %]" => '1', {n => "foo"}); @@ -334,6 +352,7 @@ process_ok("[% n.match('(foo)').join %]" => 'foo', {n => "foo"}); process_ok("[% n.match('(foo)').join %]" => 'foo', {n => "foofoo"}); process_ok("[% n.match('(foo)',1).join %]" => 'foo foo', {n => "foofoo"}); process_ok("[% n.null %]" => '', {n => "abc"}); +process_ok("[% n.oct %]" => "255", {n => "377"}) if ! $is_tt; process_ok("[% n.rand %]" => qr{^\d+\.\d+}, {n => "2"}) if ! $is_tt; process_ok("[% n.rand %]" => qr{^\d+\.\d+}, {n => "ab"}) if ! $is_tt; process_ok("[% n.remove('bc') %]" => "a", {n => "abc"}); @@ -348,6 +367,8 @@ process_ok("[% n.replace('(foo)', 'bar\$1') %]" => 'barfoobarfoo', {n => 'foofoo process_ok("[% n.replace('foo', 'bar', 0) %]" => 'barfoo', {n => 'foofoo'}) if ! $is_tt; process_ok("[% n.search('foo') %]" => '', {n => "bar"}); process_ok("[% n.search('foo') %]" => '1', {n => "foo"}); +process_ok("[% n.sin.substr(0,5) %]" => "0", {n => 0}) if ! $is_tt; +process_ok("[% n.sin.substr(0,5) %]" => "1", {n => 2*atan2(1,1)}) if ! $is_tt; process_ok("[% n.size %]" => '1', {n => "foo"}); process_ok("[% n.split.join('|') %]" => "abc", {n => "abc"}); process_ok("[% n.split.join('|') %]" => "a|b|c", {n => "a b c"}); @@ -356,8 +377,13 @@ process_ok("[% n.split(u,2).join('|') %]" => "a|b c", {n => "a b c", u => undef} process_ok("[% n.split(u,2).join('|') %]" => "a| b c", {n => "a b c", u => undef}) if $is_tt; process_ok("[% n.split('/').join('|') %]" => "a|b|c", {n => "a/b/c"}); process_ok("[% n.split('/', 2).join('|') %]" => "a|b/c", {n => "a/b/c"}); +process_ok("[% n.sprintf(7) %]" => '7', {n => '%d'}) if ! $is_tt; +process_ok("[% n.sprintf(3, 7, 12) %]" => '007 12', {n => '%0*d %d'}) if ! $is_tt; +process_ok("[% n.sqrt %]" => "3", {n => 9}) if ! $is_tt; +process_ok("[% n.srand; 12 %]" => "12", {n => 9}) if ! $is_tt; process_ok("[% n.stderr %]" => "", {n => "# testing stderr ... ok\r"}); process_ok("[% n|trim %]" => "a b", {n => ' a b '}); # TT2 filter +process_ok("[% n.uc %]" => 'FOO', {n => "foo"}) if ! $is_tt; # TT2 filter process_ok("[% n|ucfirst %]" => 'Foo', {n => "foo"}); # TT2 filter process_ok("[% n|upper %]" => 'FOO', {n => "foo"}); # TT2 filter process_ok("[% n|uri %]" => 'a%20b', {n => "a b"}); # TT2 filter @@ -452,6 +478,16 @@ process_ok("[% h.size %]" => "2", {h => {a => 1, b=> 2}}); process_ok("[% h.sort.join %]" => "b a", {h => {a => "BBB", b => "A"}}); process_ok("[% h.values.sort.join %]" => "1 2", {h => {a => 1, b=> 2}}); +###----------------------------------------------------------------### +print "### vmethods as functions ############################################\n"; + +process_ok("[% sprintf('%d %d', 7, 8) %] d" => '7 8 d') if ! $is_tt; +process_ok("[% sprintf('%d %d', 7, 8) %] d" => '7 8 d', {tt_config => [VMETHOD_FUNCTIONS => 1]}) if ! $is_tt; +process_ok("[% sprintf('%d %d', 7, 8) %] d" => ' d', {tt_config => [VMETHOD_FUNCTIONS => 0]}) if ! $is_tt; +process_ok("[% int(2.234) %]" => '2') if ! $is_tt; + +process_ok("[% int(2.234) ; int = 44; int(2.234) ; SET int; int(2.234) %]" => '2442') if ! $is_tt; # hide and unhide + ###----------------------------------------------------------------### print "### more virtual methods / filters ###################################\n"; @@ -557,6 +593,17 @@ print "### string operators #################################################\n" process_ok('[% a = "foo"; a _ "bar" %]' => 'foobar'); process_ok('[% a = "foo"; a ~ "bar" %]' => 'foobar') if ! $is_tt; process_ok('[% a = "foo"; a ~= "bar"; a %]' => 'foobar') if ! $is_tt; +process_ok('[% "b" gt "c" %]<<<' => '<<<') if ! $is_tt; +process_ok('[% "b" gt "a" %]<<<' => '1<<<') if ! $is_tt; +process_ok('[% "b" ge "c" %]<<<' => '<<<') if ! $is_tt; +process_ok('[% "b" ge "b" %]<<<' => '1<<<') if ! $is_tt; +process_ok('[% "b" lt "c" %]<<<' => '1<<<') if ! $is_tt; +process_ok('[% "b" lt "a" %]<<<' => '<<<') if ! $is_tt; +process_ok('[% "b" le "a" %]<<<' => '<<<') if ! $is_tt; +process_ok('[% "b" le "b" %]<<<' => '1<<<') if ! $is_tt; +process_ok('[% "a" cmp "b" %]<<<' => '-1<<<') if ! $is_tt; +process_ok('[% "b" cmp "b" %]<<<' => '0<<<') if ! $is_tt; +process_ok('[% "c" cmp "b" %]<<<' => '1<<<') if ! $is_tt; ###----------------------------------------------------------------### print "### math operators ###################################################\n"; @@ -607,6 +654,18 @@ process_ok('[% a = 1 %][% a-- %][% a %]' => '10') if ! $is_tt; process_ok('[% a++ FOR [1..3] %]' => '012') if ! $is_tt; process_ok('[% --a FOR [1..3] %]' => '-1-2-3') if ! $is_tt; +process_ok('[% 2 > 3 %]<<<' => '<<<'); +process_ok('[% 2 > 1 %]<<<' => '1<<<'); +process_ok('[% 2 >= 3 %]<<<' => '<<<'); +process_ok('[% 2 >= 2 %]<<<' => '1<<<'); +process_ok('[% 2 < 3 %]<<<' => '1<<<'); +process_ok('[% 2 < 1 %]<<<' => '<<<'); +process_ok('[% 2 <= 1 %]<<<' => '<<<'); +process_ok('[% 2 <= 2 %]<<<' => '1<<<'); +process_ok('[% 1 <=> 2 %]<<<' => '-1<<<') if ! $is_tt; +process_ok('[% 2 <=> 2 %]<<<' => '0<<<') if ! $is_tt; +process_ok('[% 3 <=> 2 %]<<<' => '1<<<') if ! $is_tt; + ###----------------------------------------------------------------### print "### boolean operators ################################################\n"; @@ -761,6 +820,34 @@ process_ok('[% FOREACH f = [1..3]; f; END %]' => '123'); process_ok('[% FOREACH f = [1..3]; "$f"; END %]' => '123'); process_ok('[% FOREACH f = [1..3]; f + 1; END %]' => '234'); +###----------------------------------------------------------------### +print "### LOOP #############################################################\n"; + +process_ok("[% var = [{key => 'a'}, {key => 'b'}] -%] +[% LOOP var -%] + ([% key %]) +[% END %]" => " (a)\n (b)\n") if ! $is_tt; + +process_ok("[% var = [{key => 'a'}, {key => 'b'}] -%] +[% LOOP var -%] + [%- NEXT IF key eq 'a' -%] + ([% key %]) +[% END %]" => " (b)\n") if ! $is_tt; + +if (! $is_tt) { + local $CGI::Ex::Template::QR_PRIVATE = 0; + local $CGI::Ex::Template::QR_PRIVATE = 0; # warn clean + CGI::Ex::Template->define_vmethod('scalar', textjoin => sub {join(shift, @_)}); + + process_ok("[% var = [{key => 'a'}, {key => 'b'}, {key => 'c'}] -%] +[% LOOP var -%] +([% textjoin('|', key, __first__, __last__, __inner__, __odd__) %]) +[% END -%]" => "(a|1|0|0|1) +(b|0|0|1|0) +(c|0|1|0|1) +", {tt_config => [LOOP_CONTEXT_VARS => 1]}); +} + ###----------------------------------------------------------------### print "### WHILE ############################################################\n"; @@ -773,12 +860,12 @@ process_ok("[% WHILE foo %][% foo %][% foo = foo - 1 %][% END %]" => '321', {foo process_ok("[% WHILE 1 %][% foo %][% foo = foo - 1 %][% LAST IF foo == 1 %][% END %]" => '32', {foo => 3}); process_ok("[% f = 10; WHILE f; f = f - 1 ; f ; END %]" => '9876543210'); process_ok("[% f = 10; WHILE f; f = f - 1 ; f ; END ; f %]" => '98765432100'); -process_ok("[% f = 10 a = 2; WHILE f; f = f - 1 ; f ; a=3; END ; a%]" => '98765432103'); +process_ok("[% f = 10; a = 2; WHILE f; f = f - 1 ; f ; a=3; END ; a%]" => '98765432103'); process_ok("[% f = 10; WHILE (g=f); f = f - 1 ; f ; END %]" => '9876543210'); process_ok("[% f = 10; WHILE (g=f); f = f - 1 ; f ; END ; f %]" => '98765432100'); -process_ok("[% f = 10 a = 2; WHILE (g=f); f = f - 1 ; f ; a=3; END ; a%]" => '98765432103'); -process_ok("[% f = 10 a = 2; WHILE (a=f); f = f - 1 ; f ; a=3; END ; a%]" => '98765432100'); +process_ok("[% f = 10; a = 2; WHILE (g=f); f = f - 1 ; f ; a=3; END ; a%]" => '98765432103'); +process_ok("[% f = 10; a = 2; WHILE (a=f); f = f - 1 ; f ; a=3; END ; a%]" => '98765432100'); ###----------------------------------------------------------------### print "### STOP / RETURN / CLEAR ############################################\n"; @@ -1025,7 +1112,7 @@ process_ok('[% "$a" %]|$a|[% "${a}" %]|${a}' => 'A|A|A|A', {a => 'A', A => ' process_ok('[% constants.a %]|[% $constants.a %]|[% constants.$a %]' => 'A|A|A', {tt_config => [V1DOLLAR => 1, CONSTANTS => {a => 'A'}]}); ###----------------------------------------------------------------### -print "### V2PIPE ###########################################################\n"; +print "### V2PIPE / V2EQUALS ################################################\n"; process_ok("[%- BLOCK a %]b is [% b %] [% END %] @@ -1036,6 +1123,15 @@ process_ok("[%- BLOCK a %]b is [% b %] [% END %] [%- PROCESS a b => 237 | repeat(2) %]" => "b is 237237\n") if ! $is_tt; +process_ok("[% ('a' == 'b') || 0 %]" => 0); +process_ok("[% ('a' != 'b') || 0 %]" => 1); +process_ok("[% ('a' == 'b') || 0 %]" => 0, {tt_config => [V2EQUALS => 1]}) if ! $is_tt; +process_ok("[% ('a' != 'b') || 0 %]" => 1, {tt_config => [V2EQUALS => 1]}) if ! $is_tt; +process_ok("[% ('a' == 'b') || 0 %]" => 1, {tt_config => [V2EQUALS => 0]}) if ! $is_tt; +process_ok("[% ('a' != 'b') || 0 %]" => 0, {tt_config => [V2EQUALS => 0]}) if ! $is_tt; +process_ok("[% ('7' == '7.0') || 0 %]" => 0); +process_ok("[% ('7' == '7.0') || 0 %]" => 1, {tt_config => [V2EQUALS => 0]}) if ! $is_tt; + ###----------------------------------------------------------------### print "### configuration ####################################################\n"; @@ -1182,11 +1278,39 @@ local $ENV{'REQUEST_METHOD'} = 1; process_ok("[% p = DUMP a; p.collapse %]" => '
a = 's'; 
', {a => "s", tt_config => [DUMP => {header => 0}]}); process_ok("[% p = DUMP a; p.collapse %]" => 'a = \'s\';', {a => "s", tt_config => [DUMP => {header => 0, html => 0}]}); local $ENV{'REQUEST_METHOD'} = 0; -process_ok("[% SET global; p = DUMP; p.collapse %]" => "DUMP: File \"input text\" line 1 EntireStash = { 'a' => 'b', 'global' => '' };", {a => 'b', tt_config => [DUMP => {Sortkeys => 1}]}); -process_ok("[% SET global; p = DUMP; p.collapse %]" => "DUMP: File \"input text\" line 1 EntireStash = { 'a' => 'b', 'global' => '' };", {a => 'b', tt_config => [DUMP => {Sortkeys => 1, EntireStash => 1}]}); +process_ok("[% SET global; p = DUMP; p.collapse %]" => "DUMP: File \"input text\" line 1 EntireStash = { 'a' => 'b', 'global' => undef };", {a => 'b', tt_config => [DUMP => {Sortkeys => 1}]}); +process_ok("[% SET global; p = DUMP; p.collapse %]" => "DUMP: File \"input text\" line 1 EntireStash = { 'a' => 'b', 'global' => undef };", {a => 'b', tt_config => [DUMP => {Sortkeys => 1, EntireStash => 1}]}); process_ok("[% SET global; p = DUMP; p.collapse %]" => "DUMP: File \"input text\" line 1", {a => 'b', tt_config => [DUMP => {Sortkeys => 1, EntireStash => 0}]}); } +###----------------------------------------------------------------### +print "### SYNTAX ###########################################################\n"; + +if (! $is_tt) { +process_ok("[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "", {tt_config => [SYNTAX => 'garbage']}); +process_ok("[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237"); +process_ok("[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237", {tt_config => [SYNTAX => 'cet']}); +process_ok("[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237", {tt_config => [SYNTAX => 'tt3']}); +process_ok("[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237", {tt_config => [SYNTAX => 'tt2']}); +process_ok("[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237", {tt_config => [SYNTAX => 'tt1']}); +process_ok("[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237", {tt_config => [SYNTAX => 'tt1']}); + + +process_ok('[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]' => 'A|bar|bar|A', {a => 'A', A => 'bar'}); +process_ok('[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]' => 'A|bar|bar|A', {a => 'A', A => 'bar', tt_config => [SYNTAX => 'tt2']}); +process_ok('[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]' => 'A|A|bar|A', {a => 'A', A => 'bar', tt_config => [SYNTAX => 'tt1']}); + +process_ok("" => "FOO", {foo => "FOO", tt_config => [SYNTAX => 'ht']}); +process_ok("" => "7 8", {tt_config => [SYNTAX => 'hte']}); +process_ok("" => "1", {tt_config => [SYNTAX => 'hte']}); +process_ok("" => "1", {tt_config => [SYNTAX => 'hte']}); +process_ok("d" => "", {tt_config => [SYNTAX => 'ht']}); + +process_ok("[% \"\"|eval('hte') %] = [% 6 %]" => "6 = 6"); +process_ok("[% \"\"|eval('ht') %] = [% 6 %]" => ""); + +} + ###----------------------------------------------------------------### print "### CONFIG ############################################################\n"; @@ -1198,14 +1322,24 @@ process_ok("[% CONFIG POST_CHOMP => '-' %][% 234 %]\n" => 234); process_ok("[% CONFIG INTERPOLATE => '-' %]\${ 234 }" => 234); process_ok("[% CONFIG V1DOLLAR => 1 %][% a = 234 %][% \$a %]" => 234); process_ok("[% CONFIG V2PIPE => 1 %][% BLOCK a %]b is [% b %][% END %][% PROCESS a b => 234 | repeat(2) %]" => "b is 234b is 234"); +process_ok("[% CONFIG V2EQUALS => 1 %][% ('7' == '7.0') || 0 %]" => 0); +process_ok("[% CONFIG V2EQUALS => 0 %][% ('7' == '7.0') || 0 %]" => 1); process_ok("[% CONFIG BOGUS => 2 %]bar" => ''); process_ok("[% CONFIG ANYCASE %]|[% CONFIG ANYCASE => 1 %][% CONFIG ANYCASE %]" => 'CONFIG ANYCASE = undef|CONFIG ANYCASE = 1'); process_ok("[% CONFIG ANYCASE %]|[% CONFIG ANYCASE => 1 %][% CONFIG ANYCASE %]" => 'CONFIG ANYCASE = undef|CONFIG ANYCASE = 1'); +process_ok("[% \"[% GET 1+2+3 %]\" | eval %] = [% get 6 %]" => "", {tt_config => [SEMICOLONS => 1]}) if ! $is_tt; +process_ok("[% CONFIG ANYCASE => 1 %][% get 6 %]" => "6", {tt_config => [SEMICOLONS => 1]}) if ! $is_tt; +process_ok("[% CONFIG ANYCASE => 1 %][% \"[% get 1+2+3 %]\" | eval %] = [% get 6 %]" => "6 = 6", {tt_config => [SEMICOLONS => 1]}) if ! $is_tt; +process_ok("[% \"[% CONFIG ANYCASE => 1 %][% get 1+2+3 %]\" | eval %] = [% get 6 %]" => "", {tt_config => [SEMICOLONS => 1]}) if ! $is_tt; +process_ok("[% \"[% CONFIG ANYCASE => 1 %][% get 1+2+3 %]\" | eval %] = [% GET 6 %]" => "6 = 6", {tt_config => [SEMICOLONS => 1]}) if ! $is_tt; +process_ok("[% CONFIG SYNTAX => 'hte' %][% \"\"|eval %] = [% 6 %]" => "6 = 6"); + process_ok("[% CONFIG DUMP %]|[% CONFIG DUMP => 0 %][% DUMP %]bar" => 'CONFIG DUMP = undef|bar'); process_ok("[% CONFIG DUMP => {Useqq=>1, header=>0, html=>0} %][% DUMP 'foo' %]" => "'foo' = \"foo\";\n"); +process_ok("[% CONFIG VMETHOD_FUNCTIONS => 0 %][% sprintf('%d %d', 7, 8) %] d" => ' d'); } ###----------------------------------------------------------------###