Branch Coverage

blib/lib/HTML/Mason/Request.pm
Criterion Covered Total %
branch 285 338 84.3


line true false branch
202 0 479 if (UNIVERSAL::isa($self->{'request_args'}, 'HASH'))
206 16 463 if (ref $self->{'out_method'} eq 'SCALAR')
229 476 3 if $self->component_error_handler
242 472 7 if (not ref $request_comp) { }
0 7 elsif (not UNIVERSAL::isa($request_comp, 'HTML::Mason::Component')) { }
246 1 471 if $HTML::Mason::Request::log->is_debug
252 2 453 unless $self->use_dhandlers
255 25 428 unless ($request_comp)
256 20 5 if ($request_comp = $self->interp->find_comp_upwards($path, $self->dhandler_name))
260 0 20 if $HTML::Mason::Request::log->is_debug
267 12 441 if ($request_comp and $self->{'declined_comps'}{$request_comp->comp_id})
269 6 6 if ($request_comp->name eq $self->dhandler_name)
270 1 5 if ($path eq '/') { }
278 0 11 if ($retry_count++ > $self->max_recurse)
285 7 437 unless ($self->{'request_comp'} = $request_comp)
303 23 2 unless (ref $plugin)
309 13 10 unless ($plugin_loaded{$plugin})
314 0 13 unless (keys %{$plugin . '::';})
316 0 0 if $@
329 1 443 if ($self->{'autoflush'} and not $self->interp->compiler->enable_autoflush)
336 36 443 if ($err and not $self->_aborted_or_declined($err)) { }
367 2 0 if ($isa_ref->[$x]->isa('HTML::Mason::Request'))
371 0 2 if ($old_super ne $new_super)
393 1 443 unless $self->initialized
395 440 3 if $self->component_error_handler
400 1 442 if ($self->{'execd'}++)
406 1 441 if $self->request_depth > $self->max_recurse
430 1 440 if $HTML::Mason::Request::log->is_debug
442 0 26 if @wrapper_chain > $self->max_recurse
463 20 421 if ($self->{'has_plugins'})
472 1 19 if ($@)
478 2 438 if ($wantarray) { }
16 422 elsif (defined $wantarray) { }
488 19 421 if ($self->{'has_plugins'})
498 1 18 if ($@)
509 1 440 if $HTML::Mason::Request::log->is_debug
517 82 359 if ($err and not $self->_aborted_or_declined($err))
525 336 23 if (length $self->{'request_buffer'} > 0)
530 5 354 if $self->aborted($err)
531 7 352 if $self->declined($err)
532 14 343 defined $wantarray ? :
2 357 $wantarray ? :
544 40 78 if $self->is_subrequest
547 77 1 if (UNIVERSAL::can($err, 'format'))
552 71 7 if ($self->error_mode eq 'fatal') { }
555 7 0 if (UNIVERSAL::isa($self->out_method, 'CODE')) { }
591 80 2 if exists $params{'comp'} and not ref $params{'comp'}
596 80 2 unless ($params{'out_method'})
616 41 86 $self->parent_request ? :
638 17 495 unless defined $err
647 14 487 unless defined $err
665 30 52 if ($self->data_cache_api eq '1.0')
671 0 82 if ($self->data_cache_defaults)
676 0 82 if ($self->data_cache_api eq 'chi')
679 0 0 unless (exists $options{'namespace'})
682 0 0 unless (exists $options{'driver'} or exists $options{'driver_class'})
683 0 0 $self->interp->cache_dir ? :
684 0 0 if $options{'driver'} eq 'Memory'
695 81 1 $self->interp->cache_dir ? :
696 2 80 if ($options{'cache_class'})
698 1 1 unless $cache_class =~ /::/
706 4 78 unless (pkg_loaded($mason_cache_class))
712 0 4 if $@
715 0 82 unless my $cache = $mason_cache_class->new(\%options)
719 30 52 if ($self->data_cache_api eq '1.0') { }
738 20 10 if ($action eq 'retrieve') { }
8 2 elsif ($action eq 'store') { }
1 1 elsif ($action eq 'expire') { }
1 0 elsif ($action eq 'keys') { }
741 0 20 if (my(@invalids) = grep((!/^(expire_if|action|key|busy_lock|keep_in_memory|tie_class)$/), keys %options))
746 2 18 if (my $sub = $options{'expire_if'})
747 2 0 if (my $obj = $cache->get_object($key))
748 1 1 if (&$sub($obj->get_created_at))
755 2 18 $options{'busy_lock'} ? :
11 9 if (my $result = $cache->get($key, $options{'busy_lock'} ? ('busy_lock', $options{'busy_lock'}) : ())) { }
764 0 8 if (my(@invalids) = grep((!/^(expire_(at|next|in)|action|key|value|keep_in_memory|tie_class)$/), keys %options))
767 0 8 unless exists $options{'value'}
775 2 6 if (exists $options{'expire_at'}) { }
0 6 elsif (exists $options{'expire_next'}) { }
0 6 elsif (exists $options{'expire_in'}) { }
776 0 2 unless $options{'expire_at'} =~ /^[0-9]+$/
781 0 0 if ($term eq 'hour') { }
0 0 elsif ($term eq 'day') { }
798 1 0 ref $key eq 'ARRAY' ? :
811 18 33 if $self->{'top_stack'}[6]{'CACHE_SELF'}
815 3 30 if ($self->data_cache_api eq '1.0') { }
817 3 6 if exists $options{$_}
820 3 9 if exists $options{$_}
829 4 56 if exists $options{$_}
838 3 30 $self->data_cache_api eq '1.0' ? :
844 15 18 if ($cached) { }
853 16 2 unless $self->_aborted_or_declined($error)
857 1 15 if ($self->data_cache_api eq '1.0') { }
892 4 22 if $top_stack->[6]{$tag}
896 20 0 UNIVERSAL::isa($retval, 'ARRAY') ? :
20 2 defined $retval ? :
919 20 2 if ($wantarray) { }
0 2 elsif (defined $wantarray) { }
927 4 18 if ($@)
928 4 0 if ($error) { }
942 11 11 $m->current_comp->is_subcomp ? :
943 13 9 if (not defined $comp->dynamic_subs_request or $comp->dynamic_subs_request ne $m)
953 0 23 unless my $comp = $self->fetch_next
970 39 9 if (defined $levels_back) { }
972 8 31 unless defined $frame
986 0 3 unless defined $levels_back
989 0 3 unless $frame
991 3 0 wantarray ? :
1001 7 10 $self->fetch_comp($path) ? :
1038 2 798 unless defined $path
1042 763 35 unless $self->{'use_internal_component_caches'}
1045 11 24 unless (defined $fetch_comp_cache->{$path})
1057 0 11 if ($path =~ /^(?:SELF|REQUEST)/) { }
1062 11 0 if &can_weaken()
1076 63 711 if ($path eq 'SELF')
1079 8 703 if ($path eq 'PARENT')
1081 1 7 if not $c and defined $error
1084 4 699 if ($path eq 'REQUEST')
1091 75 624 if (index($path, ':') != -1)
1094 73 2 if (my $owner_comp = $self->fetch_comp($owner_path, $current_comp, $error)) { }
1095 68 5 if ($owner_comp->_locate_inherited('methods', $method_name, \$method_comp)) { }
1098 1 4 if defined $error
1101 1 1 if defined $error
1111 460 164 unless ($path =~ m[/])
1113 56 404 if (my $subcomp = $current_comp->subcomps($path))
1118 5 399 if ($current_comp->is_subcomp and my $subcomp = $current_comp->owner->subcomps($path))
1140 2 27 unless (defined $index)
1156 0 26 unless defined $index
1167 0 3 unless defined $index
1177 3 0 unless ('File::Spec'->file_name_is_absolute($file))
1179 1 2 $self->current_comp->is_subcomp ? :
1184 3 0 if ($context_comp->is_file_based) { }
1205 3396 21 defined $self->{'top_stack'} ? :
1209 3417 4 if defined $_
1212 134 3283 if $self->{'autoflush'}
1234 686 498 unless (ref $comp)
1235 0 686 unless defined $comp
1239 9 677 unless $comp = $self->fetch_comp($path, undef, \$error)
1247 1 1174 if $depth >= $self->{'max_recurse'}
1251 2 1172 if $log_is_debug
1258 464 710 defined $mods{'store'} ? :
1259 33 1141 $comp->{'has_filter'} ? :
1260 440 734 exists $mods{'flushable'} ? :
1277 54 1120 if ($self->{'has_plugins'})
1297 14 1159 if ($wantarray) { }
22 1137 elsif (defined $wantarray) { }
1311 33 1140 if ($comp->{'has_filter'})
1316 31 2 if (defined $comp->filter)
1324 53 1118 if ($self->{'has_plugins'})
1341 2 1166 if $log_is_debug
1345 149 1019 if $error
1346 9 1010 $wantarray ? :
1367 2 43 unless defined $content
1395 1 2 unless @_
1398 1 1 unless @_
1411 2 38 if $bufref
1420 136 11 if length $self->{'request_buffer'}
1423 140 0 if ($self->{'top_stack'}[7] and $self->{'top_stack'}[2])
1427 2 138 if ($comp->has_filter and defined $comp->filter) { }
1444 1 2 if (wantarray) { }
1476 9 33 if ($levels < 0) { }
1481 8 34 if $index < 0 or $index >= $depth
1503 0 89 unless $self->{'top_stack'}
1505 40 49 unless (defined $self->{'top_stack'}[5])
1517 0 48 if $frame_num < 0
1521 44 4 unless (defined $frame->[5])
1527 32 12 if (exists $mods->{'base_comp'}) { }
8 4 elsif (not $path or $path =~ /^(?:SELF|PARENT|REQUEST)(?:\:..*)?$/ or $comp->is_subcomp and not $comp->is_method) { }
1 3 elsif ($path =~ /(.*):/) { }