# -*- perl -*- use v6-alpha; use Test; plan 15; # include from the top... use Perldoc::DOM; dies_ok { Perldoc::DOM::Node.new(); }, "Perldoc::DOM::Node.new() - dies", :todo; # build from the bottom... my $node; lives_ok { $node = Perldoc::DOM::Element.new( :name, :source("=head1 ") ); }, "::Element.new()"; isa_ok($node, "Perldoc::DOM::Element", "Element.new()"); is($node.source, "=head1 ", "->source() (::Element)"); is($node.name, "sect1", "->name() (::Element)"); my $title = Perldoc::DOM::Element.new( :name ); lives_ok { $node.add_child($title) }, "add child to node", :todo; my $text = Perldoc::DOM::Text.new(:content("NAME")); # XXX - revisit before release skip_rest 'test hangs'; exit; is($text.source, "NAME", "->source() (::Text)"); is($text.content, "NAME", "->content() (::Text)"); lives_ok { $title.add_child($text) }, "add child to title", :todo; my $kwom = Perldoc::DOM.new(); isa_ok($kwom, "Perldoc::DOM", "new DOM"); lives_ok { $kwom.root($node); }, "get root of kwom", :todo; my $gap = Perldoc::DOM::WS.new( :content("\n\n") ); lives_ok { $node.add_child($gap); }, "add gap child to node", :todo; my $para = Perldoc::DOM::Element.new( :name<para> ); lives_ok { $node.add_child($para); }, "add para child to node", :todo; my ($foo, $pi); lives_ok { $para.add_child($foo = Perldoc::DOM::Text.new(:content("foo"))); $node.add_child($pi = Perldoc::DOM::PI.new(:source("\n\n=cut"))); }, "add more nodes to para", :todo; my @nodes; lives_ok { $node.traverse(sub { push @nodes, $^node }) }, "can traverse Tree", :todo; #is(@nodes.join(","), "Perldoc::DOM::Element", "can walk Tree"); #is_deeply(\@nodes, [$node, $title, $text, $gap, $para, $foo, $pi], #"walk_down"); #is_deeply($kwom, eval($kwom.perl), "Perldoc::DOM trees .perl'able"); #nstore $kwom, 't/kwom.pm3';