Branch Coverage

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

line%coveragebranch
164100TFif (not defined $class) { }
100TFelsif (ref $class) { }
16550TFif ($params)
16750TFif (my $logger = $$params{"logger"})
17750TFif defined $$params{"supported"}
18450TFif (defined $$params{"logger"})
18550TFunless (&Scalar::Util::blessed($$params{"logger"}) and $$params{"logger"}->can("warn") and $$params{"logger"}->can("info") and $$params{"logger"}->can("error"))
195100TFunless ($$params{"supported"})
19650TFif (my $logger = $$params{"logger"})
205100TFif ($cache and $ENV{"REMOTE_ADDR"})
20850TFif ($info and $l = $info->lang) { }
50TFelsif ($l = $class->_what_language) { }
21750TFif (my $rc = $cache->get($key))
2310TFif ($$rc{'_what_language'} || $$rc{'_rlanguage'} and $info and $info->lang)
26350TFif (defined $^V and $^V ge "v5.14.0")
26450TFif ${^GLOBAL_PHASE} eq "DESTRUCT"
266100TFunless ($ENV{"REMOTE_ADDR"})
27050TFunless ref $self
273100TFunless $cache
27650TFif (my $l = $self->_what_language)
28050TFif $cache->get($key)
335100TFunless ($$self{"_slanguage"})
380100TFunless ($$self{"_slanguage"})
401100TFunless ($$self{"_slanguage"})
430100TFunless ($$self{"_slanguage"})
450100TFunless ($$self{"_rlanguage"})
47350TFif (defined $http_accept_language)
47650TFif ($http_accept_language eq "en-uk")
4820TFif (not $_[0] =~ /^Use of uninitialized value/)
489100TFif ($l and $http_accept_language =~ /-/ and not $http_accept_language =~ qr/$l/i)
498100TFunless ($l)
509100TFif ($i18n->accepts($1, $$self{"_supported"}))
516100TFunless ($l)
520100TFif $possible =~ /..\-../
523100TFif ($i18n->accepts($possible, $$self{"_supported"}))
532100TFif ($l) { }
100TFelsif ($http_accept_language =~ /;/) { }
535100TFif (not $l =~ /^..-..$/) { }
50TFelsif ($l =~ /(.+)-(..)$/) { }
53750TFif ($$self{"_slanguage"})
548100TFif ($http_accept_language =~ /..-(..)$/) { }
50TFelsif ($http_accept_language =~ /..-([a-z]{2,3})$/i) { }
551100TFunless defined $requested_sublanguage
555100TFif ($sl) { }
100TFelsif ($requested_sublanguage) { }
56150TFif (my $c = $self->_code2countryname($requested_sublanguage)) { }
57550TFif ($accepts)
57850TFif ($accepts =~ /\-/) { }
5820TFif ($$self{"_cache"})
5850TFif ($from_cache) { }
5910TFif ($$self{"_slanguage"})
5920TFif ($variety eq "uk")
5990TFif (defined(my $c = $self->_code2countryname($variety)))
6040TFif ($$self{"_sublanguage"})
6090TFunless ($from_cache)
62050TFif ($accepts)
62650TFif ($variety =~ /[a-z]{2,3}/ and not defined $$self{"_sublanguage"})
63050TFif ($variety eq "uk")
639100TFif ($$self{"_cache"})
642100TFif (defined $from_cache) { }
65650TFif (defined $results[0]) { }
66450TFif ($@ or not defined $language_name) { }
6650TFif $@
674100TFif ($$self{"_cache"} and not defined $from_cache)
68050TFif (defined $$self{"_sublanguage"})
69250TFif ($$self{"_slanguage"} and $$self{"_slanguage"} ne "Unknown")
6930TFif ($$self{"_rlanguage"} eq "Unknown")
6960TFif ($$self{"_rlanguage"})
6970TFif ($l = $self->_code2language($$self{"_rlanguage"}))
708100TFif (!$$self{'_rlanguage'} || $$self{'_rlanguage'} eq 'Unknown' and length $http_accept_language == 2 || $http_accept_language =~ /^..-..$/)
71250TFunless ($$self{"_rlanguage"})
71950TFif ($$self{"_dont_use_ip"})
728100TFif (not defined $country and my $c = $self->_what_language)
72950TFif ($c =~ /^(..)_(..)/) { }
100TFelsif ($c =~ /^(..)$/) { }
736100TFif (defined $country)
74150TFif ($$self{"_cache"})
74650TFif ($from_cache) { }
75150TFif ($l)
7530TFif (defined $l)
7560TFif ($language_name)
76350TFif ($language_name)
7640TFif (not defined $$self{"_rlanguage"} or $$self{"_rlanguage"} eq "Unknown")
7670TFunless (exists $self->{'_slanguage'} and $$self{"_slanguage"} ne "Unknown")
7720TFif ($language_name and $language_code2 and not defined $http_accept_language) { }
7800TFunless ($code)
7810TFif ($http_accept_language and $http_accept_language ne $$self{"_rlanguage"})
7860TFunless ($code)
7890TFif ($$self{"_rlanguage"} =~ /(.+)\s\(.+/)
7900TFif (not defined $http_accept_language or $1 ne $$self{"_rlanguage"})
7960TFunless ($code)
8040TFif ($code)
8060TFif ($$self{'_slanguage'}) { }
8150TFif (not defined $$self{'_slanguage_code_alpha2'}) { }
0TFelsif (not defined $from_cache and $$self{'_cache'} and defined $$self{'_slanguage_code_alpha2'}) { }
853100TF/^(.+)-/ ? :
85550TFif (exists $base_languages{$language_string})
865100TFif (ref $self)
867100TFif ($$self{"_what_language"})
87150TFif (my $info = $$self{"_info"})
8720TFif (my $rc = $info->lang)
880100TFif (my $rc = $ENV{"HTTP_ACCEPT_LANGUAGE"})
881100TFif (ref $self)
88750TFif (defined $ENV{"LANG"})
8900TFif (ref $self)
91650TFif ($$self{"_country"})
92250TFif (defined $ENV{"GEOIP_COUNTRY_CODE"})
926100TFif ($ENV{"HTTP_CF_IPCOUNTRY"} and $ENV{"HTTP_CF_IPCOUNTRY"} ne "XX")
934100TFunless defined $ip
939100TFunless (is_ipv4($ip))
94150TFif ($ip eq '::1') { }
0TFelsif (not is_ipv6($ip)) { }
951100TFif (is_private_ip($ip))
955100TFif (is_loopback_ip($ip))
96050TFif ($$self{"_cache"})
9620TFif (defined $$self{"_country"})
9630TFif (not $$self{'_country'} =~ /\D/) { }
97550TFif ($$self{"_have_ipcountry"} == -1)
97650TFif (eval {         do {         require IP::Country } }) { }
98650TFif ($$self{"_have_ipcountry"})
9880TFif ($$self{'_country'}) { }
0TFelsif (is_ipv4($ip)) { }
99550TFunless (defined $$self{"_country"})
99650TFif ($$self{"_have_geoip"} == -1)
99950TFif ($$self{"_have_geoip"} == 1)
100250TFunless (defined $$self{"_country"})
100350TFif ($$self{"_have_geoipfree"} == -1)
100750TFif ($@) { }
101550TFif ($$self{"_have_geoipfree"} == 1)
10160TFif (my $country = ($$self{"_geoipfree"}->LookUp($ip))[0])
102250TFif ($$self{"_country"} and $$self{"_country"} eq "eu")
102550TFif (not $$self{"_country"} and eval {         do {         require LWP::Simple::WithCache; require JSON::Parse } })
10320TFif (my $data = LWP::Simple::WithCache::get("http://www.geoplugin.net/json.gp?ip=$ip"))
103650TFunless ($$self{"_country"})
105150TFunless ($@ or not defined $whois or ref $whois ne "HASH")
105250TFif (defined $$whois{'Country'}) { }
0TFelsif (defined $$whois{'country'}) { }
105750TFif ($$self{"_country"})
105850TFif ($$self{'_country'} eq 'EU') { }
50TFelsif ($$self{'_country'} eq 'US' and defined $$whois{'StateProv'} and $$whois{'StateProv'} eq 'PR') { }
106750TFif ($$self{'_country'}) { }
10790TFunless ($@)
108550TFif ($$self{"_country"})
108850TFif ($$self{"_country"} =~ /^(..)\s*#/)
109650TFif ($$self{"_country"})
109750TFif (not $$self{'_country'} =~ /\D/) { }
110250TFif ($$self{'_country'} eq 'hk') { }
50TFelsif ($$self{'_country'} eq 'eu') { }
11110TFif (subnet_matcher('185.10.104.0/22')->($ip)) { }
112250TFif (not $$self{'_country'} =~ /\D/) { }
50TFelsif ($$self{'_cache'}) { }
114150TFif ($^O eq 'MSWin32' and -r 'c:/GeoIP/GeoIP.dat' or (-r '/usr/local/share/GeoIP/GeoIP.dat' or -r '/usr/share/GeoIP/GeoIP.dat')) { }
11460TFif ($@) { }
11510TFif (-r '/usr/share/GeoIP/GeoIP.dat') { }
118350TFif ($$self{"_locale"})
119150TFif (defined $agent and $agent =~ /\((.+)\)/)
119750TFif ($candidate =~ /^[a-zA-Z]{2}-([a-zA-Z]{2})$/)
11990TFif (my $c = $self->_code2country($1))
120750TFif (eval {         do {         require HTTP::BrowserDetect } })
1211100TFif ($browser and $browser->country and my $c = $self->_code2country($browser->country))
122150TFif ($country)
122950TFunless ($@)
123050TFif ($c)
12380TFif (defined $ENV{"GEOIP_COUNTRY_CODE"})
12410TFif ($c)
126350TFif ($$self{"_timezone"})
126850TFif (my $ip = $ENV{'REMOTE_ADDR'}) { }
126950TFif ($$self{"_have_geoip"} == -1)
127250TFif ($$self{"_have_geoip"} == 1)
127750TFunless ($$self{"_timezone"})
127850TFif (eval {         do {         require LWP::Simple::WithCache; require JSON::Parse } }) { }
50TFelsif (eval {         do {         require LWP::Simple; require JSON::Parse } }) { }
12840TFif (my $data = LWP::Simple::WithCache::get("http://ip-api.com/json/$ip"))
129350TFif (my $data = LWP::Simple::get("http://ip-api.com/json/$ip"))
12970TFif (my $logger = $$self{"logger"})
13050TFif (open my $fin, '<', '/etc/timezone') { }
131450TFunless (defined $$self{"_timezone"})
132550TFunless $code
1326100TFif (defined $$self{'_country'}) { }
1331100TFunless ($$self{"_cache"})
1334100TFif (my $from_cache = $$self{"_cache"}->get('CGI::Lingua' . ":code2language:$code"))
134750TFunless $code
1348100TFif ($$self{'_country'}) { }
135450TFif (not $_[0] =~ /No result found in country table/)
136950TFunless $code
1371100TFunless ($$self{"_cache"})
137350TFif (defined $country)
1378100TFif (my $from_cache = $$self{"_cache"}->get('CGI::Lingua' . ":code2countryname:$code"))
138250TFif (my $country = $self->_code2country($code))
139550TFif (scalar @messages)
140150TFif (my $logger = $$self{"logger"})
143150TFif (defined $$self{'logger'}) { }