Condition Coverage

File:blib/lib/CGI/Lingua.pm
Coverage:78.1%

line%coveragecondition
55033
ABdec
0X0
100
111
&Scalar::Util::blessed($logger) and $logger->can("error")
55833
ABdec
000
011
1X1
$params->{'_supported'} ||= $params->{'supported'}
565100
ABdec
0X0
100
111
defined $params->{'logger'} and &Scalar::Util::blessed($params->{'logger'})
56675
ABCdec
0XX0
10X0
1100
1111
$params->{'logger'}->can("warn") and $params->{'logger'}->can("info") and $params->{'logger'}->can("error")
579100
ABdec
000
011
1X1
$params->{'supported'} ||= $params->{'supported_languages'}
582100
ABdec
000
011
1X1
length $params->{'supported'} < 2 or length $params->{'supported'} > 5
601100
ABdec
0X0
100
111
defined $info and not &Scalar::Util::blessed($info) && ($info->can('lang') || $info->can('AUTOLOAD'))
100
ABdec
0X0
100
111
&Scalar::Util::blessed($info) && ($info->can('lang') || $info->can('AUTOLOAD'))
612100
ABCdec
0XX0
10X0
1100
1111
defined $entry and not ref $entry and $entry =~ /$SUPPORTED_RE/
61633
ABdec
0X0
100
111
&Scalar::Util::blessed($params->{'logger'}) and $params->{'logger'}->can("warn")
62733
ABdec
0X0
100
111
&Scalar::Util::blessed($params->{'logger'}) and $params->{'logger'}->can("warn")
644100
Adec
00
11
$params->{'debug'} || 0
100
Adec
00
11
$params->{'dont_use_ip'} || 0
652100
ABdec
0X0
100
111
$cache and $ENV{'REMOTE_ADDR'}
65567
ABdec
0X0
100
111
defined $key and my $frozen = _cache_call($params, $cache, "get", $key)
662100
ABdec
000
011
1X1
ref $rc->{$_} or not $rc->{$_} =~ /$RESTORABLE{$_}/
66633
ABdec
0X0
100
111
&Scalar::Util::blessed($params->{'logger'}) and $params->{'logger'}->can("warn")
712100
ABdec
000
011
1X1
defined($l = _info_lang($info)) or defined($l = $class->_what_language)
72133
ABdec
0X0
100
111
defined $_ and not ref $_
73633
ABdec
0X0
100
111
defined $raw and not ref $raw
75950
Adec
00
11
$@ || 'unknown error'
76225
ABCdec
0XX0
10X0
1100
1111
ref $self eq "HASH" and &Scalar::Util::blessed($self->{'logger'}) and $self->{'logger'}->can("warn")
78767
ABdec
0X0
100
111
defined $lang and length $lang
79167
ABdec
0X0
100
111
not ref $lang and $lang =~ /$ACCEPT_LANG_RE/
81175
ABCdec
00X0
0100
0111
1XX1
not defined $value or not ref $value and $value =~ /$re/
82233
ABdec
0X0
100
111
defined $^V and $^V ge "v5.14.0"
1000100
Adec
00
11
$self->{'_sublanguage'} || 'undef'
115250
Adec
00
11
$self->{'_rlanguage'} //= "Unknown"
1182100
ABdec
0X0
100
111
defined $http_accept_language and $http_accept_language =~ /;\s*q\s*=/i
1193100
Adec
00
11
$http_accept_language // "(none)"
120050
Adec
00
11
@{$self->{'_supported'};} // ""
122843
ABCDdec
00XX0
01000
01011
011X1
1X000
1X011
1X1X1
!$self->{'_rlanguage'} || $self->{'_rlanguage'} eq 'Unknown' and length $http_accept_language == 2 || $http_accept_language =~ /^..-..$/
1232100
Adec
00
11
$self->_code2language($http_accept_language) || 'Unknown'
1263100
ABCdec
0XX0
10X0
1100
1111
$l and $http_accept_language =~ /-/ and not $http_accept_language =~ qr/$l/i
140167
ABdec
000
011
1X1
$requested_sublanguage //= $1
140350
Adec
00
11
$_locale_object_db_ok // 1
144050
Adec
00
11
$accepts // "undef"
145933
ABdec
0X0
100
111
$variety =~ /[a-z]{2,3}/ and not defined $self->{'_sublanguage'}
1468100
Adec
00
11
$_locale_object_db_ok // 1
147433
ABdec
0X0
100
111
defined $language_name and length $language_name
14800
Adec
00
11
$@ || 'unknown error'
150367
ABdec
000
011
1X1
$db_error or not defined $language_name
1516100
ABdec
0X0
100
111
$self->{'_cache'} and not defined $from_cache
1553100
ABdec
0X0
100
111
not defined $country and my $c = $self->_what_language
1585100
Adec
00
11
$ENV{'REMOTE_ADDR'} // "(none)"
1588100
ABdec
000
011
1X1
not defined $self->{'_rlanguage'} or $self->{'_rlanguage'} eq "Unknown"
1592100
ABdec
0X0
100
111
exists $self->{'_slanguage'} and $self->{'_slanguage'} ne "Unknown"
159575
ABCdec
0XX0
10X0
1100
1111
$language_name and $language_code2 and not defined $http_accept_language
160433
ABdec
0X0
100
111
$http_accept_language and $http_accept_language ne $self->{'_rlanguage'}
16110
ABdec
000
011
1X1
not defined $http_accept_language or $1 ne $self->{'_rlanguage'}
163875
ABCdec
0XX0
10X0
1100
1111
not defined $from_cache and $self->{'_cache'} and defined $self->{'_slanguage_code_alpha2'}
1856100
ABdec
0X0
100
111
$ENV{'HTTP_CF_IPCOUNTRY'} and $ENV{'HTTP_CF_IPCOUNTRY'} ne "XX"
192667
ABdec
000
011
1X1
ref $self->{'_country'} or not $self->{'_country'} =~ /$COUNTRY_RE/
67
ABdec
000
011
1X1
ref $self->{'_country'} || $self->{'_country'} =~ /\D/
197667
ABdec
0X0
100
111
not defined $self->{'_country'} and $ip ne $BROKEN_GEOIPFREE
1998100
ABdec
0X0
100
111
$self->{'_country'} and $self->{'_country'} eq "eu"
2003100
ABdec
0X0
100
111
not $self->{'_country'} and eval {         do {         require LWP::Simple::WithCache; require JSON::Parse } }
2020100
ABCdec
0XX0
1000
1011
11X1
defined $v and ref $v || !($v =~ /^[A-Za-z]{2}\z/)
2021100
ABdec
000
011
1X1
ref $v or length $v
100
ABCdec
0XX0
10X0
1100
1111
not ref $v and length $v and not $v =~ /\D/
205033
ABdec
0X0
100
111
$self->{'_country'} and not $self->{'_country'} =~ /\D/
75
ABCdec
0XX0
10X0
1100
1111
$self->{'_country'} and $self->{'_country'} ne "Unknown" and not $self->{'_country'} =~ /^[a-z]{2}$/
33
ABdec
0X0
100
111
$self->{'_country'} and $self->{'_cache'}
2099100
ABCdec
0000
0011
01X1
1XX1
$@ or not defined $whois or ref $whois ne "HASH"
210675
ABCdec
0XX0
10X0
1100
1111
$self->{'_country'} eq "US" and defined $whois->{'StateProv'} and $whois->{'StateProv'} eq "PR"
2182100
ABdec
0X0
100
111
defined $ip and $ip =~ /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\z/a
2338100
ABdec
0X0
100
111
defined $agent and $agent =~ /\((.+)\)/
2359100
Adec
00
11
$browser->country // ""
2517100
ABdec
000
011
1X1
eval {         do {         require LWP::Simple::WithCache; 1 } } or eval {         do {         require LWP::Simple; 1 } }
254575
ABCdec
0XX0
1000
1011
11X1
defined $self->{'_timezone'} and ref $self->{'_timezone'} || !($self->{'_timezone'} =~ /$ZONE_RE/)
2571100
ABdec
0X0
100
111
-f $ZONE_FILE and -r _
2579100
ABdec
0X0
100
111
defined $zone and $zone =~ /$ZONE_RE/
2621100
Adec
00
11
$self->language_code_alpha2 // ""
2855100
Adec
00
11
$self->language_code_alpha2 // (return "other")
285633
ABdec
000
011
1X1
$PLURAL_RULES{$code} // sub {         int $_[0] == 1 ? "one" : "other"; }
2935100
ABCDdec
00000
00011
001X1
01XX1
1XXX1
ref $dir or not length $dir or $dir =~ /\.\./ or $dir =~ /\x00/
2940100
Adec
00
11
$ext //= "json"
295367
ABdec
0X0
100
111
defined $lang and $lang =~ /$LANG_CODE_RE/
2965100
ABdec
0X0
100
111
-f $path and -r _
3039100
Adec
00
11
$_locale_object_db_ok // 1
305250
Adec
00
11
$code || 'undef'
3131100
Adec
00
11
ref $self and scalar @messages
316033
ABdec
000
011
1X1
(ref $params ? $params->{'warning'} : undef) // join("", grep(defined($_), @_))
3203100
ABdec
0X0
100
111
defined $ip and $ip =~ /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\z/a
3209100
ABdec
0X0
100
111
defined $ip and $ip =~ /:/
321767
ABdec
0X0
100
111
($ip =~ /^[0-9a-fA-F:]+\z/ || $ip =~ /^[0-9a-fA-F:]+:\d{1,3}(?:\.\d{1,3}){3}\z/a) && (() = $ip =~ /::/g) <= 1 && $ip =~ tr/:// >= 2
3228100
ABCdec
0XX0
10X0
1100
1111
$a == 172 and $b >= 16 and $b <= 31
3229100
ABdec
0X0
100
111
$a == 192 and $b == 168
323067
ABdec
0X0
100
111
$a == 169 and $b == 254