summaryrefslogtreecommitdiff
path: root/t/24namespaces.t
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2003-01-26 19:35:03 +0000
committer <>2015-02-23 10:18:26 +0000
commita2d12bc84fb2af87dd1c0c6e5bc854554902cd67 (patch)
tree7665979c7c281b21971de576d93246a022bff649 /t/24namespaces.t
downloadperl-xml-xpath-a2d12bc84fb2af87dd1c0c6e5bc854554902cd67.tar.gz
Imported from /home/lorry/working-area/delta_perl-xml-xpath/XML-XPath-1.13.tar.gz.HEADXML-XPath-1.13master
Diffstat (limited to 't/24namespaces.t')
-rw-r--r--t/24namespaces.t56
1 files changed, 56 insertions, 0 deletions
diff --git a/t/24namespaces.t b/t/24namespaces.t
new file mode 100644
index 0000000..b77f9dc
--- /dev/null
+++ b/t/24namespaces.t
@@ -0,0 +1,56 @@
+use Test;
+BEGIN { plan tests => 9 }
+
+use XML::XPath;
+ok(1);
+
+my $xp = XML::XPath->new(ioref => *DATA);
+ok($xp);
+
+my @nodes;
+
+# Don't set namespace prefixes - uses element context namespaces
+
+@nodes = $xp->findnodes('//foo:foo'); # should find foobar.com foos
+ok(@nodes, 3);
+
+@nodes = $xp->findnodes('//goo:foo'); # should find no foos
+ok(@nodes, 0);
+
+@nodes = $xp->findnodes('//foo'); # should find default NS foos
+ok(@nodes, 2);
+
+# Set namespace mappings.
+
+$xp->set_namespace("foo" => "flubber.example.com");
+$xp->set_namespace("goo" => "foobar.example.com");
+
+# warn "TEST 6\n";
+@nodes = $xp->findnodes('//foo:foo'); # should find flubber.com foos
+# warn "found: ", scalar @nodes, "\n";
+ok(@nodes, 2);
+
+@nodes = $xp->findnodes('//goo:foo'); # should find foobar.com foos
+ok(@nodes, 3);
+
+@nodes = $xp->findnodes('//foo'); # should find default NS foos
+ok(@nodes, 2);
+
+ok($xp->findvalue('//attr:node/@attr:findme'), 'someval');
+
+__DATA__
+<xml xmlns:foo="foobar.example.com"
+ xmlns="flubber.example.com">
+ <foo>
+ <bar/>
+ <foo/>
+ </foo>
+ <foo:foo>
+ <foo:foo/>
+ <foo:bar/>
+ <foo:bar/>
+ <foo:foo/>
+ </foo:foo>
+ <attr:node xmlns:attr="attribute.example.com"
+ attr:findme="someval"/>
+</xml>