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"})
209100TFif ($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))
2400TFif ($$rc{'_what_language'} || $$rc{'_rlanguage'} and $info and $info->lang)
266100TFref $$params{'supported'} ? :
27250TFif (defined $^V and $^V ge "v5.14.0")
27350TFif ${^GLOBAL_PHASE} eq "DESTRUCT"
275100TFunless ($ENV{"REMOTE_ADDR"})
27950TFunless ref $self
282100TFunless $cache
28550TFif (my $l = $self->_what_language)
28950TFif $cache->get($key)
344100TFunless ($$self{"_slanguage"})
389100TFunless ($$self{"_slanguage"})
410100TFunless ($$self{"_slanguage"})
43950TFunless ($$self{"_slanguage"})
459100TFunless ($$self{"_rlanguage"})
48250TFif (defined $http_accept_language)
48550TFif ($http_accept_language eq "en-uk")
4910TFif (not $_[0] =~ /^Use of uninitialized value/)
498100TFif ($l and $http_accept_language =~ /-/ and not $http_accept_language =~ qr/$l/i)
507100TFunless ($l)
518100TFif ($i18n->accepts($1, $$self{"_supported"}))
525100TFunless ($l)
529100TFif $possible =~ /..\-../
532100TFif ($i18n->accepts($possible, $$self{"_supported"}))
541100TFif ($l) { }
100TFelsif ($http_accept_language =~ /;/) { }
544100TFif (not $l =~ /^..-..$/) { }
50TFelsif ($l =~ /(.+)-(..)$/) { }
54650TFif ($$self{"_slanguage"})
557100TFif ($http_accept_language =~ /..-(..)$/) { }
50TFelsif ($http_accept_language =~ /..-([a-z]{2,3})$/i) { }
560100TFunless defined $requested_sublanguage
5650TFif ($@)
569100TFif ($sl) { }
100TFelsif ($requested_sublanguage) { }
57550TFif (my $c = $self->_code2countryname($requested_sublanguage)) { }
58950TFif ($accepts)
59250TFif ($accepts =~ /\-/) { }
5960TFif ($$self{"_cache"})
5990TFif ($from_cache) { }
6050TFif ($$self{"_slanguage"})
6060TFif ($variety eq "uk")
6130TFif (defined(my $c = $self->_code2countryname($variety)))
6180TFif ($$self{"_sublanguage"})
6230TFunless ($from_cache)
63450TFif ($accepts)
64050TFif ($variety =~ /[a-z]{2,3}/ and not defined $$self{"_sublanguage"})
64450TFif ($variety eq "uk")
653100TFif ($$self{"_cache"})
656100TFif (defined $from_cache) { }
67050TFif (defined $results[0]) { }
67850TFif ($@ or not defined $language_name) { }
6790TFif $@
688100TFif ($$self{"_cache"} and not defined $from_cache)
69450TFif (defined $$self{"_sublanguage"})
70650TFif ($$self{"_slanguage"} and $$self{"_slanguage"} ne "Unknown")
7070TFif ($$self{"_rlanguage"} eq "Unknown")
7100TFif ($$self{"_rlanguage"})
7110TFif ($l = $self->_code2language($$self{"_rlanguage"}))
722100TFif (!$$self{'_rlanguage'} || $$self{'_rlanguage'} eq 'Unknown' and length $http_accept_language == 2 || $http_accept_language =~ /^..-..$/)
72650TFunless ($$self{"_rlanguage"})
73350TFif ($$self{"_dont_use_ip"})
742100TFif (not defined $country and my $c = $self->_what_language)
74350TFif ($c =~ /^(..)_(..)/) { }
100TFelsif ($c =~ /^(..)$/) { }
750100TFif (defined $country)
75550TFif ($$self{"_cache"})
76050TFif ($from_cache) { }
76550TFif ($l)
7670TFif (defined $l)
7700TFif ($language_name)
77750TFif ($language_name)
7780TFif (not defined $$self{"_rlanguage"} or $$self{"_rlanguage"} eq "Unknown")
7810TFunless (exists $self->{'_slanguage'} and $$self{"_slanguage"} ne "Unknown")
7860TFif ($language_name and $language_code2 and not defined $http_accept_language) { }
7940TFunless ($code)
7950TFif ($http_accept_language and $http_accept_language ne $$self{"_rlanguage"})
8000TFunless ($code)
8030TFif ($$self{"_rlanguage"} =~ /(.+)\s\(.+/)
8040TFif (not defined $http_accept_language or $1 ne $$self{"_rlanguage"})
8100TFunless ($code)
8180TFif ($code)
8200TFif ($$self{'_slanguage'}) { }
8290TFif (not defined $$self{'_slanguage_code_alpha2'}) { }
0TFelsif (not defined $from_cache and $$self{'_cache'} and defined $$self{'_slanguage_code_alpha2'}) { }
867100TF/^(.+)-/ ? :
86950TFif (exists $base_languages{$language_string})
879100TFif (ref $self)
881100TFif ($$self{"_what_language"})
88550TFif (my $info = $$self{"_info"})
8860TFif (my $rc = $info->lang)
894100TFif (my $rc = $ENV{"HTTP_ACCEPT_LANGUAGE"})
895100TFif (ref $self)
90150TFif (defined $ENV{"LANG"})
9040TFif (ref $self)
93050TFif ($$self{"_country"})
93650TFif (defined $ENV{"GEOIP_COUNTRY_CODE"})
940100TFif ($ENV{"HTTP_CF_IPCOUNTRY"} and $ENV{"HTTP_CF_IPCOUNTRY"} ne "XX")
948100TFunless defined $ip
95350TFunless (is_ipv4($ip))
9550TFif ($ip eq '::1') { }
0TFelsif (not is_ipv6($ip)) { }
96550TFif (is_private_ip($ip))
96950TFif (is_loopback_ip($ip))
97450TFif ($$self{"_cache"})
9760TFif (defined $$self{"_country"})
9770TFif (not $$self{'_country'} =~ /\D/) { }
98950TFif ($$self{"_have_ipcountry"} == -1)
99050TFif (eval {         do {         require IP::Country } }) { }
100050TFif ($$self{"_have_ipcountry"})
10020TFif ($$self{'_country'}) { }
0TFelsif (is_ipv4($ip)) { }
100950TFunless (defined $$self{"_country"})
101050TFif ($$self{"_have_geoip"} == -1)
101350TFif ($$self{"_have_geoip"} == 1)
101950TFif (not defined $$self{"_country"} and $ip ne "45.128.139.41")
10200TFif ($$self{"_have_geoipfree"} == -1)
10240TFif ($@) { }
10320TFif ($$self{"_have_geoipfree"} == 1)
10330TFif (my $country = ($$self{"_geoipfree"}->LookUp($ip))[0])
103950TFif ($$self{"_country"} and $$self{"_country"} eq "eu")
104250TFif (not $$self{"_country"} and eval {         do {         require LWP::Simple::WithCache; require JSON::Parse } })
10490TFif (my $data = LWP::Simple::WithCache::get("http://www.geoplugin.net/json.gp?ip=$ip"))
105350TFunless ($$self{"_country"})
106850TFunless ($@ or not defined $whois or ref $whois ne "HASH")
106950TFif (defined $$whois{'Country'}) { }
50TFelsif (defined $$whois{'country'}) { }
107450TFif ($$self{"_country"})
107550TFif ($$self{'_country'} eq 'EU') { }
50TFelsif ($$self{'_country'} eq 'US' and defined $$whois{'StateProv'} and $$whois{'StateProv'} eq 'PR') { }
108450TFif ($$self{'_country'}) { }
10960TFunless ($@)
110250TFif ($$self{"_country"})
110550TFif ($$self{"_country"} =~ /^(..)\s*#/)
111350TFif ($$self{"_country"})
111450TFif (not $$self{'_country'} =~ /\D/) { }
111950TFif ($$self{'_country'} eq 'hk') { }
50TFelsif ($$self{'_country'} eq 'eu') { }
11280TFif (subnet_matcher('185.10.104.0/22')->($ip)) { }
113950TFif (not $$self{'_country'} =~ /\D/) { }
50TFelsif ($$self{'_cache'}) { }
115850TFif ($^O eq 'MSWin32' and -r 'c:/GeoIP/GeoIP.dat' or (-r '/usr/local/share/GeoIP/GeoIP.dat' or -r '/usr/share/GeoIP/GeoIP.dat')) { }
11630TFif ($@) { }
11680TFif (-r '/usr/share/GeoIP/GeoIP.dat') { }
120050TFif ($$self{"_locale"})
120850TFif (defined $agent and $agent =~ /\((.+)\)/)
121450TFif ($candidate =~ /^[a-zA-Z]{2}-([a-zA-Z]{2})$/)
12160TFif (my $c = $self->_code2country($1))
122450TFif (eval {         do {         require HTTP::BrowserDetect } })
122850TFif ($browser and $browser->country and my $c = $self->_code2country($browser->country))
12380TFif ($country)
12460TFunless ($@)
12470TFif ($c)
12550TFif (defined $ENV{"GEOIP_COUNTRY_CODE"})
12580TFif ($c)
12800TFif ($$self{"_timezone"})
12850TFif (my $ip = $ENV{'REMOTE_ADDR'}) { }
12860TFif ($$self{"_have_geoip"} == -1)
12890TFif ($$self{"_have_geoip"} == 1)
12940TFunless ($$self{"_timezone"})
12950TFif (eval {         do {         require LWP::Simple::WithCache; require JSON::Parse } }) { }
0TFelsif (eval {         do {         require LWP::Simple; require JSON::Parse } }) { }
13010TFif (my $data = LWP::Simple::WithCache::get("http://ip-api.com/json/$ip"))
13100TFif (my $data = LWP::Simple::get("http://ip-api.com/json/$ip"))
13140TFif (my $logger = $$self{"logger"})
13220TFif (open my $fin, '<', '/etc/timezone') { }
13310TFunless (defined $$self{"_timezone"})
134250TFunless $code
1343100TFif (defined $$self{'_country'}) { }
1348100TFunless ($$self{"_cache"})
1351100TFif (my $from_cache = $$self{"_cache"}->get('CGI::Lingua' . ":code2language:$code"))
136450TFunless $code
1365100TFif ($$self{'_country'}) { }
137150TFif (not $_[0] =~ /No result found in country table/)
138650TFunless $code
1388100TFunless ($$self{"_cache"})
139050TFif (defined $country)
1395100TFif (my $from_cache = $$self{"_cache"}->get('CGI::Lingua' . ":code2countryname:$code"))
139950TFif (my $country = $self->_code2country($code))
141250TFif (ref $self and scalar @messages)
141850TFif (my $logger = $$self{"logger"})
14480TFif (defined $$self{'logger'}) { }