����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
#============================================================= -*-perl-*-
# t/object.t
#
# Template script testing code bindings to objects.
#
# Written by Andy Wardley <abw@wardley.org>
#
# Copyright (C) 1996-2000 Andy Wardley. All Rights Reserved.
# Copyright (C) 1998-2000 Canon Research Centre Europe Ltd.
#
# This is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
#
# $Id$
#
#========================================================================
use strict;
use lib qw( ./lib ../lib );
use Template::Exception;
use Template::Test;
$^W = 1;
$Template::Test::DEBUG = 0;
#------------------------------------------------------------------------
# definition of test object class
#------------------------------------------------------------------------
package T1;
sub new {
my $class = shift;
bless { @_ }, $class;
}
sub die {
die "barfed up\n";
}
package TestObject;
our $AUTOLOAD;
sub new {
my ($class, $params) = @_;
$params ||= {};
bless {
PARAMS => $params,
DAYS => [ qw( Monday Tuesday Wednesday Thursday
Friday Saturday Sunday ) ],
DAY => 0,
'public' => 314,
'.private' => 425,
'_hidden' => 537,
}, $class;
}
sub yesterday {
my $self = shift;
return "Love was such an easy game to play...";
}
sub today {
my $self = shift;
return "Live for today and die for tomorrow.";
}
sub tomorrow {
my ($self, $dayno) = @_;
$dayno = $self->{ DAY }++
unless defined $dayno;
$dayno %= 7;
return $self->{ DAYS }->[$dayno];
}
sub belief {
my $self = shift;
my $b = join(' and ', @_);
$b = '<nothing>' unless length $b;
return "Oh I believe in $b.";
}
sub concat {
my $self = shift;
local $" = ', ';
$self->{ PARAMS }->{ args } = "ARGS: @_";
}
sub _private {
my $self = shift;
die "illegal call to private method _private()\n";
}
sub AUTOLOAD {
my ($self, @params) = @_;
my $name = $AUTOLOAD;
$name =~ s/.*:://;
return if $name eq 'DESTROY';
my $value = $self->{ PARAMS }->{ $name };
if (ref($value) eq 'CODE') {
return &$value(@params);
}
elsif (@params) {
return $self->{ PARAMS }->{ $name } = shift @params;
}
else {
return $value;
}
}
#------------------------------------------------------------------------
# another object for testing auto-stringification
#------------------------------------------------------------------------
package Stringy;
use overload '""' => 'stringify', fallback => 1;
sub new {
my ($class, $text) = @_;
bless \$text, $class;
}
sub stringify {
my $self = shift;
return "stringified '$$self'";
}
#------------------------------------------------------------------------
# Another object for tracking down a bug with DBIx::Class where TT is
# causing the numification operator to be called. Matt S Trout suggests
# we've got a truth test somewhere that should be a defined but that
# doesn't appear to be the case...
# http://rt.cpan.org/Ticket/Display.html?id=23763
#------------------------------------------------------------------------
package Numbersome;
use overload
'""' => 'stringify',
'0+' => 'numify',
fallback => 1;
sub new {
my ($class, $text) = @_;
bless \$text, $class;
}
sub numify {
my $self = shift;
return "FAIL: numified $$self";
}
sub stringify {
my $self = shift;
return "PASS: stringified $$self";
}
sub things {
return [qw( foo bar baz )];
}
package GetNumbersome;
sub new {
my ($class, $text) = @_;
bless { }, $class;
}
sub num {
Numbersome->new("from GetNumbersome");
}
#------------------------------------------------------------------------
# main
#------------------------------------------------------------------------
package main;
sub new {
my ($class, $text) = @_;
bless \$text, $class;
}
my $objconf = {
'a' => 'alpha',
'b' => 'bravo',
'w' => 'whisky',
};
my $replace = {
thing => TestObject->new($objconf),
string => Stringy->new('Test String'),
t1 => T1->new(a => 10),
num => Numbersome->new("Numbersome"),
getnum => GetNumbersome->new,
%{ callsign() },
};
test_expect(\*DATA, { INTERPOLATE => 1 }, $replace);
#------------------------------------------------------------------------
# test input
#------------------------------------------------------------------------
__DATA__
# test method calling via autoload to get parameters
[% thing.a %] [% thing.a %]
[% thing.b %]
$thing.w
-- expect --
alpha alpha
bravo
whisky
# ditto to set parameters
-- test --
[% thing.c = thing.b -%]
[% thing.c %]
-- expect --
bravo
-- test --
[% thing.concat = thing.b -%]
[% thing.args %]
-- expect --
ARGS: bravo
-- test --
[% thing.concat(d) = thing.b -%]
[% thing.args %]
-- expect --
ARGS: delta, bravo
-- test --
[% thing.yesterday %]
[% thing.today %]
[% thing.belief(thing.a thing.b thing.w) %]
-- expect --
Love was such an easy game to play...
Live for today and die for tomorrow.
Oh I believe in alpha and bravo and whisky.
-- test --
Yesterday, $thing.yesterday
$thing.today
${thing.belief('yesterday')}
-- expect --
Yesterday, Love was such an easy game to play...
Live for today and die for tomorrow.
Oh I believe in yesterday.
-- test --
[% thing.belief('fish' 'chips') %]
[% thing.belief %]
-- expect --
Oh I believe in fish and chips.
Oh I believe in <nothing>.
-- test --
${thing.belief('fish' 'chips')}
$thing.belief
-- expect --
Oh I believe in fish and chips.
Oh I believe in <nothing>.
-- test --
[% thing.tomorrow %]
$thing.tomorrow
-- expect --
Monday
Tuesday
-- test --
[% FOREACH [ 1 2 3 4 5 ] %]$thing.tomorrow [% END %].
-- expect --
Wednesday Thursday Friday Saturday Sunday .
#------------------------------------------------------------------------
# test private methods do not get exposed
#------------------------------------------------------------------------
-- test --
before[% thing._private %] mid [% thing._hidden %]after
-- expect --
before mid after
-- test --
[% key = '_private' -%]
[[% thing.$key %]]
-- expect --
[]
-- test --
[% key = '.private' -%]
[[% thing.$key = 'foo' %]]
[[% thing.$key %]]
-- expect --
[]
[]
#------------------------------------------------------------------------
# test auto-stringification
#------------------------------------------------------------------------
-- test --
[% string.stringify %]
-- expect --
stringified 'Test String'
-- test --
[% string %]
-- expect --
stringified 'Test String'
-- test --
[% "-> $string <-" %]
-- expect --
-> stringified 'Test String' <-
-- test --
[% "$string" %]
-- expect --
stringified 'Test String'
-- test --
foo $string bar
-- expect --
foo stringified 'Test String' bar
-- test --
.[% t1.dead %].
-- expect --
..
-- test --
.[% TRY; t1.die; CATCH; error; END %].
-- expect --
.undef error - barfed up
.
#-----------------------------------------------------------------------
# try and pin down the numification bug
#-----------------------------------------------------------------------
-- test --
[% FOREACH item IN num.things -%]
* [% item %]
[% END -%]
-- expect --
* foo
* bar
* baz
-- test --
[% num %]
-- expect --
PASS: stringified Numbersome
-- test --
[% getnum.num %]
-- expect --
PASS: stringified from GetNumbersome
| 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 |
|