Branch Coverage

blib/lib/HTML/Selector/XPath.pm
Criterion Covered Total %
branch 102 122 83.6


line true false branch
46 0 0 if @_
53 2 24 if ($op eq '!=') { }
2 22 elsif ($op eq '~=') { }
4 18 elsif ($op eq '*=') { }
2 16 elsif ($op eq '|=') { }
4 12 elsif ($op eq '^=') { }
2 10 elsif ($op eq '$=') { }
73 23 4 if ($a == 0) { }
4 0 elsif ($a > 0) { }
86 18 4 if (@_ == 1)
94 5 0 if (@_ == 1)
106 1 149 if $rule =~ m[^/]
119 0 217 unless length $rule
123 1 216 if ($rule =~ /$reg->{'combinator'}/)
128 217 0 if ($rule =~ s/$reg->{'element'}//)
132 0 217 if (@next_parts)
137 178 39 $id_class eq '' ? :
139 12 205 if (defined $parms{'prefix'} and not $tag =~ /[*:|]/)
143 186 31 unless ($wrote_tag++)
148 19 198 if ($id_class eq '#') { }
20 178 elsif ($id_class eq '.') { }
156 22 195 if ($rule =~ s/$reg->{'attr2'}//) { }
6 189 elsif ($rule =~ s/$reg->{'attr1'}//) { }
14 175 elsif ($rule =~ /$reg->{'badattr'}/) { }
160 0 6 unless ($wrote_tag++)
169 9 194 if ($rule =~ s/$reg->{'attrN'}//)
172 4 5 if ($rule =~ s/$reg->{'attr2'}//) { }
0 5 elsif ($rule =~ s/$reg->{'attr1'}//) { }
0 5 elsif ($rule =~ /$reg->{'badattr'}/) { }
186 0 9 unless $rule =~ s/^\s*\)//
192 3 57 if (my(@expr) = $self->parse_pseudo($1, \$rule)) { }
1 56 elsif ($1 eq 'disabled') { }
1 55 elsif ($1 eq 'checked') { }
1 54 elsif ($1 eq 'selected') { }
0 54 elsif ($1 eq 'text') { }
12 42 elsif ($1 eq 'first-child') { }
4 38 elsif ($1 eq 'last-child') { }
1 37 elsif ($1 eq 'only-child') { }
11 26 elsif ($1 =~ /^lang\(([\w\-]+)\)$/) { }
1 25 elsif ($1 =~ /^nth-child\(odd\)$/) { }
1 24 elsif ($1 =~ /^nth-child\(even\)$/) { }
5 19 elsif ($1 =~ /^nth-child\((\d+)\)$/) { }
2 17 elsif ($1 =~ /^nth-child\((\d+)n(?:\+(\d+))?\)$/) { }
0 17 elsif ($1 =~ /^nth-last-child\((\d+)\)$/) { }
0 17 elsif ($1 =~ /^nth-last-child\((\d+)n(?:\+(\d+))?\)$/) { }
0 17 elsif ($1 =~ /^first-of-type$/) { }
1 16 elsif ($1 =~ /^nth-of-type\((\d+)\)$/) { }
1 15 elsif ($1 =~ /^last-of-type$/) { }
10 5 elsif ($1 =~ /^contains\($/) { }
3 2 elsif ($1 eq 'root') { }
2 0 elsif ($1 eq 'empty') { }
230 8 2 if ($rule =~ s/^\s*"([^"]*)"\s*\)//) { }
2 0 elsif ($rule =~ s/^\s*'([^']*)'\s*\)//) { }
249 30 173 if ($rule =~ s/$reg->{'combinator'}//)
251 7 23 if ($match =~ />/) { }
5 18 elsif ($match =~ /\+/) { }
9 9 elsif ($match =~ /\~/) { }
9 0 elsif ($match =~ /^\s*$/) { }
268 7 196 if ($rule =~ s/$reg->{'comma'}//)
279 0 145 unless my $rule = $self->{'expression'}
283 0 131 if $leftover