1#!perl -w
2
3use strict;
4use Test::More;
5
6use Text::ClearSilver;
7use Carp ();
8
9foreach (1 .. 2) {
10    note $_;
11
12    my $tcs = Text::ClearSilver->new(functions => [qw(string html)]);
13
14    my $out;
15
16    $tcs->process(\q{<?cs var:lc("FOO") ?>}, {}, \$out);
17    is $out, "foo", 'lc';
18
19    $tcs->process(\q{<?cs var:uc("foo") ?>}, {}, \$out);
20    is $out, "FOO", 'uc';
21
22    $tcs->process(\q{<?cs var:lcfirst("FOO") ?>}, {}, \$out);
23    is $out, "fOO", 'lcfirst';
24
25    $tcs->process(\q{<?cs var:ucfirst("foo") ?>}, {}, \$out);
26    is $out, "Foo", 'ucfirst';
27
28    $tcs->process(\q{<?cs var:substr("foo", 1) ?>}, {}, \$out);
29    is $out, "oo", 'substr';
30
31    $tcs->process(\q{<?cs var:substr("foo", 1, 1) ?>}, {}, \$out);
32    is $out, "o", 'substr';
33
34    $tcs->process(\q{<?cs var:sprintf("%1$d %2$d", #10, #20) ?>}, {}, \$out);
35    is $out, '10 20', 'sprintf';    $out = '';
36
37    $tcs->process(\q{<?cs var:sprintf("%2$s %1$s", #10, #20) ?>}, {}, \$out);
38    is $out, '20 10', 'builtin sprintf';
39
40
41    $tcs->process(\qq{<?cs var:nl2br("\n\n") ?>}, {}, \$out);
42    is $out, "<br />\n<br />\n", 'nl2br';
43
44    eval {
45        $out = '';
46        $tcs->process(\'<?cs var:sprintf() ?>', {}, \$out);
47    };
48    like $@, qr/\b sprintf \b/xms;
49    is $out, '';
50
51}
52
53done_testing;
54