Branch Coverage

lib/Amazon/S3.pm
Criterion Covered Total %
branch 20 218 9.1


line true false branch
61 3 0 ref $args[0] ? :
78 3 0 unless ($options{'logger'})
79 0 3 if (delete $options{'debug'})
98 0 0 if ($safe_options{'aws_secret_access_key'})
107 3 0 unless ($self->credentials)
109 0 3 unless $self->aws_access_key_id
112 0 3 unless $self->aws_secret_access_key
123 0 3 if ($self->retry) { }
144 0 3 if (not $self->_signer and $self->cache_signer)
162 3 6 unless $text
164 6 0 unless (defined $encryption_key)
166 6 0 if (not defined $encryption_key)
175 6 0 if (not $encryption_key or $Amazon::S3::EVAL_ERROR)
194 0 0 unless $secret and $encryption_key
214 0 0 if (not ref $bucket or ref !($bucket =~ /Amazon::S3::Bucket/msx))
228 0 0 if $region
241 0 0 if ($response and $response->is_success)
242 0 0 if ($response->content =~ /\A([[:lower:]]+[-][[:lower:]]+[-]\d+)/msx)
280 0 3 if ($self->retry)
299 0 0 if ($self->retry)
318 4 3 if (@args)
325 7 0 if ($self->_region)
329 7 0 if ($host =~ /\As3[.](.*)?amazonaws/msx)
360 0 0 if not $r or $self->errstr
368 0 0 if (ref $r->{'Buckets'})
371 0 0 if (not ref $buckets or &reftype($buckets) ne "ARRAY")
408 0 0 if ($self->cache_signer) { }
409 0 0 if ($self->region and $self->region ne $Amazon::S3::DEFAULT_REGION)
410 0 0 if ($self->signer->can("region"))
430 0 0 if ($region and $region eq $Amazon::S3::DEFAULT_REGION)
436 0 0 unless $bucket
441 0 0 if ($conf->{'acl_short'})
453 0 0 defined $region ? :
464 0 0 $retval ? :
476 0 0 if (ref $args[0] and &reftype($args[0]) eq 'HASH') { }
486 0 0 unless ($region or $verify_region)
507 0 0 if (eval { do { return $conf->isa('Amazon::S3::Bucket') } }) { }
516 0 0 unless $bucket
545 0 0 unless $bucket
557 0 0 if ($conf->{'marker'})
561 0 0 if (%{$conf;})
567 0 0 if defined $conf->{$_}
598 0 0 if not $r or $self->errstr
619 0 0 defined $r->{'IsTruncated'} && scalar $r->{'IsTruncated'} eq 'true' ? :
630 0 0 if (defined $etag)
648 0 0 if ($conf->{'delimiter'})
653 0 0 if (ref $node ne "ARRAY")
658 0 0 unless exists $n->{'Prefix'}
662 0 0 if ($prefix)
697 0 0 unless $bucket
702 0 0 unless $response
706 0 0 unless $response->{'is_truncated'}
719 0 0 unless $response
724 0 0 unless $response->{'is_truncated'}
742 0 0 if ($self->credentials) { }
770 6 11 if (@args)
784 0 0 if $self->_signer
787 0 0 $self->credentials ? :
789 0 0 $self->get_token ? :
798 0 0 if ($self->cache_signer)
810 0 0 unless (&any(sub { $policy_name eq $_; } , "private", "public-read", "public-read-write", "authenticated-read"))
828 0 0 if (length $bucketname > $Amazon::S3::MAX_BUCKET_NAME_LENGTH - 1)
832 0 0 if (length $bucketname < $Amazon::S3::MIN_BUCKET_NAME_LENGTH)
836 0 0 unless $bucketname =~ /\A[[:lower:]][[:lower:]\d-]*\z/msx
837 0 0 unless $bucketname =~ /[[:lower:]\d]\z/msx
850 0 0 if (ref $args[0] and &reftype($args[0]) eq 'HASH') { }
861 0 0 unless $method
864 0 0 unless defined $path
875 0 0 $self->secure ? :
882 0 0 if ($path =~ m[\A([^/?]+)([^?]+)(.*)]msx and $self->dns_bucket_names and _can_bucket_be_subdomain($1))
890 0 0 if ($host =~ /([^:]+):([^:]\d+)$/msx) { }
906 0 0 if not $url or $Amazon::S3::EVAL_ERROR
947 0 0 if (@args == 1 and ref($args[0]) =~ /HTTP::Request/msx) { }
951 0 0 if (ref $args[0])
966 0 0 if (not $response->code =~ /\A2\d\d\z/msx) { }
0 0 elsif ($content and $response->content_type eq 'application/xml') { }
1008 0 0 if $response->is_success
1013 0 0 if ($response->content_type eq "application/xml" and $response->content)
1017 0 0 if ($error_hash->{'Code'} eq "PermanentRedirect" and $error_hash->{'Endpoint'})
1021 0 0 if $called_from_redirect
1038 0 0 if ($error_hash->{'Code'} eq "AuthorizationHeaderMalformed" and $error_hash->{'Region'})
1046 0 0 unless ($called_from_redirect)
1053 0 0 if ($error_hash->{'Code'} eq "IllegalLocationConstraintException")
1056 0 0 if ($error_hash->{'Message'} =~ /The (\S+) location/msx)
1101 0 0 if ($response->code =~ /\A3/msx and defined $response->header("Location"))
1150 0 0 if $response->code =~ /^2\d\d$/msx
1173 0 0 if (@args == 1 and ref $args[0]) { }
1198 0 0 if ($response->code =~ /^3/msx)
1199 0 0 if (defined $response->header('Location')) { }
1218 0 0 if (defined $override_uri)
1228 0 0 if $response->code =~ /^2\d\d$/msx
1242 0 0 unless ($response->code =~ /^2\d\d$/msx)
1269 0 0 if (not $xml_hr and $Amazon::S3::EVAL_ERROR)
1282 0 0 unless $src
1285 0 0 unless (ref $src or $src =~ /^[[:space:]]*
1294 0 0 ref $src ? :
1299 0 0 if ($r->{'Error'})
1303 0 0 if ($r->{'Code'})
1324 0 0 unless ($headers->header("Date"))
1328 0 0 if ($token)
1386 0 0 if ($lk eq "content-md5" or $lk eq "content-type" or $lk eq "date" or $lk =~ /^$Amazon::S3::AMAZON_HEADER_PREFIX/msx)
1399 0 0 if ($interesting_headers{'x-amz-date'})
1405 0 0 if ($expires)
1412 0 0 if ($key =~ /^$Amazon::S3::AMAZON_HEADER_PREFIX/msx) { }
1427 0 0 if ($path =~ /[&?](acl|torrent|location|uploads|delete)([=&]|$)/msx) { }
0 0 elsif (my(%query_params) = 'URI'->new($path)->query_form) { }
1435 0 0 if ($query_params{'partNumber'} and $query_params{'uploadId'}) { }
0 0 elsif ($query_params{'uploadId'}) { }
1474 0 0 $urlencode ? :