Condition Coverage

blib/lib/CGI/Ex/Validate.pm
Criterion Covered Total %
condition 175 370 47.3


and 3 conditions

line !l l&&!r l&&r condition
34 0 0 300 $form and ref $form
41 290 4 4 $ARGS->{'validate_if'} and not $self->check_conditional($form, $ARGS->{'validate_if'})
54 318 0 0 not ref $ref and $ref eq "OR"
69 15 0 0 $not and $_key =~ /(?$opt:$pat)/
95 121 3 0 $i < $fields->$#* and not ref $$fields[$i + 1]
124 0 0 $i < $fields->$#* and not ref $$fields[$i + 1] and $$fields[$i + 1] eq "OR"
286 0 0 0 $not and $_field =~ /(?$opt:$pat)/
301 377 1 7 $field_val->{'was_valid'} and not $self->{'was_valid'}{$field}
302 375 0 3 $field_val->{'had_error'} and not $self->{'had_error'}{$field}
303 375 0 0 $field_val->{'was_checked'} and not $self->{'was_checked'}{$field}
305 232 110 33 $field_val->{'type'} && (ref $field_val->{'type'} eq 'ARRAY' && '[]' || $field_val->{'type'} eq 'array' && 'array')
307 290 85 0 not exists $form->{$field} and $field_val->{'alias'}
316 368 7 0 defined $field_val->{'default'} and !defined($form->{$field}) || (UNIVERSAL::isa($form->{$field}, 'ARRAY') ? !@{$form->{$field};} : !length($form->{$field}))
323 316 18 0 $is_A and $field_val->{'coerce'}
388 375 0 0 $field_val->{'truncate'} and my $n = $field_val->{'max_len'}
396 370 0 5 $modified and $n_values == 1
407 13 345 17 not $needs_val and $n_vif
423 277 48 33 $is_required and !@$values || grep({not length $_ and !defined($field_val->{'min_len'}) || $field_val->{'min_len'} unless not defined $_;} @$values)
455 18 1 23 defined $_value and length $_value
458 7 4 3 $minmax eq "min" and $n > 0
4 4 3 $minmax eq "max" and $n < 0
470 280 3 29 $is_A and defined $form->{$field}
283 25 4 $is_A and defined $form->{$field} and ref $form->{$field} ne "ARRAY"
471 173 131 8 $nT and $nT eq "str"
304 7 1 $nT and $nT eq "str" and ref $form->{$field} eq "ARRAY"
476 287 32 13 not defined $value and $type_ne_required
482 6 17 7 defined $value and $_ eq $value
500 63 0 22 ref $nT eq "HASH" and $form->{$field}
520 0 1 1 defined $value && $value eq $test
523 2 0 5 exists $form->{$field2} and defined $form->{$field2}
524 1 2 2 defined $value && $value eq $form->{$field2}
547 5 11 1 defined $value and length $value > $n
560 0 2 4 defined $value and $value =~ /$rx/
570 1 1 1 defined $value and $value =~ /(?$opt:$pat)/
12 2 1 $not and (defined $value and $value =~ /(?$opt:$pat)/)
632 0 0 0 not $return and $$field_val{"${type}_error_if"}
0 0 0 $return and not $$field_val{"${type}_error_if"}
648 0 1 1 not ref $@ and defined $err
660 288 0 2 $field_val->{'untaint'} and $#errors == -1
684 127 1 1 not defined $value and $type ne "code"
696 0 0 0 defined $value and length $value
717 0 0 0 $value and not $self->check_type($value, "uri")
725 1 1 1 defined $value and ref $value ne "CODE"
780 0 0 0 $form and $ARGS->{'validate_if'}
0 0 0 $form and $ARGS->{'validate_if'} and not $self->check_conditional($form, $ARGS->{'validate_if'})
788 2 0 0 $ENV{'HTTP_USER_AGENT'} and grep {$ENV{'HTTP_USER_AGENT'} =~ /$_/;} @UNSUPPORTED_BROWSERS
1049 160 0 2 defined $custom_err and length $custom_err
1061 0 134 26 not $name and $field =~ /\W/ || $field =~ /\d/ && $field =~ /\D/

or 2 conditions

line l !l condition
60 318 0 $ref->{'field'} || die('Missing field key during normal validation')
126 0 9 $field_prefix ||= ""
127 0 9 $self->{'_recurse'} || 0
212 298 1 $fields || []
253 40 0 $ref->{'field'} || die('Missing field key during validate_if (possibly used a reference to a main hash *foo -> &foo)')
257 0 2 $ref->{'max_values'} ||= scalar @{$form->{$field};}
270 27 358 $field_prefix ||= ""
271 59 326 $self->{'_recurse'} || 0
431 5 0 $field_val->{'min_values'} || 0
437 0 237 $field_val->{'min_values'} || 1
438 322 0 $field_val->{'max_values'} || 0
446 14 619 $_->[1] || (next)
472 18 14 ref $nT && $nT->[0] || undef
588 12 3 $value || 0
626 0 0 &$dbh($field, $self) || die('SQL Coderef did not return a dbh')
781 0 0 $_->{'name'} || 1
831 0 0 $args->{'div'} ||= "
\n"
832 0 0 $args->{'open'} ||= "
\n"
834 0 0 $args->{'action'} ||= ""
835 0 0 $args->{'method'} ||= "POST"
836 0 0 $args->{'submit_name'} || 'Submit'
837 0 0 $args->{'header'} ||= "\n" \n
839 0 0 $args->{'footer'} ||= "
\$submit
\n"
840 0 0 $args->{'extra_form_attrs'} ||= ""
875 0 0 $field->{'enum'} || []
886 0 0 $field->{'enum'} || []
911 0 0 $args->{'close'} || "\n"
0 0 $args->{'div_close'} || "\n"
937 139 0 $self->{'extra'} || {}
938 0 139 shift() || {}
954 139 0 $self->{'errors'} || die('Missing errors')
955 139 0 $self->{'extra'} || {}
956 139 0 shift() || {}
1001 22 0 $self->{'errors'} || die('Missing errors')
1002 22 0 $self->{'extra'} || {}
1003 20 2 shift() || {}
1047 162 0 $self->{'extra'} || {}
1075 0 296 $field_val->{$key} || $extra->{$key} || (next)

or 3 conditions

\n \n \n" : "\n \n") . " \n"
line l !l&&r !l&&!r condition
26 0 2 0 +(shift())->{'cgix'} ||= do { require CGI::Ex; "CGI::Ex"->new }
69 0 9 6 $not || $_key =~ /(?$opt:$pat)/
0 6 9 $not and $_key =~ /(?$opt:$pat)/ or not $not || $_key =~ /(?$opt:$pat)/
109 9 0 285 $ARGS->{'no_extra_fields'} or $self->{'no_extra_fields'}
110 0 0 294 $ARGS->{'delete_unvalidated'} or $self->{'delete_unvalidated'}
165 0 0 0 ref $val_hash ne "SCALAR" or not ref $val_hash
176 0 1 298 $ARGS{'fields'} || $ARGS{'order'}
224 38 2 0 not ref $ifs or UNIVERSAL::isa($ifs, "HASH")
286 0 0 0 $not || $_field =~ /(?$opt:$pat)/
0 0 0 $not and $_field =~ /(?$opt:$pat)/ or not $not || $_field =~ /(?$opt:$pat)/
316 5 0 2 !defined($form->{$field}) || (UNIVERSAL::isa($form->{$field}, 'ARRAY') ? !@{$form->{$field};} : !length($form->{$field}))
373 0 0 3 $2 > $start->$#* || $2 == 0
390 0 0 0 not defined $value or length $value <= $n
414 79 1 278 $field_val->{'required'} || $field_val->{'req'}
423 0 33 48 !@$values || grep({not length $_ and !defined($field_val->{'min_len'}) || $field_val->{'min_len'} unless not defined $_;} @$values)
458 3 3 8 $minmax eq "min" and $n > 0 or $minmax eq "max" and $n < 0
539 1 2 1 not defined $value or length $value < $n
570 2 7 5 $not || defined $value && $value =~ /(?$opt:$pat)/
1 5 9 $not and (defined $value and $value =~ /(?$opt:$pat)/) or not $not || defined $value && $value =~ /(?$opt:$pat)/
632 0 0 0 not $return and $$field_val{"${type}_error_if"} or $return and not $$field_val{"${type}_error_if"}
690 0 0 0 $self->check_type($dom, "domain") or $self->check_type($dom, "ip")
707 0 0 8 not $value or length $value > 255
708 3 1 4 not $value =~ /^([a-z0-9][a-z0-9\-]{0,62} \.)+ [a-z]{1,63}$/xi or $value =~ /(\.\-|\-\.|\.\.)/
716 0 0 0 $self->check_type($dom, "domain") or $self->check_type($dom, "ip")
727 2 0 13 ref $value or not defined $value
743 0 0 0 length $value > 16 or length $value < 13
791 2 0 0 shift() || croak('Missing validation hash')
793 0 0 0 ref $val_hash ne "SCALAR" or not ref $val_hash
805 0 0 0 $args->{'form_name'} || croak('Missing form_name')
2 0 0 $form_name ||= $args->{'form_name'} || croak('Missing form_name')
806 2 0 0 $js_uri_path ||= $args->{'js_uri_path'}
808 0 2 0 $JS_URI_PATH_VALIDATE || do { croak('Missing js_uri_path') unless $js_uri_path; "$js_uri_path/CGI/Ex/validate.js" }
830 0 0 0 $args->{'no_inline_error'} || !$args->{'columns'} || $args->{'columns'} != 3
833 0 0 0 $form_name || 'the_form_' . int(rand *1000)
0 0 0 $args->{'form_name'} ||= $form_name || 'the_form_' . int(rand *1000)
836 0 0 0 $args->{'submit'} ||= ''
845 0 0 0 $args->{'row_template'} ||= qq[
\$name\$input] . ($cols == 2 ? $args->{'no_inline_error'} ? "" : "
[% \$field_error %]
[% \$field_error %]
849 0 0 0 !defined($args->{'use_js_validation'}) || $args->{'use_js_validation'}
866 0 0 0 $type eq "textarea" or $field->{'rows'}
0 0 0 $type eq "textarea" or $field->{'rows'} or $field->{'cols'}
0 0 0 $type eq "radio" or $type eq "checkbox"
0 0 0 $type eq "select" or $field->{'enum'}
0 0 0 $type eq "select" or $field->{'enum'} or $field->{'label'}
876 0 0 0 $field->{'label'} || $e
887 0 0 0 $field->{'label'} || $e
896 0 0 0 $field->{'maxlength'} || $field->{'max_len'}
903 0 0 0 $field->{'name'} || do { $name =~ tr/_/ /; $name =~ s/\b(\w)/\u$1/g; $name }
1061 10 26 124 $field =~ /\W/ || $field =~ /\d/ && $field =~ /\D/
1087 26 1 121 $type eq "required" or $type eq "required_if"
1105 0 5 0 $$field_val{"equals${dig}_name"} || "the field $field2"