����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
#============================================================= -*-perl-*-
#
# t/chomp.t
#
# Test the PRE_CHOMP and POST_CHOMP options.
#
# Written by Andy Wardley <abw@wardley.org>
#
# Copyright (C) 1996-2009 Andy Wardley. All Rights Reserved.
#
# This is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
#
#========================================================================
use strict;
use warnings;
use lib qw( ./lib ../lib );
use Template::Test;
use Template::Constants qw( :chomp );
# uncomment these lines for debugging the generated Perl code
#$Template::Directive::PRETTY = 1;
#$Template::Parser::DEBUG = 1;
match( CHOMP_NONE, 0 );
match( CHOMP_ONE, 1 );
match( CHOMP_ALL, 1 );
match( CHOMP_COLLAPSE, 2 );
match( CHOMP_GREEDY, 3 );
my $foo = "\n[% foo %]\n";
my $bar = "\n[%- bar -%]\n";
my $baz = "\n[%+ baz +%]\n";
my $ding = "!\n\n[%~ ding ~%]\n\n!";
my $dong = "!\n\n[%= dong =%]\n\n!";
my $dang = "Hello[%# blah blah blah -%]\n!";
my $winsux1 = "[% ding -%]\015\012[% dong %]";
my $winsux2 = "[% ding -%]\015\012\015\012[% dong %]";
my $winsux3 = "[% ding %]\015\012[%- dong %]";
my $winsux4 = "[% ding %]\015\012\015\012[%- dong %]";
my $blocks = {
foo => $foo,
bar => $bar,
baz => $baz,
ding => $ding,
dong => $dong,
dang => $dang,
winsux1 => $winsux1,
winsux2 => $winsux2,
winsux3 => $winsux3,
winsux4 => $winsux4,
};
# script may be being run in distribution root or 't' directory
my $dir = -d 't' ? 't/test/lib' : 'test/lib';
#------------------------------------------------------------------------
# tests without any CHOMP options set
#------------------------------------------------------------------------
my $tt2 = Template->new({
BLOCKS => $blocks,
INCLUDE_PATH => $dir,
});
my $vars = {
foo => 3.14,
bar => 2.718,
baz => 1.618,
ding => 'Hello',
dong => 'World'
};
my $out;
ok( $tt2->process('foo', $vars, \$out), 'foo' );
match( $out, "\n3.14\n", 'foo out' );
$out = '';
ok( $tt2->process('bar', $vars, \$out), 'bar' );
match( $out, "2.718", 'bar out' );
$out = '';
ok( $tt2->process('baz', $vars, \$out), 'baz' );
match( $out, "\n1.618\n", 'baz out' );
$out = '';
ok( $tt2->process('ding', $vars, \$out), 'ding' );
match( $out, "!Hello!", 'ding out' );
$out = '';
ok( $tt2->process('dong', $vars, \$out), 'dong' );
match( $out, "! World !", 'dong out' );
$out = '';
ok( $tt2->process('dang', $vars, \$out), 'dang' );
match( $out, "Hello!", 'dang out' );
$out = '';
ok( $tt2->process('winsux1', $vars, \$out), 'winsux1' );
match( od($out), "HelloWorld", 'winsux1 out' );
$out = '';
ok( $tt2->process('winsux2', $vars, \$out), 'winsux2' );
match( od($out), 'Hello\015\012World', 'winsux2 out' );
$out = '';
ok( $tt2->process('winsux3', $vars, \$out), 'winsux3' );
match( od($out), "HelloWorld", 'winsux3 out' );
$out = '';
ok( $tt2->process('winsux4', $vars, \$out), 'winsux4' );
match( od($out), 'Hello\015\012World', 'winsux4 out' );
$out = '';
ok( $tt2->process('dos_newlines', $vars, \$out), 'dos_newlines' );
match( $out, "HelloWorld", 'dos_newlines out' );
sub od{
join(
'',
map {
my $ord = ord($_);
($ord > 127 || $ord < 32 )
? sprintf '\0%lo', $ord
: $_
}
split //, shift()
);
}
#------------------------------------------------------------------------
# tests with the PRE_CHOMP option set
#------------------------------------------------------------------------
$tt2 = Template->new({
PRE_CHOMP => 1,
BLOCKS => $blocks,
});
$out = '';
ok( $tt2->process('foo', $vars, \$out), 'pre pi' );
match( $out, "3.14\n", 'pre pi match' );
$out = '';
ok( $tt2->process('bar', $vars, \$out), 'pre e' );
match( $out, "2.718", 'pre e match' );
$out = '';
ok( $tt2->process('baz', $vars, \$out), 'pre phi' );
match( $out, "\n1.618\n", 'pre phi match' );
$out = '';
ok( $tt2->process('ding', $vars, \$out), 'pre hello' );
match( $out, "!Hello!", 'pre hello match' );
$out = '';
ok( $tt2->process('dong', $vars, \$out), 'pre world' );
match( $out, "! World !", 'pre world match' );
#------------------------------------------------------------------------
# tests with the POST_CHOMP option set
#------------------------------------------------------------------------
$tt2 = Template->new({
POST_CHOMP => 1,
BLOCKS => $blocks,
});
$out = '';
ok( $tt2->process('foo', $vars, \$out), 'post pi' );
match( $out, "\n3.14", 'post pi match' );
$out = '';
ok( $tt2->process('bar', $vars, \$out), 'post e' );
match( $out, "2.718", 'post e match' );
$out = '';
ok( $tt2->process('baz', $vars, \$out), 'post phi' );
match( $out, "\n1.618\n", 'post phi match' );
$out = '';
ok( $tt2->process('ding', $vars, \$out), 'post hello' );
match( $out, "!Hello!", 'post hello match' );
$out = '';
ok( $tt2->process('dong', $vars, \$out), 'post world' );
match( $out, "! World !", 'post world match' );
my $tt = [
tt_pre_none => Template->new(PRE_CHOMP => CHOMP_NONE),
tt_pre_one => Template->new(PRE_CHOMP => CHOMP_ONE),
tt_pre_all => Template->new(PRE_CHOMP => CHOMP_ALL),
tt_pre_coll => Template->new(PRE_CHOMP => CHOMP_COLLAPSE),
tt_post_none => Template->new(POST_CHOMP => CHOMP_NONE),
tt_post_one => Template->new(POST_CHOMP => CHOMP_ONE),
tt_post_all => Template->new(POST_CHOMP => CHOMP_ALL),
tt_post_coll => Template->new(POST_CHOMP => CHOMP_COLLAPSE),
];
test_expect(\*DATA, $tt);
__DATA__
#------------------------------------------------------------------------
# tt_pre_none
#------------------------------------------------------------------------
-- test --
begin[% a = 10; b = 20 %]
[% a %]
[% b %]
end
-- expect --
begin
10
20
end
#------------------------------------------------------------------------
# tt_pre_one
#------------------------------------------------------------------------
-- test --
-- use tt_pre_one --
-- test --
begin[% a = 10; b = 20 %]
[% a %]
[% b %]
end
-- expect --
begin1020
end
#------------------------------------------------------------------------
# tt_pre_all
#------------------------------------------------------------------------
-- test --
-- use tt_pre_all --
-- test --
begin[% a = 10; b = 20 %]
[% a %]
[% b %]
end
-- expect --
begin1020
end
#------------------------------------------------------------------------
# tt_pre_coll
#------------------------------------------------------------------------
-- test --
-- use tt_pre_coll --
-- test --
begin[% a = 10; b = 20 %]
[% a %]
[% b %]
end
-- expect --
begin 10 20
end
#------------------------------------------------------------------------
# tt_post_none
#------------------------------------------------------------------------
-- test --
-- use tt_post_none --
begin[% a = 10; b = 20 %]
[% a %]
[% b %]
end
-- expect --
begin
10
20
end
#------------------------------------------------------------------------
# tt_post_all
#------------------------------------------------------------------------
-- test --
-- use tt_post_all --
-- test --
begin[% a = 10; b = 20 %]
[% a %]
[% b %]
end
-- expect --
begin 10 20end
#------------------------------------------------------------------------
# tt_post_one
#------------------------------------------------------------------------
-- test --
-- use tt_post_one --
-- test --
begin[% a = 10; b = 20 %]
[% a %]
[% b %]
end
-- expect --
begin 10 20end
#------------------------------------------------------------------------
# tt_post_coll
#------------------------------------------------------------------------
-- test --
-- use tt_post_coll --
-- test --
begin[% a = 10; b = 20 %]
[% a %]
[% b %]
end
-- expect --
begin 10 20 end
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| lib | Folder | 0755 |
|
|
| test | Folder | 0755 |
|
|
| vmethods | Folder | 0755 |
|
|
| README | File | 3.1 KB | 0644 |
|
| anycase.t | File | 2.16 KB | 0644 |
|
| args.t | File | 2.41 KB | 0644 |
|
| assert.t | File | 2.53 KB | 0644 |
|
| base.t | File | 3.58 KB | 0644 |
|
| binop.t | File | 4.82 KB | 0644 |
|
| block.t | File | 2.71 KB | 0644 |
|
| block_duplicate.t | File | 476 B | 0644 |
|
| blocks.t | File | 2.2 KB | 0644 |
|
| capture.t | File | 1.59 KB | 0644 |
|
| case.t | File | 1.46 KB | 0644 |
|
| chomp.t | File | 7.71 KB | 0644 |
|
| compile1.t | File | 2.12 KB | 0644 |
|
| compile2.t | File | 2.67 KB | 0644 |
|
| compile3.t | File | 3.75 KB | 0644 |
|
| compile4.t | File | 2.38 KB | 0644 |
|
| compile5.t | File | 3.28 KB | 0644 |
|
| config.t | File | 6.46 KB | 0644 |
|
| constants.t | File | 5.07 KB | 0644 |
|
| context.t | File | 5.87 KB | 0644 |
|
| datafile.t | File | 1.81 KB | 0644 |
|
| date.t | File | 6.73 KB | 0644 |
|
| date_offset.t | File | 2.17 KB | 0644 |
|
| date_utf8.t | File | 1.33 KB | 0644 |
|
| debug.t | File | 3.86 KB | 0644 |
|
| directive.t | File | 4.76 KB | 0644 |
|
| directry.t | File | 5.48 KB | 0644 |
|
| document.t | File | 3.58 KB | 0644 |
|
| dumper.t | File | 1.47 KB | 0644 |
|
| error.t | File | 953 B | 0644 |
|
| evalperl.t | File | 3.73 KB | 0644 |
|
| exception.t | File | 1.52 KB | 0644 |
|
| factory.t | File | 1.4 KB | 0644 |
|
| file.t | File | 2.87 KB | 0644 |
|
| fileline.t | File | 3.16 KB | 0644 |
|
| filter.t | File | 17.74 KB | 0644 |
|
| foreach.t | File | 10.31 KB | 0644 |
|
| format.t | File | 1.78 KB | 0644 |
|
| html.t | File | 2.52 KB | 0644 |
|
| image.t | File | 2.22 KB | 0644 |
|
| include.t | File | 6.04 KB | 0644 |
|
| iterator.t | File | 3.67 KB | 0644 |
|
| leak.t | File | 5.01 KB | 0644 |
|
| list.t | File | 4.41 KB | 0644 |
|
| load_order_vmethods_stash.t | File | 192 B | 0644 |
|
| macro.t | File | 2.93 KB | 0644 |
|
| math.t | File | 1.22 KB | 0644 |
|
| math_rand.t | File | 476 B | 0644 |
|
| meta.t | File | 881 B | 0644 |
|
| mtime-zero.t | File | 1.04 KB | 0644 |
|
| object.t | File | 7.23 KB | 0644 |
|
| outline.t | File | 2.29 KB | 0644 |
|
| outline_line.t | File | 971 B | 0644 |
|
| output.t | File | 2.66 KB | 0644 |
|
| parser.t | File | 4.74 KB | 0644 |
|
| parser2.t | File | 981 B | 0644 |
|
| plugins.t | File | 6.12 KB | 0644 |
|
| plusfile.t | File | 1.91 KB | 0644 |
|
| pod.t | File | 2.05 KB | 0644 |
|
| prefix.t | File | 1.46 KB | 0644 |
|
| proc.t | File | 867 B | 0644 |
|
| process-relative.t | File | 2.05 KB | 0644 |
|
| process.t | File | 1.88 KB | 0644 |
|
| process_dir.t | File | 1.84 KB | 0644 |
|
| provider.t | File | 11.08 KB | 0644 |
|
| ref.t | File | 1.63 KB | 0644 |
|
| scalar.t | File | 2.56 KB | 0644 |
|
| service.t | File | 5.07 KB | 0644 |
|
| skel.t | File | 947 B | 0644 |
|
| stash-xs-unicode.t | File | 2.03 KB | 0644 |
|
| stash-xs.t | File | 8.42 KB | 0644 |
|
| stash.t | File | 7.91 KB | 0644 |
|
| stashc.t | File | 1.6 KB | 0644 |
|
| stop.t | File | 2.72 KB | 0644 |
|
| strcat.t | File | 758 B | 0644 |
|
| strict.t | File | 1.52 KB | 0644 |
|
| string.t | File | 7.38 KB | 0644 |
|
| switch.t | File | 3.83 KB | 0644 |
|
| table.t | File | 2.68 KB | 0644 |
|
| tags.t | File | 3.63 KB | 0644 |
|
| template.t | File | 1.49 KB | 0644 |
|
| text.t | File | 2.89 KB | 0644 |
|
| throw.t | File | 1.94 KB | 0644 |
|
| tiedhash.t | File | 5.28 KB | 0644 |
|
| trace_vars.t | File | 1.11 KB | 0644 |
|
| try.t | File | 9.83 KB | 0644 |
|
| unicode.t | File | 4.55 KB | 0644 |
|
| url.t | File | 4.06 KB | 0644 |
|
| vars.t | File | 11.36 KB | 0644 |
|
| varsv1.t | File | 8.96 KB | 0644 |
|
| view.t | File | 17.43 KB | 0644 |
|
| while.t | File | 3.18 KB | 0644 |
|
| wrap.t | File | 2.63 KB | 0644 |
|
| wrapper.t | File | 3.95 KB | 0644 |
|
| zz-plugin-cycle.t | File | 1.6 KB | 0644 |
|
| zz-plugin-leak-gh-213.t | File | 2.77 KB | 0644 |
|
| zz-plugin-leak-rt-46691.t | File | 2.95 KB | 0644 |
|
| zz-plugin-leak.t | File | 2.02 KB | 0644 |
|
| zz-pmv.t | File | 1.15 KB | 0644 |
|
| zz-pod-coverage.t | File | 1.64 KB | 0644 |
|
| zz-pod-kwalitee.t | File | 776 B | 0644 |
|
| zz-stash-xs-leak.t | File | 1.59 KB | 0644 |
|
| zz-url2.t | File | 3.71 KB | 0644 |
|