The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w
#============================================================= -*-perl-*-
#
# t/cache.t
#
# Template script testing the Template side of the page plugin.
#
# Written by Perrin Harkins <perrin@elem.com>
#
# This is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
#
#========================================================================

use strict;
use lib qw( ./lib ../blib );
use Template qw( :status );
use Template::Test;
use Cache::FileCache;
$^W = 1;

$Template::Test::DEBUG = 1;
$Template::Test::PRESERVE = 1;

# clear cache before beginning
my $cache = Cache::FileCache->new();
$cache->Clear();

test_expect(\*DATA, {
  INTERPOLATE => 1,
  POST_CHOMP => 1,
  PLUGIN_BASE => 'Template::Plugin',
});


#------------------------------------------------------------------------
# test input
#------------------------------------------------------------------------

__DATA__
[% USE cache = Cache %]
[% BLOCK cache_me %]
Hello
[% SET change_me = 'after' %]
[% END %]
[% SET change_me = 'before' %]
[% cache.proc(
             'template' => 'cache_me',
             'ttl' => 15
             ) %]
[% change_me %]
-- expect --
Hello
after
-- test --
[% USE cache = Cache %]
[% BLOCK cache_me %]
Hello
[% SET change_me = 'after' %]
[% END %]
[% SET change_me = 'before' %]
[% cache.inc(
             'template' => 'cache_me',
             'ttl' => 15
             ) %]
[% change_me %]
-- expect --
Hello
before
-- test --
[% USE cache = Cache %]
[% BLOCK cache_me %]
 Hello [% name %]
[% END %]
[% SET name = 'Suzanne' %]
[% cache.proc(
             'template' => 'cache_me',
             'keys' => {'name' => name},
             'ttl' => 15
             ) %]
[% SET name = 'World' %]

[% cache.proc(
             'template' => 'cache_me',
             'keys' => {'name' => name},
             'ttl' => 15
             ) %]

-- expect --
 Hello Suzanne
 Hello World