summaryrefslogtreecommitdiff
path: root/t/02-xslt.t
diff options
context:
space:
mode:
Diffstat (limited to 't/02-xslt.t')
-rw-r--r--t/02-xslt.t67
1 files changed, 67 insertions, 0 deletions
diff --git a/t/02-xslt.t b/t/02-xslt.t
new file mode 100644
index 0000000..d36c132
--- /dev/null
+++ b/t/02-xslt.t
@@ -0,0 +1,67 @@
+#!perl
+package main;
+use Test::Most 'die';
+BEGIN {
+eval 'use Tree::DAG_Node::XPath 0.10; require Tree::Transform::XSLTish';
+plan skip_all => 'Tree::DAG_Node::XPath 0.10 and Tree::Transform::XSLTish needed for this test' if $@;
+}
+plan tests => 3;
+
+package Copy;{
+use Tree::Transform::XSLTish;
+use Tree::Template::Declare::DAG_Node;
+use Tree::Template::Declare builder => Tree::Template::Declare::DAG_Node->new('Tree::DAG_Node::XPath');
+use strict;
+use warnings;
+
+tree_rule match => '/', action => sub {
+ tree {
+ $_[0]->apply_rules;
+ };
+};
+
+tree_rule match => '*', priority => 0, action => sub {
+ node {
+ name $_[0]->it->name;
+ attribs %{$_[0]->it->attributes};
+ $_[0]->apply_rules;
+ };
+};
+
+}
+
+package main;
+use strict;
+use warnings;
+use Tree::Template::Declare builder => Tree::Template::Declare::DAG_Node->new('Tree::DAG_Node::XPath');
+use Data::Dumper;
+
+my $tree=tree {
+ node {
+ name 'root';
+ attribs name => 'none';
+ node {
+ name 'coso1';
+ attribs name => 'coso_1';
+ };
+ node {
+ name 'coso2';
+ node {
+ name 'coso3';
+ };
+ };
+ };
+};
+
+diag "transforming";
+my $trans=Copy->new();
+my ($tree2)=$trans->transform($tree);
+
+ok(defined $tree,'built');
+ok(defined $tree2,'transformed');
+
+diag "comparing";
+is($tree->tree_to_lol_notation(),
+ $tree2->tree_to_lol_notation(),
+ 'tree copy');
+