[Templates-cvs] cvs commit: TT3/t tag.t

cvs@template-toolkit.org cvs@template-toolkit.org
Mon, 08 Nov 2004 18:45:05 +0000


cvs         04/11/08 18:45:05

  Modified:    t        tag.t
  Log:
  * updated t/tag.t
  
  Revision  Changes    Path
  1.8       +49 -46    TT3/t/tag.t
  
  Index: tag.t
  ===================================================================
  RCS file: /template-toolkit/TT3/t/tag.t,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- tag.t	2004/03/29 16:41:16	1.7
  +++ tag.t	2004/11/08 18:45:05	1.8
  @@ -2,14 +2,14 @@
   #
   # t/tag.t
   #
  -# Test the Template::TT3::Tag.pm module.
  +# Test the Template::Tag.pm module.
   #
   # Written by Andy Wardley <abw@wardley.org>
   #
   # This is free software; you can redistribute it and/or modify it
   # under the same terms as Perl itself.
   #
  -# $Id: tag.t,v 1.7 2004/03/29 16:41:16 abw Exp $
  +# $Id: tag.t,v 1.8 2004/11/08 18:45:05 abw Exp $
   #
   #========================================================================
   
  @@ -17,62 +17,84 @@
   use warnings;
   
   use lib qw( ./lib ../lib );
  -use Test::More skip_all => 'all tests: sorry, these tests are broken'; 
  -use Template::TT3::Base;
  -use Template::TT3::Tag;
  -use Template::TT3::Tag::Open;
  -use Test::More tests => 65;
  +use Template::Base;
  +use Template::Tag;
  +use Template::Tag::Open;        # TODO: may scrap open/closed
  +use Template::Tag::Closed;
  +use Template::Test;
   
  +plan(54);
  +
   my $DEBUG = grep /^--?d(ebug)?$/, @ARGV;
  -$Template::TT3::Tag::DEBUG = $DEBUG;
  +$Template::Tag::DEBUG = $DEBUG;
   
   my $tag;
  -my $pkg = 'Template::TT3::Tag';
  -my $def = $Template::TT3::Tag::TAG;
  +my $pkg = 'Template::Tag';
  +my $def = $Template::Tag::TAG;
   my $alt = {
       start => '%%',
  -    name  => 'percent',
   };
   
   # test class pkgtag() method
   my $pkgtag = $pkg->pkgtag();
   ok( $pkgtag, 'got class package tag' );
   is( $pkgtag->{ start }, $def->{ start }, 'class package tag start' );
  -is( $pkgtag->{ name }, $def->{ name }, 'class package tag name' );
   
   # create default tag object
   $tag = $pkg->new() || die $pkg->error();
   ok( $tag, 'created a tag' );
   is( $tag->start(), $def->{ start }, "start tag is $def->{ start }" );
  -is( $tag->name(), $def->{ name }, "tag name is $def->{ name }" );
  +ok( $tag->enabled(), 'default tag is enabled' );
   
   # test object pkgtag() method
   $pkgtag = $tag->pkgtag();
   ok( $pkgtag, 'got object package tag' );
   is( $pkgtag->{ start }, $def->{ start }, 'object package tag start' );
  -is( $pkgtag->{ name }, $def->{ name }, 'object package tag name' );
   
   # update start tag and name
   is( $tag->start($alt->{ start }), $alt->{ start }, 'set start tag' );
   is( $tag->start(), $alt->{ start }, "start tag is $alt->{ start }" );
  -is( $tag->name('frank'), 'frank', 'set tag name to frank' );
  -is( $tag->name(), 'frank', 'tag name is now frank' );
  +
  +# test enable() and disable()
  +ok( $tag->enabled(), 'object package tag is enabled' );
  +ok( $tag->disable(), 'disabled tag' );
  +ok( $tag->disabled(), 'object package tag is disabled' );
  +ok( ! $tag->enabled(), 'object package tag is not enabled' );
  +ok( $tag->enable(), 're-enabled tag' );
  +ok( ! $tag->disabled(), 'object package tag is not disabled' );
  +ok( $tag->enabled(), 'object package tag is enabled' );
   
   # create custom tag object
   $tag = $pkg->new($alt) || die $pkg->error();
   ok( $tag, 'created alt tag' );
   is( $tag->start(), $alt->{ start }, "custom start tag is $alt->{ start }" );
  -is( $tag->name(), $alt->{ name }, "custom tag name is $alt->{ name }" );
  -is( $tag->name('frank'), 'frank', "set custom tag name to frank" );
  -is( $tag->name(), 'frank', 'custom tag name is now frank' );
   
  +# update start tag and name
  +is( $tag->start('--'), '--', 'set start tag dashes' );
  +is( $tag->start(), '--', "start tag is --" );
  +
  +
  +# test enabled and disabled flags in config
  +$tag = $pkg->new({ enabled => 1 }) || die $pkg->error();
  +ok( $tag->enabled(), 'enabled tag is enabled' );
  +
  +$tag = $pkg->new({ enabled => 0 }) || die $pkg->error();
  +ok( $tag->disabled(), 'un-enabled tag is disabled' );
   
  +$tag = $pkg->new({ disabled => 1 }) || die $pkg->error();
  +ok( $tag->disabled(), 'disabled tag is disabled' );
  +
  +$tag = $pkg->new({ disabled => 0 }) || die $pkg->error();
  +ok( $tag->enabled(), 'un-disabled tag is enabled' );
  +
  +
  +
   #------------------------------------------------------------------------
   # define tag subclass inheriting tags from base class
   #------------------------------------------------------------------------
   
   package Template::Test::Tag1;
  -use base qw( Template::TT3::Tag );
  +use base qw( Template::Tag );
   
   package main;
   
  @@ -83,46 +105,36 @@
   ok( $pkgtag, 'got Tag1 package tag' );
   is( $pkgtag->{ start }, $def->{ start }, 'Tag1 class package tag start' );
   is( $pkgtag->{ end }, $def->{ end }, 'Tag1 class package tag end' );
  -is( $pkgtag->{ name }, $def->{ name }, 'Tag1 class package tag name' );
   
   # create default tag object
   $tag = $pkg->new() || die $pkg->error();
   ok( $tag, 'created a Tag1 tag' );
   is( $tag->start(), $def->{ start }, "Tag1 start tag is $def->{ start }" );
  -is( $tag->name(), $def->{ name }, "Tag1 name is $def->{ name }" );
   
   # test object pkgtag() method
   $pkgtag = $tag->pkgtag();
   ok( $pkgtag, 'got Tag1 object package tag' );
   is( $pkgtag->{ start }, $def->{ start }, 'Tag1 object package tag start' );
  -is( $pkgtag->{ name }, $def->{ name }, 'Tag1 package tag name' );
   
   # update start/end tags
   is( $tag->start($alt->{ start }), $alt->{ start }, 'set Tag1 start tag' );
   is( $tag->start(), $alt->{ start }, "Tag1 start tag is $alt->{ start }" );
  -is( $tag->name('barry'), 'barry', 'set tag name to barry' );
  -is( $tag->name(), 'barry', 'tag name is now barry' );
   
   # create custom tag object
   $tag = $pkg->new($alt) || die $pkg->error();
   ok( $tag, 'created alt Tag1 tag' );
   is( $tag->start(), $alt->{ start }, "custom Tag1 start tag is $alt->{ start }" );
  -is( $tag->name(), $alt->{ name }, "custom Tag1 name is $alt->{ name }" );
  -is( $tag->name('eric'), 'eric', "set Tag1 name to eric" );
  -is( $tag->name(), 'eric', 'Tag1 name is now eric' );
  -
   
   #------------------------------------------------------------------------
   # define tag subclass with custom tags
   #------------------------------------------------------------------------
   
   package Template::Test::Tag2;
  -use base qw( Template::TT3::Tag );
  +use base qw( Template::Tag );
   use vars qw( $TAG @PARSED );
   
   $TAG = {
       start => '[[',
  -    name  => 'squares',
   };
   
   package main;
  @@ -134,33 +146,25 @@
   $pkgtag = $pkg->pkgtag();
   ok( $pkgtag, 'got Tag2 package tag' );
   is( $pkgtag->{ start }, $def->{ start }, 'Tag2 class package tag start' );
  -is( $pkgtag->{ name }, $def->{ name }, 'Tag2 class package tag name' );
   
   # create default tag object
   $tag = $pkg->new() || die $pkg->error();
   ok( $tag, 'created a tag' );
   is( $tag->start(), $def->{ start }, "Tag2 start tag is $def->{ start }" );
  -is( $tag->name(), $def->{ name }, "Tag2 name is $def->{ name }" );
   
   # test object pkgtag() method
   $pkgtag = $tag->pkgtag();
   ok( $pkgtag, 'got Tag2 object package tag' );
   is( $pkgtag->{ start }, $def->{ start }, 'Tag2 object package tag start' );
  -is( $pkgtag->{ name }, $def->{ name }, 'Tag2 package tag name' );
   
   # update start tag and name
   is( $tag->start($alt->{ start }), $alt->{ start }, 'set subclass start tag' );
   is( $tag->start(), $alt->{ start }, "subclass start tag is $alt->{ start }" );
  -is( $tag->name('mandy'), 'mandy', 'set tag name to mandy' );
  -is( $tag->name(), 'mandy', 'tag name is now mandy' );
   
   # create custom tag object
   $tag = $pkg->new($alt) || die $pkg->error();
   ok( $tag, 'created alt subclass tag' );
   is( $tag->start(), $alt->{ start }, "custom subclass start tag is $alt->{ start }" );
  -is( $tag->name(), $alt->{ name }, "custom Tag2 name is $alt->{ name }" );
  -is( $tag->name('doris'), 'doris', "set Tag2 name to doris" );
  -is( $tag->name(), 'doris', 'Tag2 name is now doris' );
   
   
   #------------------------------------------------------------------------
  @@ -168,11 +172,10 @@
   #------------------------------------------------------------------------
   
   package Template::Test::Tag::Foo;
  -use base qw( Template::TT3::Tag::Closed );
  +use base qw( Template::Tag::Closed );
   use vars qw( $TAG );
   
   $TAG = {
  -    name  => 'smileys',
       start => '(:-',
       end   => ':-)',
   };
  @@ -203,7 +206,7 @@
   ok( $pkgtag, 'got deep package tag' );
   is( $pkgtag->{ start }, $def->{ start }, 'deep class package tag start' );
   is( $pkgtag->{ end }, $def->{ end }, 'deep class package tag end' );
  -is( $pkgtag->{ name }, $def->{ name }, 'deep class package tag name' );
  +
   
   
   #------------------------------------------------------------------------
  @@ -211,7 +214,7 @@
   #------------------------------------------------------------------------
   
   package Template::Test::ScanTag;
  -use base qw( Template::TT3::Tag::Open );
  +use base qw( Template::Tag::Open );
   
   our $MATCH;
   
  @@ -229,12 +232,12 @@
   
   my $text = "Hello World\nFoo Bar baz\nblah blah THE END";
   my $line = 1;
  -my $match = { line => $line, char => 0, start => 'FOO' };
  +my $match = { line => $line, offset => 0, start => 'FOO' };
   
   is( $tag->scan(\$text, 'ok', $match) || die($tag->error()), 'ok', 
       'called tag scan()' );
   
  -$match->{ line } += delete $match->{ size };
  +$match->{ line } += delete $match->{ lines };
   
   is( $match->{ line }, 3, 'on line 3' );
   is( $Template::Test::ScanTag::MATCH, '[1/FOO]', 
  @@ -247,7 +250,7 @@
   is( $tag->scan(\$text, 'still ok', $match), 'still ok', 
       'called tag scan() again' );
   
  -$match->{ line } += delete $match->{ size };
  +$match->{ line } += delete $match->{ lines };
   is( $match->{ line }, 5, 'on line 5' );
   
   is( $Template::Test::ScanTag::MATCH, '[3/BAR]',