Condition Coverage

blib/lib/Crypt/LE.pm
Criterion Covered Total %
condition 57 371 15.3


and 3 conditions

line !l l&&!r l&&r condition
338 27 0 3 exists $params{$key} and not ref $params{$key}
366 3 0 0 $params{'logger'} and &blessed($params{'logger'})
439 0 1 9 &Net::SSLeay::BIO_write($bio, $csr) and $in = &Net::SSLeay::PEM_read_bio_X509_REQ($bio)
446 0 0 9 $cn and $cn =~ /^.*?\bCN=([^\s,]+).*$/
457 0 0 9 $ext->{'extnID'} and $ext->{'extnID'} eq "2.5.29.17"
623 0 0 0 defined $version and $version =~ /^\d+$/
0 0 0 defined $version and $version =~ /^\d+$/ and $version <= 2
729 1 0 0 $status == 200 and $content
1 0 0 $status == 200 and $content and ref $content eq "HASH"
731 0 0 0 do {
738 0 0 0 do {
746 0 0 0 $self->{'directory'} and $self->{'directory'}{'reg'}
796 0 0 0 $status == 400 and $kid
0 0 0 $status == 400 and $kid and $mac
0 0 0 $status == 400 and $kid and $mac and $self->_pull_error($content) =~ /not awaiting/
802 0 0 0 $self->version == 1 and $self->{'links'}
0 0 0 $self->version == 1 and $self->{'links'} and $self->{'links'}{'terms-of-service'}
0 0 0 $self->version == 1 and $self->{'links'} and $self->{'links'}{'terms-of-service'} and !$content->{'agreement'} || $self->{'links'}{'terms-of-service'} ne $content->{'agreement'}
831 0 0 0 $self->{'registration_info'} and ref $self->{'registration_info'} eq "HASH"
833 0 0 0 $self->{'registration_info'}{'contact'} and ref $self->{'registration_info'}{'contact'} eq "ARRAY"
0 0 0 $self->{'registration_info'}{'contact'} and ref $self->{'registration_info'}{'contact'} eq "ARRAY" and @{$self->{'registration_info'}{'contact'};}
837 0 0 0 not $self->{'registration_id'} and $self->{'directory'}{'reg'} =~ m[/([^/]+)$]
870 0 0 0 $contacts and ref $contacts eq "ARRAY"
896 0 0 0 $status == 201 and $content->{'identifiers'}
0 0 0 $status == 201 and $content->{'identifiers'} and $content->{'authorizations'}
915 0 0 0 $content->{'identifier'} and $content->{'identifier'}{'value'}
919 0 0 0 $challenge and ref $challenge eq "HASH"
0 0 0 $challenge and ref $challenge eq "HASH" and $challenge->{'type'}
0 0 0 $challenge and ref $challenge eq "HASH" and $challenge->{'type'} and $challenge->{'url'} || $challenge->{'uri'}
0 0 0 $challenge and ref $challenge eq "HASH" and $challenge->{'type'} and $challenge->{'url'} || $challenge->{'uri'} and $challenge->{'status'} || $content->{'status'}
926 0 0 0 $challenge->{'token'} and $challenge->{'token'} =~ /$url_safe/
935 0 0 0 $self->{'challenges'} and exists $self->{'challenges'}{$domain}
1046 0 0 0 $self->{'domains'} and $self->{'challenges'}
1047 0 0 0 $cb && &blessed($cb)
1050 0 0 0 $cb and ref $cb eq 'CODE' || $mod_callback && $cb->can($handler)
1051 0 0 0 $params and ref $params ne "HASH"
1055 0 0 0 defined $self->{'domains'}{$domain} and not $self->{'domains'}{$domain}
1059 0 0 0 $self->{'challenges'}{$domain} and $self->{'challenges'}{$domain}{$type}
1176 0 0 0 $self->{'domains'} and $self->{'challenges'}
1178 0 0 0 $cb && &blessed($cb)
1182 0 0 0 $cb and ref $cb eq 'CODE' || $mod_callback && $cb->can($handler)
1183 0 0 0 $params and ref $params ne "HASH"
1188 0 0 0 defined $self->{'domains'}{$domain} and not $self->{'domains'}{$domain}
1207 0 0 0 $status == $expected_status and $content
0 0 0 $status == $expected_status and $content and $content->{'status'}
1273 0 0 0 ref $content eq "HASH" and $content->{'identifiers'}
0 0 0 ref $content eq "HASH" and $content->{'identifiers'} and $content->{'authorizations'}
1281 0 0 0 ref $content eq "HASH" and $content->{'status'}
0 0 0 ref $content eq "HASH" and $content->{'status'} and $content->{'status'} eq "processing"
1286 0 0 0 $status == 200 and $content
0 0 0 $status == 200 and $content and $content->{'status'}
1320 0 0 0 $self->{'links'} && $self->{'links'}{'up'}
1415 0 0 0 $self->{'links'} && $self->{'links'}{'terms-of-service'}
1486 0 0 0 $self->{'alternative_certificates'} and defined $idx
0 0 0 $self->{'alternative_certificates'} and defined $idx and $idx < @{$self->{'alternative_certificates'};}
1557 0 0 2 $self->{'failed_domains'} and @{$self->{'failed_domains'};}
1577 0 0 1 $self->{'domains'} and %{$self->{'domains'};}
1614 0 1 1 $Crypt::LE::cas->{$ca} && $Crypt::LE::cas->{$ca}{'stage'}
1632 2 0 0 $params and ref $params eq "HASH"
1633 2 0 0 $timeout and !($timeout =~ /^\d+/) || $timeout < 1
1640 0 0 2 $bio and &Net::SSLeay::BIO_write($bio, $$res)
1693 0 0 3 $der && $type
1714 0 0 0 $@ and $@ =~ /Usage/
1752 0 0 10 $type =~ /^\d+$/ and $type <= 1
1757 1 0 1 $attr and $attr ne "default"
1784 0 0 6 $domains and !$ref || $ref eq 'ARRAY'
1785 0 6 0 $attrib and ref $attrib ne "HASH"
1790 0 6 0 $attrib and $attrib->{'CN'} || $attrib->{'commonName'}
1806 0 0 6 $md and &Net::SSLeay::X509_REQ_sign($req, $pk, $md)
1850 0 1 0 $resp->{'headers'}{'content-type'} && $resp->{'headers'}{'content-type'} =~ m[^application/(?:problem\+)?json]
1864 1 0 0 $resp->{'headers'}{'retry-after'} and $resp->{'headers'}{'retry-after'} =~ /^(\d+)$/
1878 0 0 0 $status == $expected_status and $content
0 0 0 $status == $expected_status and $content and $content->{'status'}
0 0 0 $status == $expected_status and $content and $content->{'status'} and $content->{'status'} =~ /^(?:pending|processing)$/
1881 0 0 0 $self->{'try'} and ++$try == $self->{'try'}
1903 0 0 0 $url and $self->version > 1
1904 0 0 0 $self->{'directory'}{'reg'} and not $opts->{'jwk'}
1910 0 0 0 $opts->{'kid'} and $opts->{'mac'}
1936 0 0 0 $link and $link =~ /^<([^>]+)>;rel="([^"]+)"$/i
1978 0 0 0 $data and $data->{'domain'}
2004 25 0 0 ref $data eq "HASH" and $data->{'error'}
2017 0 2 0 $err and ref $err eq "HASH"
2018 0 0 0 $err->{'error'} and $err->{'error'}{'detail'}
2053 0 1 0 defined $_[5] and $_[5]
2062 1 0 0 $$exp and $s > $$exp

or 2 conditions

line l !l condition
405 0 0 $err || 'Could not generate account key'
524 2 1 $code || 500
3 0 $err || 'Key problem while creating CSR'
940 0 0 $self->_pull_error($content) || 'No valid challenges'
1048 0 0 $type ||= "http"
1179 0 0 $type ||= "http"
1302 0 0 $self->{'links'}{'alternate'} || []
1659 0 0 $timeout || 10
1666 0 0 $response->{'reason'} || ''
1712 0 0 $tag || 'Crypt::LE exported'
1751 2 8 $type ||= 0
1842 0 1 $opts ||= {}
1843 0 1 $opts->{'method'} || 'get'
1875 0 0 $opts ||= {}
1876 0 0 $opts->{'status'} || 200
1902 0 0 $opts ||= {}

or 3 conditions

line l !l&&r !l&&!r condition
341 0 3 0 $self->{'ua'} || 'Crypt::LE' . " v$VERSION"
351 0 0 0 $$cas{lc $self->{'ca'}} || $Crypt::LE::cas->{$default_ca}
701 4 3 42 m"[\s\[\{\(\<\@\>\)\}\]/\\:]" or /^[\d\.]+$/
727 1 0 0 not $self->{'directory'} or $reload
802 0 0 0 !$content->{'agreement'} || $self->{'links'}{'terms-of-service'} ne $content->{'agreement'}
919 0 0 0 $challenge->{'url'} || $challenge->{'uri'}
0 0 0 $challenge->{'status'} || $content->{'status'}
931 0 0 0 $challenge->{'uri'} ||= $challenge->{'url'}
932 0 0 0 $challenge->{'status'} ||= $content->{'status'}
1050 0 0 0 ref $cb eq 'CODE' || $mod_callback && $cb->can($handler)
1075 0 0 0 $@ or not $rv
1182 0 0 0 ref $cb eq 'CODE' || $mod_callback && $cb->can($handler)
1202 0 0 0 $content->{'uri'} ||= $content->{'url'}
1231 0 0 0 $@ or not $rv
1633 0 0 0 !($timeout =~ /^\d+/) || $timeout < 1
0 0 2 not $res or $timeout and !($timeout =~ /^\d+/) || $timeout < 1
2 0 0 ref $res or not $res =~ m[^\w+://]i
1754 3 5 0 $attr ||= $keysize
1755 1 1 6 $attr < 2048 or $attr % 1024
1784 0 6 0 !$ref || $ref eq 'ARRAY'
1790 0 0 6 $attrib->{'CN'} || $attrib->{'commonName'}
1844 0 0 1 defined $payload or $method eq "post"
1879 0 0 0 $self->{'retry'} || $self->{'delay'}
1964 1 0 0 not $req or $self->version == 1
1 0 0 not $req or $self->version == 1 or not $req->{'resource'}
1966 0 0 0 $res eq "new-reg" or $res eq "reg"
2007 25 0 0 $data || $code
2071 0 2 1 !$content || $content =~ /^\-+BEGIN/