Branch Coverage

blib/lib/Email/MIME/ContentType.pm
Criterion Covered Total %
branch 111 160 69.3


line true false branch
98 2 98 unless defined $ct and length $ct
105 0 98 unless ($ct =~ s[^($re_token)/($re_token)][])
106 0 0 unless ($STRICT_PARAMS and $ct =~ s[^($re_token_non_strict)/($re_token_non_strict)][])
118 0 98 if ($STRICT_PARAMS and length $ct and not $ct =~ /^;/) { }
141 2 45 unless defined $cd and length $cd
146 0 45 unless ($cd =~ s/^($re_token)//)
147 0 0 unless ($STRICT_PARAMS and $cd =~ s/^($re_token_non_strict)//)
159 0 45 if ($STRICT_PARAMS and length $cd and not $cd =~ /^;/) { }
177 0 30 unless exists $ct->{'type'}
178 0 30 unless exists $ct->{'subtype'}
180 0 30 unless $ct->{'type'} =~ /^(?:$re_token)*$/
181 0 30 unless $ct->{'subtype'} =~ /^(?:$re_token)*$/
183 0 30 if length($ct->{'type'}) + length($ct->{'subtype'}) > 76
186 0 30 if defined $extra
189 30 0 exists $ct->{'attributes'} ? :
190 26 4 if length $attrs
197 0 26 unless exists $cd->{'type'}
199 0 26 unless $cd->{'type'} =~ /^(?:$re_token)*$/
201 0 26 if length $cd->{'type'} > 77
204 0 26 if defined $extra
207 26 0 exists $cd->{'attributes'} ? :
208 22 4 if length $attrs
223 0 76 if $key =~ /$re_escape_extended_value/
224 0 76 unless defined $value
226 14 62 if ($value =~ /\P{ASCII}/)
233 40 36 if (not $ascii_value =~ /^(?:$re_token)*$/ or $ascii_value =~ /'/)
234 0 40 if ($ascii_value =~ /$re_invalid_for_quoted_value/)
235 0 0 unless @continuous_value
243 6 70 if (length($key) + length($ascii_value) > 75)
244 0 6 if length $key > 71
245 4 2 $ascii_value =~ /"$/ ? :
247 6 0 unless @continuous_value
250 20 56 if (@continuous_value)
252 6 14 unless (defined $extended_value_charset)
253 390 18 unless not $_ =~ /^(?:$re_token)*$/
4 2 if grep {$_ =~ /'/ unless not $_ =~ /^(?:$re_token)*$/;} @continuous_value
254 0 6 if $needs_quote and grep /$re_invalid_for_quoted_value/, @continuous_value
258 14 6 if (defined $extended_value_charset) { }
4 2 elsif ($needs_quote) { }
267 8 12 if ($value =~ /\P{ASCII}/ and length(my $oneparameter = "; $key*=" . join('', @continuous_value)) <= 78) { }
273 12 604 if (length($key) + length($count) + length($buf) + length($_) + $add_param_len > 78)
274 4 8 if $needs_quote
276 6 6 if defined $extended_value_charset
278 0 12 if length $parameter > 78
285 12 0 if (length $buf)
286 4 8 if $needs_quote
288 6 6 if defined $extended_value_charset
290 0 12 if length $parameter > 78
296 66 10 if (not @continuous_value or $PRE_2231_FORM)
301 48 8 if length $ret
312 930 32 unless $_[0] =~ s/^\(//
316 10 398 if ($ch eq '(') { }
42 356 elsif ($ch eq ')') { }
12 344 elsif ($ch eq '\\') { }
320 32 10 if $level == 0
325 0 0 if $level != 0 and $STRICT_PARAMS
337 147 78 unless $_ =~ /^(.*)\*([0-9]+)\*?$/
340 46 32 if $_ =~ /\*$/
346 24 8 if $encoded{$_}
351 134 42 unless $_ =~ /^(.*)\*$/
353 0 42 unless defined $attribs->{$_} and $attribs->{$_} =~ /^$re_exvalue$/
356 30 12 if (length $charset)
358 30 0 if (defined $enc) { }
373 0 143 if length $_ and not $_ =~ /^;/
377 2 227 unless s/^;//
384 4 225 unless (length $_)
389 0 4 if $STRICT_PARAMS
394 224 1 if (s/^($re_token)=//) { }
397 0 1 if ($STRICT_PARAMS)
401 0 1 if (s/^($re_token_non_strict)=//) { }
404 0 1 unless (s/^([^;=\s]+)\s*=//)
424 136 93 if (s/^($re_token)//) { }
93 0 elsif (s/^$re_quoted_string//) { }
0 0 elsif ($STRICT_PARAMS) { }
0 0 elsif (s/^($re_token_non_strict)//) { }
0 0 elsif (s/^$re_quoted_string_non_strict//) { }
443 223 6 if not length $_ or /^;/
444 0 6 if ($STRICT_PARAMS)
450 6 0 if ($erased)
452 2 4 if /^$re_token_non_strict=/