Branch Coverage

blib/lib/CGI/Application.pm
Criterion Covered Total %
branch 158 184 85.8


line true false branch
28 0 69 if (ref $class)
48 1 68 if (ref $args[0] eq 'HASH') { }
55 4 65 if (exists $rprops->{'TMPL_PATH'})
60 20 49 if (exists $rprops->{'QUERY'})
65 2 67 if (exists $rprops->{'PARAMS'})
66 1 1 unless ref $rprops->{'PARAMS'} eq 'HASH'
93 4 57 if (ref $rm_param eq 'CODE') { }
4 53 elsif (ref $rm_param eq 'HASH') { }
107 26 35 unless defined $rm and length $rm
121 58 3 if (exists $rmodes{$rm}) { }
126 1 2 unless (exists $rmodes{'AUTOLOAD'})
144 2 58 $is_autoload ? :
146 3 57 if ($@)
149 2 1 if (my $em = $self->error_mode) { }
158 57 1 defined $body ? :
186 1 60 if (length $prerun_mode)
195 7 51 if ref $body eq 'SCALAR'
201 1 57 if ($self->{'__IS_PSGI'}) { }
204 0 1 if (ref $body eq 'GLOB' or &Scalar::Util::blessed($body) and $body->can('getline')) { }
0 1 elsif (ref $body eq 'CODE') { }
230 4 53 unless $ENV{'CGI_APP_RETURN_ONLY'}
332 1 1 unless defined $current_runmode
427 48 24 unless exists $self->{'__HEADER_PROPS'}
432 19 53 if (scalar @data)
433 1 18 if ($self->header_type eq 'none')
437 4 15 if (ref $data[0] eq 'HASH') { }
13 2 elsif (scalar(@data) % 2 == 0) { }
444 1 1 $in{'add'} ? :
449 4 13 if ($in{'add'}) { }
452 1 1 unless defined $existing_val
453 0 1 ref $existing_val eq 'ARRAY' ? :
477 69 88 unless exists $self->{'__HEADER_TYPE'}
480 80 77 if (defined $header_type)
483 0 80 unless grep {$_ eq $header_type;} @allowed_header_types
497 24 82 unless exists $self->{'__PARAMS'}
502 98 8 if (scalar @data) { }
504 1 97 if (ref $data[0] eq 'HASH') { }
62 35 elsif (scalar(@data) % 2 == 0) { }
0 35 elsif (scalar @data > 1) { }
519 96 2 if (scalar @data <= 2)
532 1 2 unless defined $param
544 44 203 if (defined $query) { }
548 15 188 unless (exists $self->{'__QUERY_OBJ'})
562 63 68 unless exists $self->{'__RUN_MODES'}
567 70 61 if (scalar @data)
569 1 69 if (ref $data[0] eq 'HASH') { }
12 57 elsif (ref $data[0] eq 'ARRAY') { }
56 1 elsif (scalar(@data) % 2 == 0) { }
595 69 76 unless exists $self->{'__START_MODE'}
598 119 26 if (defined $start_mode)
611 3 2 unless exists $self->{'__ERROR_MODE'}
614 2 3 if (defined $error_mode)
627 6 7 unless exists $self->{'__TMPL_PATH'}
630 5 8 if (defined $tmpl_path)
644 56 8 unless exists $self->{'__PRERUN_MODE'}
647 3 61 if (defined $prerun_mode)
649 2 1 if (exists $self->{'__PRERUN_MODE_LOCKED'}) { }
686 6 0 $type eq 'none' ? :
47 6 $type eq 'header' ? :
4 53 $type eq 'redirect' ? :
699 0 0 $type eq 'none' ? :
1 0 $type eq 'header' ? :
0 1 $type eq 'redirect' ? :
1856 6 1 unless exists $self->{'__HTML_TMPL_CLASS'}
1858 0 7 if (defined $tmpl_class)
1870 6 1 if (my $tmpl_path = $self->tmpl_path)
1871 1 5 ref $tmpl_path eq 'ARRAY' ? :
1874 0 2 if ($extra_params[$x] eq 'path' and ref $extra_params[$x + 1] eq 'ARRAY')
1881 6 0 unless $found
1886 1 6 unless keys %ht_params
1889 6 1 unless defined $self->{'__CURRENT_TMPL_EXTENSION'}
1892 0 7 unless (defined $tmpl_file)
1899 0 7 unless eval "require $ht_class;"
1905 0 7 if (ref $tmpl_file eq 'SCALAR') { }
0 7 elsif (ref $tmpl_file eq 'GLOB') { }
1913 1 6 if (keys %tmpl_params)
2010 69 103 unless exists $self->{'__MODE_PARAM'}
2014 104 68 if (scalar @_ == 1) { }
2019 0 68 unless @_ % 2 == 0
2024 4 64 if ($p{'path_info'} and $self->query->path_info)
2032 3 1 if $idx > 0
2040 4 0 length $pi ? :
2046 109 63 if (defined $mode_param and length $mode_param)
2354 0 44 unless $callback
2355 0 44 unless exists $INSTALLED_CALLBACKS{$hook}
2357 5 39 if (ref $c_or_class) { }
2421 0 261 unless exists $INSTALLED_CALLBACKS{$hook}
2427 0 5 if $executed_callback{$callback}
2430 0 5 if $@
2442 244 277 unless exists $INSTALLED_CALLBACKS{$hook}{$class}
2446 10 295 if $executed_callback{$callback}
2449 0 295 if $@