summaryrefslogtreecommitdiff
path: root/textproc/p5-XML-LibXML-Iterator/patches/patch-ab
diff options
context:
space:
mode:
Diffstat (limited to 'textproc/p5-XML-LibXML-Iterator/patches/patch-ab')
-rw-r--r--textproc/p5-XML-LibXML-Iterator/patches/patch-ab63
1 files changed, 63 insertions, 0 deletions
diff --git a/textproc/p5-XML-LibXML-Iterator/patches/patch-ab b/textproc/p5-XML-LibXML-Iterator/patches/patch-ab
new file mode 100644
index 00000000000..c431bb80d93
--- /dev/null
+++ b/textproc/p5-XML-LibXML-Iterator/patches/patch-ab
@@ -0,0 +1,63 @@
+$NetBSD: patch-ab,v 1.1 2007/08/06 15:28:04 seb Exp $
+
+--- t/03list.t.orig 2007-06-23 13:33:50.000000000 +0000
++++ t/03list.t
+@@ -1,7 +1,7 @@
+ use Test;
+
+
+-BEGIN { plan tests => 7; }
++BEGIN { plan tests => 8; }
+
+ use XML::LibXML;
+ use XML::LibXML::NodeList::Iterator;
+@@ -257,3 +257,49 @@ sub t05_run_iterate {
+ return 1;
+ }
+ ok(t05_run_iterate());
++
++package MyFilter;
++use base qw(XML::NodeFilter);
++use XML::NodeFilter qw(:results);
++use UNIVERSAL;
++
++sub accept_node {
++ my $self = shift;
++ my $node = shift;
++ if (!UNIVERSAL::isa($node, 'XML::LibXML::Element')) {
++ die "invalid node in MyFilter::accept_node()";
++ }
++ return FILTER_DECLINED;
++}
++
++package main;
++
++sub t08_last_with_filter {
++ my $doc = XML::LibXML->new->parse_string( $xmlstr );
++
++ unless ( defined $doc ) {
++ print "# XML string was not parsed properly\n";
++ return 0;
++ }
++
++ my $nodelist = $doc->findnodes( '//*' );
++ my $iterator = XML::LibXML::NodeList::Iterator->new( $nodelist );
++ $iterator->add_filter( MyFilter->new() );
++
++ $iterator->last();
++
++ unless ( defined $iterator->current() ) {
++ print "# there is no last node\n";
++ return 0;
++ }
++
++ unless ( $iterator->current()->nodeName() eq "D" ) {
++ print "# expected nodeName 'D' received '"
++ . $iterator->current()->nodeName()
++ . "'\n";
++ return 0;
++ }
++
++ return 1;
++}
++ok(t08_last_with_filter());