Condition Coverage

lib/HTTP/Validate.pm
Criterion Covered Total %
condition 191 293 65.1


and 3 conditions

line !l l&&!r l&&r condition
771 1 1 75 defined $ruleset_name and not ref $ruleset_name
2 1 74 defined $ruleset_name and not ref $ruleset_name and $ruleset_name ne ''
1216 4 135 184 defined $DIRECTIVE{$key} and $DIRECTIVE{$key} == 2
1243 2 1 0 ref $value and ref $value ne 'ARRAY'
1273 7 1 0 ref $value and ref $value ne 'Regexp'
1342 0 1 130 defined $typevalue and not ref $typevalue
1 0 130 defined $typevalue and not ref $typevalue and $typevalue ne ''
1351 39 93 0 defined $v and $VALIDATOR_DEF{$v}
1359 1 1 85 ref $v and &reftype($v) eq 'CODE'
1385 1 0 2 ref $rr->{'validators'} eq 'ARRAY' and @{$rr->{'validators'};}
1429 1 1 29 defined $typevalue and not ref $typevalue
2 0 29 defined $typevalue and not ref $typevalue and $typevalue ne ''
1443 0 0 10 defined $typevalue and ref $typevalue eq 'ARRAY'
1448 0 0 20 defined $arg and $arg ne ''
1533 159 12 1 @lines and $lines[0] =~ /^[!]/
1538 5 166 0 defined $rr and $rr->{'undocumented'}
1571 0 40 125 defined $rr and $rr->{'type'} eq 'param'
0 13 27 defined $rr and $rr->{'type'} eq 'include'
1669 0 0 6 ref $rs and ref $rs->{'doc_items'} eq 'ARRAY'
1678 28 0 10 ref $item and defined $item->{'param'}
1712 0 0 2 $doc ne '' and $subdoc ne ''
1721 3 1 14 $doc ne '' and $item ne ''
1784 0 60 0 defined $context and !ref($context) || &reftype($context) ne 'HASH'
1808 31 0 3 ref $input_params->[0] and &reftype($input_params->[0]) eq 'HASH'
1867 78 0 0 ref $hash->{$param} and &reftype($hash->{$param}) eq 'ARRAY'
74 1 3 defined $hash->{$param} and $hash->{$param} ne ''
1869 0 0 0 ref $value && &reftype($value) eq 'ARRAY'
1878 3 0 0 ref $value && &reftype($value) eq 'ARRAY'
1900 0 0 60 defined $ruleset_name and $ruleset_name ne ''
1939 56 0 4 defined $vr->{'content_type'} and $vr->{'content_type'} ne ''
56 1 3 defined $vr->{'content_type'} and $vr->{'content_type'} ne '' and $vr->{'content_type'} ne 'unknown'
2000 0 35 47 ref $rs->{'fulfill_order'} and @{$rs->{'fulfill_order'};}
2042 169 0 1 keys %names_found > 1 and not $rr->{'multiple'}
100 69 0 not @raw_values and exists $rr->{'default'}
165 1 2 @raw_values > 1 and not $rr->{'multiple'}
2093 163 1 2 $rr->{'flag'} and keys %names_found
164 0 2 $rr->{'flag'} and keys %names_found and not @raw_values
2122 0 0 40 defined $raw_val and $raw_val ne ''
2145 4 0 67 ref $result and &reftype($result) eq 'HASH'
2157 4 67 0 ref $result and $result->{'error'}
2186 4 42 0 ref $result and $result->{'warn'}
2195 4 42 0 ref $result && exists $result->{'value'}
2231 18 1 2 defined $rr->{'bad_value'} and $rr->{'bad_value'} eq 'ERROR'
2305 7 4 1 $rr->{'type'} eq 'together' and @present > 0
11 0 1 $rr->{'type'} eq 'together' and @present > 0 and @present < @{$rr->{'param'};}
4 5 2 $rr->{'type'} eq 'at_most_one' and @present > 1
2336 16 5 1 $rr->{'require'} and not $vr->{'rs'}{$rs_name} == 2
2360 2 4 0 @fulfilled == 0 and $rr->{'constraint'} eq 'require_one' || $rr->{'constraint'} eq 'require_any'
0 2 0 @fulfilled > 1 and $rr->{'constraint'} eq 'allow_one' || $rr->{'constraint'} eq 'require_one'
2548 0 0 4 defined $value and not $value =~ /^'/
2570 0 0 46 defined $value and $value ne ''
2607 5 0 2 ref $self->{'er'} eq 'ARRAY' and @{$self->{'er'};}
2858 4 23 7 defined $min and $value < $min
2868 23 3 1 defined $max and $value > $max
2924 5 0 8 defined $min and defined $max
5 8 0 defined $min and defined $max and $value < $min || $value > $max
2929 5 4 0 defined $min and $value < $min
2934 5 4 0 defined $max and $value > $max
2946 8 6 1 defined $min and not &looks_like_number($min)
2947 8 6 0 defined $max and not &looks_like_number($max)
2978 1 9 0 defined $pattern and !ref($pattern) || ref $pattern eq 'Regexp'
3024 0 0 9 defined $k and $k ne ''

or 2 conditions

line l !l condition
1750 2 1 $uniq ||= {}
2400 2 2 $vr->{'raw'}{$param} || ''
2418 0 1 $rr->{'key'} ||= '_content_type'
2448 34 0 $msg ||= 'ERR_DEFAULT'
2487 11 0 $msg ||= 'ERR_DEFAULT'
2632 3 0 $self->{'ec'}{$key} || 0
2682 2 0 $self->{'wc'}{$key} || 0

or 3 conditions

line l !l&&r !l&&!r condition
1136 1 0 0 $doc_rule or @doc_lines
1214 319 0 6 $DIRECTIVE{$key} or $ERROR_MSG{$key}
1232 3 5 207 $key eq 'split' or $key eq 'list'
0 7 200 $key eq 'error' or $key eq 'errmsg'
1235 91 4 0 $CATEGORY{$type} eq 'param' or $type eq 'content_type'
1254 3 1 0 $CLEANER_DEF{$value} || $value
1366 24 4 100 $type eq 'optional' or $type eq 'mandatory'
1465 0 0 4 ref $typevalue or not $typevalue =~ /\w/
1478 3 6 1 $long ||= $MEDIA_TYPE{$short}
1527 167 5 66 defined $rr or @lines
1559 0 0 4 $last_pod or $this_pod
1637 0 0 0 $list_level > 0 or $item_body
1784 0 0 60 !ref($context) || &reftype($context) ne 'HASH'
1901 0 0 60 ref $ruleset_name or not $ruleset_name =~ /\w/
1956 105 0 4 exists $vr->{'ps'}{$key} or exists $vr->{'ig'}{$key}
2010 1 185 28 $rr->{'key'} || $param
2016 5 7 32 $rr->{'type'} eq 'together' or $rr->{'type'} eq 'at_most_one'
2166 0 0 7 $rr->{'ERR_INVALID'} || $rr->{'errmsg'} || $result->{'error'}
2174 0 0 16 $rr->{'ERR_INVALID'} || $rr->{'errmsg'} || $result->{'error'}
2283 0 0 0 $rr->{'key'} || $param
2360 3 1 0 $rr->{'constraint'} eq 'require_one' || $rr->{'constraint'} eq 'require_any'
0 2 0 $rr->{'constraint'} eq 'allow_one' || $rr->{'constraint'} eq 'require_one'
2401 0 0 4 $rr->{'key'} || $rr->{'param'}
2456 4 0 0 $rr->{$msg} || $vr->{'settings'}{$msg} || $ERROR_MSG{$msg} || $ERROR_MSG{'ERR_DEFAULT'}
2495 0 0 0 $rr->{$msg} || $vr->{'settings'}{$msg} || $ERROR_MSG{$msg} || $ERROR_MSG{'ERR_DEFAULT'}
2882 8 6 1 not defined $min or $min =~ /^[+-]?\d+$/
2883 9 5 0 not defined $max or $max =~ /^[+-]?\d+$/
2885 6 0 8 defined $min or defined $max
2924 3 1 4 $value < $min || $value > $max
2949 6 0 8 defined $min or defined $max
2978 4 4 1 !ref($pattern) || ref $pattern eq 'Regexp'