Branch Coverage

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

line%coveragebranch
16850TFif (not defined $class) { }
50TFelsif (ref $class) { }
1690TFif ($params)
1710TFif (my $logger = $params->{'logger'})
1810TFif defined $params->{'supported'}
18850TFif (defined $params->{'logger'})
18950TFunless (&Scalar::Util::blessed($params->{'logger'}) and $params->{'logger'}->can("warn") and $params->{'logger'}->can("info") and $params->{'logger'}->can("error"))
199100TFunless ($params->{'supported'})
20050TFif (my $logger = $params->{'logger'})
20950TFif ($cache and $ENV{'REMOTE_ADDR'})
21250TFif ($info and $l = $info->lang) { }
50TFelsif ($l = $class->_what_language) { }
21750TFif (ref($params->{'supported'} eq 'ARRAY')) { }
22550TFif (my $rc = $cache->get($key))
2390TFif ($rc->{'_what_language'} || $rc->{'_rlanguage'} and $info and $info->lang)
265100TFref $params->{'supported'} ? :
27150TFif (defined $^V and $^V ge "v5.14.0")
27250TFif ${^GLOBAL_PHASE} eq "DESTRUCT"
274100TFunless ($ENV{'REMOTE_ADDR'})
27850TFunless ref $self
281100TFunless $cache
28450TFif (my $l = $self->_what_language)
28850TFif $cache->get($key)
343100TFunless ($self->{'_slanguage'})
388100TFunless ($self->{'_slanguage'})
409100TFunless ($self->{'_slanguage'})
438100TFunless ($self->{'_slanguage'})
458100TFunless ($self->{'_rlanguage'})
48150TFif (defined $http_accept_language)
48450TFif ($http_accept_language eq "en-uk")
4900TFif (not $_[0] =~ /^Use of uninitialized value/)
497100TFif ($l and $http_accept_language =~ /-/ and not $http_accept_language =~ qr/$l/i)
506100TFunless ($l)
517100TFif ($i18n->accepts($1, $self->{'_supported'}))
524100TFunless ($l)
528100TFif $possible =~ /..\-../
531100TFif ($i18n->accepts($possible, $self->{'_supported'}))
540100TFif ($l) { }
100TFelsif ($http_accept_language =~ /;/) { }
543100TFif (not $l =~ /^..-..$/) { }
50TFelsif ($l =~ /(.+)-(..)$/) { }
54550TFif ($self->{'_slanguage'})
556100TFif ($http_accept_language =~ /..-(..)$/) { }
50TFelsif ($http_accept_language =~ /..-([a-z]{2,3})$/i) { }
559100TFunless defined $requested_sublanguage
5640TFif ($@)
568100TFif ($sl) { }
100TFelsif ($requested_sublanguage) { }
57450TFif (my $c = $self->_code2countryname($requested_sublanguage)) { }
58850TFif ($accepts)
59150TFif ($accepts =~ /\-/) { }
5950TFif ($self->{'_cache'})
5980TFif ($from_cache) { }
6040TFif ($self->{'_slanguage'})
6050TFif ($variety eq "uk")
6120TFif (defined(my $c = $self->_code2countryname($variety)))
6170TFif ($self->{'_sublanguage'})
6220TFunless ($from_cache)
63350TFif ($accepts)
63950TFif ($variety =~ /[a-z]{2,3}/ and not defined $self->{'_sublanguage'})
64350TFif ($variety eq "uk")
652100TFif ($self->{'_cache'})
655100TFif (defined $from_cache) { }
66950TFif (defined $results[0]) { }
67750TFif ($@ or not defined $language_name) { }
6780TFif $@
687100TFif ($self->{'_cache'} and not defined $from_cache)
69350TFif (defined $self->{'_sublanguage'})
70550TFif ($self->{'_slanguage'} and $self->{'_slanguage'} ne "Unknown")
7060TFif ($self->{'_rlanguage'} eq "Unknown")
7090TFif ($self->{'_rlanguage'})
7100TFif ($l = $self->_code2language($self->{'_rlanguage'}))
721100TFif (!$self->{'_rlanguage'} || $self->{'_rlanguage'} eq 'Unknown' and length $http_accept_language == 2 || $http_accept_language =~ /^..-..$/)
72550TFunless ($self->{'_rlanguage'})
73250TFif ($self->{'_dont_use_ip'})
741100TFif (not defined $country and my $c = $self->_what_language)
74250TFif ($c =~ /^(..)_(..)/) { }
100TFelsif ($c =~ /^(..)$/) { }
749100TFif (defined $country)
75450TFif ($self->{'_cache'})
75950TFif ($from_cache) { }
76450TFif ($l)
7660TFif (defined $l)
7690TFif ($language_name)
77650TFif ($language_name)
7770TFif (not defined $self->{'_rlanguage'} or $self->{'_rlanguage'} eq "Unknown")
7800TFunless (exists $self->{'_slanguage'} and $self->{'_slanguage'} ne "Unknown")
7850TFif ($language_name and $language_code2 and not defined $http_accept_language) { }
7930TFunless ($code)
7940TFif ($http_accept_language and $http_accept_language ne $self->{'_rlanguage'})
7990TFunless ($code)
8020TFif ($self->{'_rlanguage'} =~ /(.+)\s\(.+/)
8030TFif (not defined $http_accept_language or $1 ne $self->{'_rlanguage'})
8090TFunless ($code)
8170TFif ($code)
8190TFif ($self->{'_slanguage'}) { }
8280TFif (not defined $self->{'_slanguage_code_alpha2'}) { }
0TFelsif (not defined $from_cache and $self->{'_cache'} and defined $self->{'_slanguage_code_alpha2'}) { }
866100TF/^(.+)-/ ? :
86850TFif (exists $base_languages{$language_string})
878100TFif (ref $self)
880100TFif ($self->{'_what_language'})
88450TFif (my $info = $self->{'_info'})
8850TFif (my $rc = $info->lang)
893100TFif (my $rc = $ENV{'HTTP_ACCEPT_LANGUAGE'})
894100TFif (ref $self)
90050TFif (defined $ENV{'LANG'})
9030TFif (ref $self)
92950TFif ($self->{'_country'})
93550TFif (defined $ENV{'GEOIP_COUNTRY_CODE'})
939100TFif ($ENV{'HTTP_CF_IPCOUNTRY'} and $ENV{'HTTP_CF_IPCOUNTRY'} ne "XX")
947100TFunless defined $ip
95250TFunless (is_ipv4($ip))
9540TFif ($ip eq '::1') { }
0TFelsif (not is_ipv6($ip)) { }
96450TFif (is_private_ip($ip))
96850TFif (is_loopback_ip($ip))
97350TFif ($self->{'_cache'})
9750TFif (defined $self->{'_country'})
9760TFif (not $self->{'_country'} =~ /\D/) { }
98850TFif ($self->{'_have_ipcountry'} == -1)
98950TFif (eval {         do {         require IP::Country } }) { }
99950TFif ($self->{'_have_ipcountry'})
10010TFif ($self->{'_country'}) { }
0TFelsif (is_ipv4($ip)) { }
100850TFunless (defined $self->{'_country'})
100950TFif ($self->{'_have_geoip'} == -1)
101250TFif ($self->{'_have_geoip'} == 1)
101850TFif (not defined $self->{'_country'} and $ip ne "45.128.139.41")
10190TFif ($self->{'_have_geoipfree'} == -1)
10230TFif ($@) { }
10310TFif ($self->{'_have_geoipfree'} == 1)
10320TFif (my $country = ($self->{'_geoipfree'}->LookUp($ip))[0])
103850TFif ($self->{'_country'} and $self->{'_country'} eq "eu")
104150TFif (not $self->{'_country'} and eval {         do {         require LWP::Simple::WithCache; require JSON::Parse } })
10480TFif (my $data = LWP::Simple::WithCache::get("http://www.geoplugin.net/json.gp?ip=$ip"))
105250TFunless ($self->{'_country'})
106750TFunless ($@ or not defined $whois or ref $whois ne "HASH")
106850TFif (defined $whois->{'Country'}) { }
50TFelsif (defined $whois->{'country'}) { }
107350TFif ($self->{'_country'})
107450TFif ($self->{'_country'} eq 'EU') { }
50TFelsif ($self->{'_country'} eq 'US' and defined $whois->{'StateProv'} and $whois->{'StateProv'} eq 'PR') { }
108350TFif ($self->{'_country'}) { }
10950TFunless ($@)
110150TFif ($self->{'_country'})
110450TFif ($self->{'_country'} =~ /^(..)\s*#/)
111250TFif ($self->{'_country'})
111350TFif (not $self->{'_country'} =~ /\D/) { }
111850TFif ($self->{'_country'} eq 'hk') { }
50TFelsif ($self->{'_country'} eq 'eu') { }
11270TFif (subnet_matcher('185.10.104.0/22')->($ip)) { }
113850TFif (not $self->{'_country'} =~ /\D/) { }
50TFelsif ($self->{'_cache'}) { }
115750TFif ($^O eq 'MSWin32' and -r 'c:/GeoIP/GeoIP.dat' or (-r '/usr/local/share/GeoIP/GeoIP.dat' or -r '/usr/share/GeoIP/GeoIP.dat')) { }
11620TFif ($@) { }
11670TFif (-r '/usr/share/GeoIP/GeoIP.dat') { }
119950TFif ($self->{'_locale'})
120750TFif (defined $agent and $agent =~ /\((.+)\)/)
121350TFif ($candidate =~ /^[a-zA-Z]{2}-([a-zA-Z]{2})$/)
12150TFif (my $c = $self->_code2country($1))
122350TFif (eval {         do {         require HTTP::BrowserDetect } })
122750TFif ($browser and $browser->country and my $c = $self->_code2country($browser->country))
12370TFif ($country)
12450TFunless ($@)
12460TFif ($c)
12540TFif (defined $ENV{'GEOIP_COUNTRY_CODE'})
12570TFif ($c)
12790TFif ($self->{'_timezone'})
12840TFif (my $ip = $ENV{'REMOTE_ADDR'}) { }
12850TFif ($self->{'_have_geoip'} == -1)
12880TFif ($self->{'_have_geoip'} == 1)
12930TFunless ($self->{'_timezone'})
12940TFif (eval {         do {         require LWP::Simple::WithCache; require JSON::Parse } }) { }
0TFelsif (eval {         do {         require LWP::Simple; require JSON::Parse } }) { }
13000TFif (my $data = LWP::Simple::WithCache::get("http://ip-api.com/json/$ip"))
13090TFif (my $data = LWP::Simple::get("http://ip-api.com/json/$ip"))
13130TFif (my $logger = $self->{'logger'})
13210TFif (open my $fin, '<', '/etc/timezone') { }
13300TFunless (defined $self->{'_timezone'})
134150TFunless $code
1342100TFif (defined $self->{'_country'}) { }
1347100TFunless ($self->{'_cache'})
1350100TFif (my $from_cache = $self->{'_cache'}->get('CGI::Lingua' . ":code2language:$code"))
136350TFunless $code
1364100TFif ($self->{'_country'}) { }
137050TFif (not $_[0] =~ /No result found in country table/)
138550TFunless $code
1387100TFunless ($self->{'_cache'})
138950TFif (defined $country)
1394100TFif (my $from_cache = $self->{'_cache'}->get('CGI::Lingua' . ":code2countryname:$code"))
139850TFif (my $country = $self->_code2country($code))
141150TFif (ref $self and scalar @messages)
141750TFif (my $logger = $self->{'logger'})
14470TFif (defined $self->{'logger'}) { }