[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]',