Branch Coverage

blib/lib/XML/Struct/Reader.pm
Criterion Covered Total %
branch 88 108 81.4


line true false branch
46 3 41 if ($self->deep eq 'simple') { }
0 41 elsif ($self->deep eq 'struct') { }
39 2 elsif ($self->deep eq '') { }
0 2 elsif (not $self->deep =~ /^(dom|raw)$/) { }
47 3 0 if ($self->simple or defined $self->depth and $self->depth == 0)
56 18 21 $self->simple ? :
61 2 2 if ($self->depth || 0 and $self->root and $self->simple)
73 33 9 unless (&blessed($from) and $from->isa('XML::LibXML::Reader'))
76 0 33 if (ref $from and ref $from eq 'HASH')
78 0 0 if exists $options{'from'}
81 0 33 if (not defined $from or $from eq '-') { }
9 24 elsif (not ref $from and $from =~ /^</) { }
1 23 elsif (ref $from and ref $from eq 'SCALAR') { }
0 23 elsif (ref $from and ref $from eq 'GLOB') { }
3 20 elsif (&blessed($from) and $from->isa('XML::LibXML::Document')) { }
1 19 elsif (&blessed($from) and $from->isa('XML::LibXML::Element')) { }
0 19 elsif (&blessed($from)) { }
19 0 elsif (not ref $from) { }
0 0 elsif (not grep({$_ =~ /^(IO|string|location|FD|DOM)$/;} keys %options)) { }
105 0 33 unless $from = 'XML::LibXML::Reader'->new(%options)
115 0 5 if (not defined $ns or $ns eq '') { }
0 5 elsif (not $ns =~ /^(keep|strip|disallow)?$/) { }
126 0 50 if $path =~ qr"\.\.|.//|^\."
127 0 50 if $path =~ qr"^[^/]+/"
142 2 66 if $path =~ qr"^$|/$"
148 20 137 unless $stream->read
149 58 79 if $stream->nodeType != 1
155 51 28 if ($relative) { }
156 35 16 if (_nameMatch($parts[0], $name))
160 6 22 if (not _nameMatch($parts[$stream->depth + 1], $name)) { }
13 9 elsif ($stream->depth == scalar @parts - 2) { }
173 2 66 &blessed($_[0]) ? :
174 6 62 defined $_[0] ? :
176 20 48 unless $self->_nextPatternMatch($stream, $path)
180 25 21 $self->simple ? :
196 14 18 unless wantarray
206 10 282 if ($self->ns eq 'strip') { }
15 267 elsif ($self->ns eq 'disallow') { }
209 2 13 if ($stream->name =~ /^xmlns(:.*)?$/)
220 185 0 @_ ? :
225 28 157 if (defined $self->depth and $stream->depth >= $self->depth)
226 1 27 if ($self->deep eq 'dom') { }
1 26 elsif ($self->deep eq 'raw') { }
241 133 50 if ($self->attributes) { }
38 12 elsif (not $stream->isEmptyElement) { }
243 33 98 $stream->isEmptyElement ? :
255 133 0 @_ ? :
257 107 26 if $stream->moveToFirstAttribute != 1
261 28 2 if ($self->ns ne 'strip' or not $stream->name =~ /^xmlns(:.*)?$/)
273 136 0 @_ ? :
280 136 369 if not $type or $type == 15
282 137 232 if ($type == 1) { }
60 172 elsif ($type == 3 or $type == 4) { }
1 171 elsif ($type == 14 and $self->whitespace) { }