Branch Coverage

blib/lib/Search/Query/Parser.pm
Criterion Covered Total %
branch 135 176 76.7


line true false branch
415 0 27 if (exists $args{'dialect_opts'})
419 17 66 if (exists $SQPCOMPAT{$key})
441 17 10 if ($$self{'query_class'}->field_class ne $$self{'field_class'})
445 22 5 if $$self{'fields'}
475 0 230 unless my $name = shift()
476 8 222 unless (exists $$self{'fields'}{$name})
511 0 22 unless (defined $origfields)
519 0 22 if (not $reftype or $reftype ne 'ARRAY' and $reftype ne 'HASH')
524 18 4 if ($reftype eq 'ARRAY') { }
4 0 elsif ($reftype eq 'HASH') { }
526 0 34 if (&blessed($name)) { }
1 33 elsif (ref $name eq 'HASH') { }
530 0 1 unless (exists $$name{'name'})
544 0 12 if (&blessed($val)) { }
12 0 elsif (ref $val eq 'HASH') { }
0 0 elsif (not ref $val) { }
548 12 0 unless (exists $$val{'name'})
577 0 8 unless $name
578 0 8 unless $field
579 0 8 unless &blessed($field)
596 0 82 unless defined $q
605 2 1 unless (defined $query or $self->sloppy)
606 1 1 if $self->croak_on_error
612 1 79 if (not defined $query and $self->sloppy)
616 3 76 if ($$self{'term_expander'})
620 66 13 if ($$self{'fields'})
627 1 76 if ($self->error and $self->sloppy)
637 26 50 if (defined $query and not $self->error and $self->croak_on_error)
642 0 26 unless (defined $reparsed)
668 7 7 if ($t =~ /^$bools$/)
679 0 2 if (not defined $query) { }
680 0 0 if $self->croak_on_error
691 0 3 if (ref $expander ne 'CODE')
700 0 3 if ($clause->is_tree)
706 0 3 if (ref $newterms[0] and ref $clause->value) { }
1 2 elsif (@newterms > 1) { }
759 0 66 unless exists $$self{'fields'}
774 46 119 if ($clause->is_tree)
778 13 16 unless (defined $clause->field and length $clause->field or defined $default_field)
785 16 90 unless ($clause->op)
796 16 90 if (not defined $clause->field) { }
798 2 14 ref $default_field ? :
810 3 105 unless (exists $$fields{$cfield})
815 10 95 if ($field_def->alias_for) { }
818 2 8 ref $field_def->alias_for ? :
830 4 99 if (@field_names > 1) { }
871 20 79 if (not defined $clause->field or $field_names[0] ne $clause->field)
889 50 123 if ($clause->is_tree) { }
893 13 110 unless defined $clause->field and length $clause->field
897 3 107 unless ($field)
898 2 1 if ($self->croak_on_error) { }
906 0 107 if (not $field->validate($field_value))
907 0 0 if ($self->croak_on_error)
962 64 286 if (/^\)/)
966 4 60 if ($$self{'_paren_count'} < 0) { }
967 1 3 if (not $fixup) { }
984 11 275 if (s/^(\+|-)\s*//) { }
5 270 elsif (s/^($not_regex)\b\s*//) { }
3 267 elsif (s/^\!\s*([^:=~])/$1/) { }
991 132 154 if (s/^"($field_regex)"\s*($op_regex)\s*// or s/^'?($field_regex)'?\s*($op_regex)\s*// or s/^()($op_nofield_regex)\s*//)
1000 0 132 if ($parent_field)
1009 31 255 if (s/^(")([^"]*?)"~(\d+)\s*// or s/^(")([^"]*?)"\s*// or s/^(')([^']*?)'\s*//) { }
1 254 elsif ($fixup and s/^(")([^"]*?)\s*$//) { }
7 247 elsif (s/^\(\s*"?($phrase_regex)"?$range_regex"?($phrase_regex)"?\s*\)\s*//) { }
63 184 elsif (s/^\(\s*//) { }
184 0 elsif (s/^($term_regex)\s*//) { }
1047 2 5 $op =~ /\!/ ? :
1049 1 6 if (index($t1, ' ') != -1 or index($t2, ' ') != -1)
1052 1 6 $has_spaces ? :
1063 0 63 unless ($r)
1068 4 59 unless (defined $str and $str =~ s/^\)\s*//)
1069 2 2 if (defined $str and $fixup) { }
1087 0 184 if ($term =~ /^($term_regex)$range_regex($term_regex)$/) { }
5 179 elsif ($null_term and $term eq $null_term) { }
1092 0 0 $op =~ /\!/ ? :
1118 2 282 if (s/^($near_regex)\s+//)
1126 2 0 if (s/^($term_regex)\s*//) { }
1141 26 258 if (s/^($and_regex)\s+//) { }
42 216 elsif (s/^($or_regex)\s+//) { }
1148 0 68 if ($pre_bool and $post_bool and $pre_bool ne $post_bool)
1160 284 0 if ($clause) { }
1161 64 220 if $sign eq '+' and $bool eq 'OR'
1162 3 281 if $sign eq '' and $bool eq 'AND'
1163 0 284 if ($sign eq '-' and $bool eq 'OR')
1170 0 0 if ($_)
1174 0 0 if ($field)
1183 3 170 if ($err)
1190 3 170 unless (defined $q)