summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@sardina.(none)>2009-06-27 12:55:33 +0200
committerdakkar <dakkar@sardina.(none)>2009-06-27 12:55:33 +0200
commitb1a241c1e277f219dab724759eb2996877c862b5 (patch)
treee8e88d249b638c6fc517eca9285a72ff9fdf9cdd
parentset global status (diff)
downloadTree-Template-Declare-b1a241c1e277f219dab724759eb2996877c862b5.tar.gz
Tree-Template-Declare-b1a241c1e277f219dab724759eb2996877c862b5.tar.bz2
Tree-Template-Declare-b1a241c1e277f219dab724759eb2996877c862b5.zip
test for global state
-rw-r--r--t/07-inherit.t67
1 files changed, 67 insertions, 0 deletions
diff --git a/t/07-inherit.t b/t/07-inherit.t
new file mode 100644
index 0000000..2974e6f
--- /dev/null
+++ b/t/07-inherit.t
@@ -0,0 +1,67 @@
+#!perl
+package Base;{
+use strict;
+use warnings;
+use Tree::Template::Declare builder => '+DAG_Node';
+
+sub doc {
+ my ($self)=@_;
+ tree {
+ node {
+ name 'doc';
+ $self->head();
+ $self->body();
+ }
+ }
+}
+
+sub head {
+ node { name 'title' };
+}
+
+sub body {
+ node {
+ name 'content';
+ $_[0]->content();
+ }
+}
+
+sub content {
+ node { name 'stuff' }
+}
+
+}
+
+package Derived;{
+use strict;
+use warnings;
+use Tree::Template::Declare builder => '+DAG_Node';
+use base 'Base';
+
+sub head {
+ node { name 'whatever' };
+ $_[0]->SUPER::head();
+}
+
+sub content {
+ node { name 'something' }
+}
+
+}
+
+package main;
+use Test::Most tests=>2,'die';
+use strict;
+use warnings;
+
+my $base_tree=Base->doc();
+
+is_deeply($base_tree->tree_to_lol(),
+ [['title'],[['stuff'],'content'],'doc'],
+ 'base tree');
+
+my $deriv_tree=Derived->doc();
+
+is_deeply($deriv_tree->tree_to_lol(),
+ [['whatever'],['title'],[['something'],'content'],'doc'],
+ 'derived tree');