updated the README
[HTML-TreeBuilder-XPath.git] / HTML-TreeBuilder-XPath-root.patch
blobc3e73c021b5e427b8ac997dc23c6a8a8e60e8e51
1 diff --git a/lib/HTML/TreeBuilder/XPath.pm b/lib/HTML/TreeBuilder/XPath.pm
2 index 9f15450..3d0feaf 100644
3 --- a/lib/HTML/TreeBuilder/XPath.pm
4 +++ b/lib/HTML/TreeBuilder/XPath.pm
5 @@ -336,6 +336,10 @@ sub getParentNode { return (); }
6 sub getChildNodes { my @content= ( $_[0]->{_root}); return wantarray ? @content : \@content; }
7 sub getAttributes { return [] }
8 sub isDocumentNode { return 1 }
9 +sub getRootNode { return $_[0] }
10 +sub getName { return }
11 +sub getNextSibling { return }
12 +sub getPreviousSibling { return }
14 # added to provide element-like methods to root, for use by cmp
15 sub lineage { return ($_[0]); }
16 diff --git a/t/HTML-TreeBuilder-XPath.t b/t/HTML-TreeBuilder-XPath.t
17 index 33e818c..d1e91f1 100644
18 --- a/t/HTML-TreeBuilder-XPath.t
19 +++ b/t/HTML-TreeBuilder-XPath.t
20 @@ -3,7 +3,7 @@
22 #########################
24 -use Test::More tests => 19;
25 +use Test::More tests => 25;
26 BEGIN { use_ok('HTML::TreeBuilder::XPath') };
28 #########################
29 @@ -55,6 +55,18 @@ is( $html->findvalue('id("foo")'), 'spans', 'id function');
30 is( $html->findvalue('id("foo")/@id'), 'foo', 'id function (attribute)');
34 +# test for root
35 +my ($fake_root)=$html->findnodes('/');
36 +ok( !$fake_root->getParentNode => "fake root does not have a parent");
37 +is( $fake_root->getRootNode, $fake_root, "fake root is its own root");
38 +ok( !@{$fake_root->getAttributes} => "fake root has no attributes");
39 +ok( !defined($fake_root->getName) => "fake root does not have a name");
40 +ok( !defined($fake_root->getNextSibling) => "fake root does not have a next sibling");
41 +ok( !defined($fake_root->getPreviousSibling) => "fake root does not have a prev sibling");
45 __END__
46 /html/body/h1 1 Example header
47 //@id[.="toto"] 2 toto