Condition Coverage

blib/lib/HTML/Template.pm
Criterion Covered Total %
condition 178 295 60.3


and 2 conditions

line l !l condition
1178 0 0 defined *glob{'ARRAY'} and 'ARRAY'
0 0 defined *glob{'HASH'} and 'HASH'
0 0 defined *glob{'CODE'} and 'CODE'
3441 0 0 defined $$HTML::Template::line[0][1] and scalar @{$$HTML::Template::line[0][1];}

and 3 conditions

line !l l&&!r l&&r condition
1271 232 1 1 $$options{'force_untaint'} and not ${^TAINT}
1327 87 141 3 grep {exists $$options{$_};} 'filehandle', 'arrayref', 'scalarref' and grep {$$options{$_};} 'cache', 'blind_cache', 'file_cache', 'shared_cache', 'double_cache', 'double_file_cache'
1332 0 1 86 defined $$options{'filename'} and length $$options{'filename'}
1349 0 1 10 defined $$options{'file_cache_dir'} and length $$options{'file_cache_dir'}
1475 0 0 0 defined $$self{'param_map'} and defined $$self{'parse_stack'}
1481 0 0 0 defined $$self{'param_map'} and defined $$self{'parse_stack'}
1486 1 0 2 defined $$self{'param_map'} and defined $$self{'parse_stack'}
1492 1 0 0 defined $$self{'param_map'} and defined $$self{'parse_stack'}
1506 211 0 12 defined $$self{'param_map'} and defined $$self{'parse_stack'}
1518 196 0 7 $$options{'cache'} and not $$options{'shared_cache'}
196 1 6 $$options{'cache'} and not $$options{'shared_cache'} and not $$options{'file_cache'}
1551 0 6 0 defined $HTML::Template::CACHE{$key}{'mtime'} and $mtime != $HTML::Template::CACHE{$key}{'mtime'}
1678 0 7 1 defined $$self{'mtime'} and $mtime != $$self{'mtime'}
1776 0 0 0 $$options{'cache_debug'} and defined $$self{'record'}
1797 0 0 0 defined $mtime and defined $c_mtime
0 0 0 defined $mtime and defined $c_mtime and $mtime != $c_mtime
1806 0 0 0 defined $mtime and defined $included_mtimes
1848 123 0 0 'File::Spec'->file_name_is_absolute($filename) and -e $filename
2010 0 0 14 defined $format and defined $sub
2014 0 0 14 ref $sub and reftype $sub eq 'CODE'
2152 124 0 0 $$options{'extended_syntax'} and $chunk =~ m[^<(?:!--\s*)? (/?) # $1 => $slash - start or end of tag marker [Tt][Mm][Pp][Ll]_([a-zA-Z0-9_]+) # $2 => $which - custom tag definition \s* ([^>]*) # $3 => $part - remaining part of custom tag > (.*) # $4 => $post - text that comes after the tag $]sx
2294 339 9 28 defined $$options{'default_escape'} && $which eq 'TMPL_VAR'
2314 0 1 400 defined $name && length $name
89 400 1 $need_names{$which} and not defined $name && length $name
2318 356 132 1 $escape and $which ne 'TMPL_VAR'
2321 462 25 1 defined $default and $which ne 'TMPL_VAR'
2337 244 9 4 $$options{'global_vars'} and not exists $HTML::Template::top_pmap{$name}
2422 0 0 1 $$options{'global_vars'} and not exists $HTML::Template::top_pmap{$var}
2674 33 0 4 $$options{'cache'} and not $$options{'blind_cache'}
2688 0 36 1 $$options{'max_includes'} and scalar @fstack > $$options{'max_includes'}
2763 0 0 0 defined $post and length $post
2809 19 0 0 $$options{'global_vars'} and not exists $HTML::Template::top_pmap{$var}
3032 49 28 1 $$options{'die_on_bad_params'} and not exists $$param_map{$param}
3035 10 0 67 exists $$param_map{$param} and defined $$param_map{$param}
3062 41 2 400 $$options{'die_on_bad_params'} and not $$options{'recursive_templates'}
43 400 0 $$options{'die_on_bad_params'} and not $$options{'recursive_templates'} and not exists $$param_map{$param}
402 0 0 $$options{'die_on_bad_params'} and not $$options{'recursive_templates'} and not exists $$param_map{$param} and not reftype $value eq 'HASH'
3067 441 1 1 $$options{'recursive_templates'} and not exists $$param_map{$param}
442 0 1 $$options{'recursive_templates'} and not exists $$param_map{$param} and not reftype $value eq 'HASH'
3070 441 1 1 $$options{'structure_vars'} and $param =~ /\./
3089 0 0 1 exists $$param_map{$structure_param} and not exists $$self{'structure_vars'}{$structure_param}
3137 0 397 41 defined $value_type and length $value_type
397 41 0 defined $value_type and length $value_type and $value_type eq 'ARRAY' || !(reftype($value) =~ /^(CODE)|(HASH)|(SCALAR)$/) && UNIVERSAL::isa($value, 'ARRAY')
0 397 14 defined $value_type and length $value_type
397 12 2 defined $value_type and length $value_type and $value_type eq 'HASH'
409 0 2 defined $value_type and length $value_type and $value_type eq 'HASH' and UNIVERSAL::isa($value, 'HASH')
3140 0 26 1 scalar @$value > 0 and reftype($$value[0]) ne 'HASH'
3359 459 0 1 defined $args{'print_to'} and not tied $args{'print_to'}
3362 459 1 0 $$options{'recursive_templates'} and $args{'print_to'}
3371 616 189 9 $type eq 'HTML::Template::VAR' and reftype $$HTML::Template::line eq 'CODE'
0 0 75 $type and UNIVERSAL::isa($HTML::Template::line, 'HTML::Template::ESCAPE')
3388 178 0 1 $$options{'force_untaint'} and tainted $$HTML::Template::line
3467 1 1 0 defined $$HTML::Template::line[0][1] and scalar @{$$HTML::Template::line[0][1];}
3478 0 4 21 ref $HTML::Template::line and UNIVERSAL::isa($HTML::Template::line, 'HTML::Template::ESCAPE')
3491 0 71 4 $line_type eq 'HTML::Template::VAR' and reftype $$HTML::Template::line eq 'CODE'
0 0 0 $line_type and $HTML::Template::line->can('output')
3504 71 0 0 $$options{'force_untaint'} > 1 and tainted $$HTML::Template::line
3511 0 0 0 $$options{'force_untaint'} > 1 and tainted $tmp
3519 75 0 0 $$options{'force_untaint'} > 1 and tainted $tmp
3526 0 0 0 defined $output and length $output
3560 456 0 1 $$options{'recursive_templates'} and $$output =~ /<(?:\!--\s*)?[Tt][Mm][Pp][Ll]_/
3576 1 0 1 $recursions and $$output =~ /<(?:\!--\s*)?[Tt][Mm][Pp][Ll]_/
3722 0 1 3 defined $obj and $type eq 'HTML::Template::LOOP'

or 2 conditions

line l !l condition
1616 6 24 $$options{'search_path_on_include'} || 0
1617 0 30 $$options{'loop_context_vars'} || 0
1618 0 30 $$options{'scalar_loops'} || 0
1619 0 30 $$options{'intrinsic_vars'} || 0
1620 1 29 $$options{'global_vars'} || 0
1920 0 1 $$options{'parent_global_vars'} || 0
2086 2 1 $$options{'filename'} || ''
2124 68 141 $$options{'filepath'} || '/fake/path/for/non/file/template'
2452 10 29 $$options{'global_vars'} || $$options{'parent_global_vars'} || 0
3525 0 0 $$options{'force_untaint'} || 0

or 3 conditions

line l !l&&r !l&&!r condition
1178 0 0 0 defined *glob{'ARRAY'} and 'ARRAY' or defined *glob{'HASH'} and 'HASH'
0 0 0 defined *glob{'ARRAY'} and 'ARRAY' or defined *glob{'HASH'} and 'HASH' or defined *glob{'CODE'} and 'CODE'
1261 2 2 5 $$options{'type'} eq 'filename' or $$options{'type'} eq 'scalarref'
4 2 3 $$options{'type'} eq 'filename' or $$options{'type'} eq 'scalarref' or $$options{'type'} eq 'arrayref'
4 2 1 $$options{'type'} eq 'filename' or $$options{'type'} eq 'scalarref' or $$options{'type'} eq 'arrayref' or $$options{'type'} eq 'filehandle'
1518 6 0 197 $$options{'cache'} and not $$options{'shared_cache'} and not $$options{'file_cache'} or $$options{'double_cache'}
6 1 196 $$options{'cache'} and not $$options{'shared_cache'} and not $$options{'file_cache'} or $$options{'double_cache'} or $$options{'double_file_cache'}
2012 2 12 0 $format eq 'array' or $format eq 'scalar'
2311 0 37 453 not defined $name or $which eq 'TMPL_INCLUDE'
37 2 451 not defined $name or $which eq 'TMPL_INCLUDE' or $which eq 'TMPL_REQUIRE'
39 6 445 not defined $name or $which eq 'TMPL_INCLUDE' or $which eq 'TMPL_REQUIRE' or $$options{'case_sensitive'}
2324 25 7 92 $which eq 'TMPL_IF' or $which eq 'TMPL_UNLESS'
24 7 39 $which eq '/TMPL_IF' or $which eq '/TMPL_UNLESS'
37 2 0 $which eq 'TMPL_INCLUDE' or $which eq 'TMPL_REQUIRE'
2657 36 1 1 $which eq 'TMPL_INCLUDE' or not exists $$self{'included_templates'}{$filepath}
2751 0 0 0 $$options{'parent_global_vars'} || $$options{'global_vars'}
2863 0 16 218 $escape eq '' or $escape eq '0'
16 22 196 $escape eq '' or $escape eq '0' or $escape eq 'NONE'
2864 8 128 60 $escape eq '1' or $escape eq 'HTML'
3028 229 0 137 scalar @_ or length $type
3044 57 1 1 $type eq 'HASH' or UNIVERSAL::isa($first, 'HASH')
3114 2 0 5 $$options{'parent_global_vars'} or $$options{'global_vars'}
3137 27 0 14 $value_type eq 'ARRAY' || !(reftype($value) =~ /^(CODE)|(HASH)|(SCALAR)$/) && UNIVERSAL::isa($value, 'ARRAY')
3291 0 10 1 $$options{'case_sensitive'} or grep({not /^1/;} map({UNIVERSAL::isa($_, 'HTML::Template');} @{$$options{'associate'};})) == 0
3391 0 0 178 ref $HTML::Template::line eq 'HTML::Template::UNDEF' or ref $$HTML::Template::line eq 'HTML::Template::UNDEF'
3697 3 3 0 $opt eq 'name' or $opt eq 'loop'