Branch Coverage

blib/lib/Furl/HTTP.pm
Criterion Covered Total %
branch 139 292 47.6


line true false branch
41 0 32 @_ == 1 ? :
47 0 32 if (defined $args{'headers'})
51 0 0 if (lc $name eq 'connection') { }
126 3 2 if (@_ == 2) { }
136 3 0 if (lc $headers->[$i] eq $key)
147 20 9 if lc $headers->[$i] eq $key
154 10 2 if exists $INC{$file}
155 0 2 unless (eval { do { require $file } })
156 0 0 if ($@ =~ /^Can't locate/) { }
176 1 34 unless $url =~ m[\A ([a-z]+) # scheme :// (?: ([^/:\@?]+) # user : ([^/:\@?]+) # password @ )? ([^/:?]+) # host (?: : (\d+) )? # port (?: ( /? \? .* | / .*) )? # path_query \z]msx
196 0 0 ref $content eq 'ARRAY' ? :
0 0 ref $content eq 'HASH' ? :
213 4 4 if $ENV{'REQUEST_METHOD'}
226 23 44 if (defined(my $url = $args{'url'})) { }
231 0 44 unless (defined $host)
236 44 23 if (not defined $scheme) { }
6 34 elsif ($scheme ne 'http' and $scheme ne 'https') { }
242 61 0 $scheme eq 'http' ? :
245 1 60 unless (defined $port)
248 13 48 unless (defined $path_query)
252 3 58 unless (substr($path_query, 0, 1) eq '/')
257 0 61 if ($host =~ /[^A-Za-z0-9._-]/)
265 0 61 if ($proxy and $no_proxy)
266 0 0 if ($self->match_no_proxy($no_proxy, $host))
274 26 35 if (defined $sock)
275 2 24 if ($self->_do_select(0, $sock, 0)) { }
282 37 24 unless ($in_keepalive)
284 0 37 if ($proxy) { }
288 0 0 if (defined $proxy_user)
297 0 0 if ($scheme eq 'http') { }
300 0 0 if (defined $proxy_authorization)
308 37 0 if ($scheme eq 'http') { }
316 1 36 unless $sock
329 1 59 if $method eq 'HEAD'
331 14 46 if (my $in_headers = $args{'headers'})
334 0 18 if (lc $name eq 'connection') { }
342 0 60 if (exists $self->{'proxy_authorization'})
345 6 54 if (defined $username)
354 0 60 if (defined $cookie_jar)
356 0 0 if ($args{'url'}) { }
365 0 0 exists $args{'port'} ? :
0 0 exists $args{'path_query'} ? :
373 3 57 if (defined $content)
375 0 3 if (not $content_is_fh and ref $content)
377 0 0 unless (defined _header_get(\@headers, 'Content-Type'))
382 3 0 unless (defined _header_get(\@headers, 'Content-Length'))
384 0 3 if ($content_is_fh) { }
386 0 0 unless $_[0]
405 1 59 $port == $default_port ? :
408 0 60 $proxy && $scheme eq 'http' ? :
418 0 60 unless $self->write_all($sock, $p, $timeout_at)
422 1 59 if ($self->{'capture_request'})
426 3 57 if (defined $content)
427 0 3 if ($content_is_fh) { }
432 0 0 if (not defined $ret) { }
0 0 elsif ($ret == 0) { }
437 0 0 unless $self->write_all($sock, $buf, $timeout_at)
442 0 0 if ($self->{'capture_request'})
447 0 3 if (length $content > 0)
448 0 0 unless $self->write_all($sock, $content, $timeout_at)
453 0 0 if ($self->{'capture_request'})
477 3 209 if (not $n) { }
478 0 3 if ($in_keepalive and length $buf == 0 and defined $n || $! == 104 || 0)
483 3 0 !defined($n) ? :
494 0 209 if ($ret == -1) { }
147 62 elsif ($ret == -2) { }
504 5 57 if (int $res_status / 100 eq 1)
518 0 57 if ($special_headers->{'location'})
519 0 0 defined $args{'max_redirects'} ? :
524 57 0 unless ($do_redirect)
525 0 57 if (my $fh = $args{'write_file'}) { }
0 57 elsif (my $coderef = $args{'write_code'}) { }
534 0 57 if (exists $COMPRESSED{$special_headers->{'content-encoding'}})
542 1 56 if (defined $content_length and not $content_length =~ /\A[0-9]+\z/)
546 49 6 unless ($method eq 'HEAD' or $res_status < 200 and $res_status >= 100 or $res_status == 204 or $res_status == 304)
551 7 42 if ($chunked) { }
556 1 41 if (ref $res_content or not defined $content_length) { }
566 1 48 if (@err)
572 54 1 if (lc $connection_header eq 'keep-alive')
574 10 44 $res_minor_version == 0 ? :
44 0 if ($res_minor_version == 0 ? $connection eq 'keep-alive' : $connection ne 'close' and defined $content_length || $chunked)
586 0 55 if (defined $cookie_jar)
587 0 0 defined $username && defined $password ? :
595 0 0 unless ref $cookies
601 0 55 if ($do_redirect)
603 0 0 unless ($location =~ m[^[a-z0-9]+://])
616 0 0 $res_status eq '301' || $res_status eq '307' ? :
626 0 55 if (ref $res_content)
642 0 37 if $timeout <= 0
645 1 36 unless $sock_addr
648 0 36 unless socket $sock, Socket::sockaddr_family($sock_addr), 1, 0
652 0 36 if (CORE::connect $sock, $sock_addr) { }
36 0 elsif ($! == 115 or 0) { }
655 0 36 unless $self->do_select(1, $sock, $timeout_at)
659 0 0 if ($! == 4 and not $self->{'stop_if'}->())
670 1 36 if ($self->{'get_address'})
674 1 35 unless my $iaddr = $self->{'inet_aton'}->($host, $timeout)
682 0 0 unless (exists $ssl_opts->{'SSL_verify_mode'})
685 0 0 unless (exists $ssl_opts->{'SSL_verifycn_scheme'})
689 0 0 if ($ssl_opts->{'SSL_verify_mode'})
690 0 0 unless (exists $ssl_opts->{'SSL_ca_file'} or exists $ssl_opts->{'SSL_ca_path'})
706 0 0 unless $sock
710 0 0 if $timeout <= 0
714 0 0 unless 'IO::Socket::SSL'->start_SSL($sock, 'PeerHost', $host, 'PeerPort', $port, 'Timeout', $timeout, %$ssl_opts)
732 0 0 if (defined $proxy_authorization)
736 0 0 unless $self->write_all($sock, $p, $timeout_at)
742 0 0 if (not defined $read) { }
0 0 elsif ($read == 0) { }
0 0 elsif (not $buf =~ m[^HTTP/1\.[0-9] 200 .+\015\012]) { }
751 0 0 if $timeout_at <= 0
755 0 0 unless (exists $ssl_opts->{'SSL_verifycn_name'})
759 0 0 unless 'IO::Socket::SSL'->start_SSL($sock, 'PeerHost', $host, 'PeerPort', $port, 'Timeout', $timeout, %$ssl_opts)
774 2082 524 if (my($header, $next_len) = $buf =~ /\A ( # header ( [0-9a-fA-F]+ ) # next_len (hex number) (?:; $HTTP_TOKEN = (?: $HTTP_TOKEN | $HTTP_QUOTED_STRING ) )* # optional chunk-extensions [ ]* # www.yahoo.com adds spaces here. # Is this valid? \015\012 # CR+LF ) /mosx)
793 6 2076 if ($next_len == 0)
801 0 1026 unless ($n)
802 0 0 !defined($n) ? :
811 1820 256 if (length $buf > 0)
818 1 779 unless ($n)
819 0 1 !defined($n) ? :
837 1 0 unless ($n)
838 1 0 unless defined $res_content_length
839 0 0 !defined($n) ? :
859 0 29 unless ($n)
860 0 0 !defined($n) ? :
876 0 94 if $timeout_at > $inactivity_timeout_at
881 0 97 if ($timeout <= 0)
886 91 6 if $nfound > 0
887 3 3 if $nfound == -1 and $! == 4 and $self->{'stop_if'}->()
898 36 87 if ($is_write) { }
916 2045 58 if defined($ret = sysread($sock, $$buf, $len, $off))
918 58 0 if ($! == 11 or $! == 11 or 0) { }
0 0 elsif ($! == 4) { }
921 0 0 if $self->{'stop_if'}->()
927 3 55 unless $self->do_select(0, $sock, $timeout_at)
937 60 0 if defined($ret = syswrite($sock, $buf, $len, $off))
939 0 0 if ($! == 11 or $! == 11 or 0) { }
0 0 elsif ($! == 4) { }
942 0 0 if $self->{'stop_if'}->()
947 0 0 unless $self->do_select(1, $sock, $timeout_at)
956 0 60 unless my $ret = $self->write_timeout($sock, $buf, $len, $off, $timeout_at)
977 3 0 $! != 0 ? :
983 0 36 unless setsockopt $sock, 6, 1, 1
992 0 36 unless my $flags = fcntl($sock, 3, 0)
994 0 36 unless $flags = fcntl($sock, 4, $flags | 2048)
1015 0 0 if ($no_proxy eq '*') { }
1020 0 0 if ($host =~ /\Q$pat\E$/)