Branch Coverage

blib/lib/HTML/Selector/XPath.pm
Criterion Covered Total %
branch 113 130 86.9


line true false branch
46 0 0 if @_
53 2 28 if ($op eq '!=') { }
3 25 elsif ($op eq '~=') { }
6 19 elsif ($op eq '*=') { }
3 16 elsif ($op eq '|=') { }
4 12 elsif ($op eq '^=') { }
2 10 elsif ($op eq '$=') { }
73 32 16 if ($a == 0) { }
11 5 elsif ($a > 0) { }
86 15 17 if (@_ == 1)
94 7 4 if (@_ == 1)
107 1 24 if ($$rrule =~ s/^odd\s*\)//) { }
1 23 elsif ($$rrule =~ s/^even\s*\)//) { }
9 14 elsif ($$rrule =~ s/^\s*(-?\d+)\s*\)//) { }
14 0 elsif ($$rrule =~ s/^\s*(-?\d*)\s*n\s*(?:\+\s*(\d+))?\s*\)//) { }
115 0 14 if (not defined $A) { }
3 11 elsif ($A eq '-') { }
1 10 elsif ($A eq '') { }
133 1 189 if $rule =~ m[^/]
146 0 291 unless length $rule
150 1 290 if ($rule =~ /$reg->{'combinator'}/)
155 291 0 if ($rule =~ s/$reg->{'element'}//)
159 0 291 if (@next_parts)
164 243 48 $id_class eq '' ? :
166 12 279 if (defined $parms{'prefix'} and not $tag =~ /[*:|]/)
170 250 41 unless ($wrote_tag++)
175 21 270 if ($id_class eq '#') { }
27 243 elsif ($id_class eq '.') { }
183 23 268 if ($rule =~ s/$reg->{'attr2'}//) { }
6 262 elsif ($rule =~ s/$reg->{'attr1'}//) { }
14 248 elsif ($rule =~ /$reg->{'badattr'}/) { }
187 0 6 unless ($wrote_tag++)
196 14 263 if ($rule =~ s/$reg->{'attrN'}//)
199 7 7 if ($rule =~ s/$reg->{'attr2'}//) { }
1 6 elsif ($rule =~ s/$reg->{'attr1'}//) { }
0 6 elsif ($rule =~ /$reg->{'badattr'}/) { }
213 0 14 unless $rule =~ s/^\s*\)//
219 3 81 if (my(@expr) = $self->parse_pseudo($1, \$rule)) { }
1 80 elsif ($1 eq 'disabled') { }
1 79 elsif ($1 eq 'checked') { }
1 78 elsif ($1 eq 'selected') { }
0 78 elsif ($1 eq 'text') { }
13 65 elsif ($1 eq 'first-child') { }
5 60 elsif ($1 eq 'last-child') { }
2 58 elsif ($1 eq 'only-child') { }
11 47 elsif ($1 =~ /^lang\($/) { }
17 30 elsif ($1 =~ /^nth-child\(\s*$/) { }
4 26 elsif ($1 =~ /^nth-last-child\(\s*$/) { }
1 25 elsif ($1 =~ /^first-of-type\s*$/) { }
4 21 elsif ($1 =~ /^nth-of-type\(\s*$/) { }
2 19 elsif ($1 =~ /^last-of-type$/) { }
13 6 elsif ($1 =~ /^contains\($/) { }
3 3 elsif ($1 eq 'root') { }
3 0 elsif ($1 eq 'empty') { }
237 0 11 unless $rule =~ s/\s*([\w\-]+)\s*\)//
261 11 2 if ($rule =~ s/^\s*"([^"]*)"\s*\)//) { }
2 0 elsif ($rule =~ s/^\s*'([^']*)'\s*\)//) { }
280 53 224 if ($rule =~ s/$reg->{'combinator'}//)
282 13 40 if ($match =~ />/) { }
5 35 elsif ($match =~ /\+/) { }
11 24 elsif ($match =~ /\~/) { }
24 0 elsif ($match =~ /^\s*$/) { }
299 8 269 if ($rule =~ s/$reg->{'comma'}//)
310 0 184 unless my $rule = $self->{'expression'}
314 0 170 if $leftover