Condition Coverage

blib/lib/Plack/Middleware/PeriAHS/ParseRequest.pm
Criterion Covered Total %
condition 76 135 56.3


and 3 conditions

line !l l&&!r l&&r condition
199 1 1 1 $ct eq 'text/yaml' and $self->{'accept_yaml'}
224 1 18 10 $self->{'deconfuse_php_clients'} and $rcua
19 1 9 $self->{'deconfuse_php_clients'} and $rcua and $rcua =~ /$self->{'php_clients_ua_re'}/
226 7 1 1 ref $rreq->{'args'} eq 'ARRAY' and not @{$rreq->{'args'};}
237 0 1 24 $mu and not exists $rreq->{'uri'}
266 0 22 0 ($rreq->{'fmt'} // $env->{'periahs.default_fmt'}) eq 'json' and defined $form->{'callback'}
317 22 0 0 $self->{'parse_reform'} and $env->{'periahs._form_cache'}
0 0 0 $self->{'parse_reform'} and $env->{'periahs._form_cache'} and $env->{'periahs._form_cache'}{'-submit'}
394 0 14 8 $self->{'deconfuse_php_clients'} and $rcua
14 0 8 $self->{'deconfuse_php_clients'} and $rcua and $rcua =~ /$self->{'php_clients_ua_re'}/
409 0 3 4 $argm and $argm->{'schema'}
411 3 0 1 ref $rargs->{$arg} eq 'HASH' and not keys %{$$rargs{$arg};}
3 0 1 ref $rargs->{$arg} eq 'HASH' and not keys %{$$rargs{$arg};} and $argm->{'schema'}[0] eq 'array'
417 2 0 2 ref $rargs->{$arg} eq 'ARRAY' and not @{$rargs->{$arg};}
2 1 1 ref $rargs->{$arg} eq 'ARRAY' and not @{$rargs->{$arg};} and $argm->{'schema'}[0] eq 'hash'

or 2 conditions

line l !l condition
100 0 8 $self->{'riap_uri_prefix'} //= ''
101 0 8 $self->{'server_host'} //= undef
102 0 8 $self->{'server_port'} //= undef
103 0 8 $self->{'server_path'} //= '/api'
115 0 8 $self->{'get_http_request_url'} //= sub { my($self, $env, $rreq) = @_; my $uri = $rreq->{'uri'}; return unless $uri =~ m[^/] or $uri =~ s/^pl://; $uri =~ s/\A\Q$self->{'riap_uri_prefix'}\E//; $uri =~ s[^/][]; join '', $self->get_server_url($env), $uri; }
118 1 7 $self->{'accept_yaml'} //= 0
119 1 7 $self->{'parse_form'} //= 1
120 0 8 $self->{'parse_reform'} //= 0
121 1 7 $self->{'parse_path_info'} //= 0
122 0 8 $self->{'use_tx'} //= 0
123 0 8 $self->{'custom_tx_manager'} //= undef
135 2 6 $self->{'deconfuse_php_clients'} //= 1
144 0 33 $env->{'riap.request'} //= {}
151 1 32 $env->{'HTTP_ACCEPT'} // ''
152 1 32 $env->{'HTTP_USER_AGENT'} // ''
356 1 0 $env->{'PATH_INFO'} // ''
371 0 22 $rreq->{'v'} //= 1.1
376 0 2 $rreq->{'detail'} //= 1

or 3 conditions

line l !l&&r !l&&!r condition
108 0 0 0 $uri =~ m[^/] or $uri =~ s/^pl://
117 5 3 0 $self->{'match_uri'} //= qr/(?<uri>[^?]*)/
132 0 8 0 $self->{'riap_client'} //= 'Perinci::Access::Schemeless'->new('load', 0, 'set_function_properties', {}, 'use_tx', $self->{'use_tx'}, 'custom_tx_manager', $self->{'custom_tx_manager'})
134 1 7 0 $self->{'php_clients_ua_re'} //= qr"Phinci|/php|php/"i
199 4 2 1 $ct eq 'application/json' or $ct eq 'text/yaml' and $self->{'accept_yaml'}
233 12 13 4 not defined $rreq->{'args'} or ref $rreq->{'args'} eq 'HASH'
243 0 0 0 $self->{'match_uri_errmsg'} // "Request does not match match_uri[0] $mu->[0]"
249 0 2 0 $self->{'match_uri_errmsg'} // "Request does not match match_uri $mu"
252 0 19 0 $rreq->{$_} //= $m{$_}
266 0 22 0 $rreq->{'fmt'} // $env->{'periahs.default_fmt'}
322 0 0 0 $env->{'periahs._meta_res_cache'} // $self->{'riap_client'}->request('meta', $rreq->{'uri'})
325 0 0 0 $env->{'periahs._meta_res_cache'} //= $res
348 0 1 0 $env->{'periahs._meta_res_cache'} // $self->{'riap_client'}->request('meta', $rreq->{'uri'})
351 0 1 0 $env->{'periahs._meta_res_cache'} //= $res
365 0 2 0 $rreq->{'args'}{$k} //= $res->[2]{$k}
372 1 21 0 $rreq->{'fmt'} //= $env->{'periahs.default_fmt'}
400 0 8 0 $env->{'periahs._meta_res_cache'} // $self->{'riap_client'}->request('meta', $rreq->{'uri'})
403 0 8 0 $env->{'periahs._meta_res_cache'} //= $res