Condition Coverage

blib/lib/HTTP/BrowserDetect.pm
Criterion Covered Total %
condition 328 411 79.8


and 3 conditions

line !l l&&!r l&&r condition
656 2895 2700 732 index($ua, "gecko") != -1 and index($ua, "like gecko") == -1
2925 0 2670 $ua =~ m[applewebkit/([\d.\+]+)] and not $tests->{'edgehtml'}
706 6587 6 636 $ua =~ m[
939 480 168 index($ua, "mozilla") != -1 and index($ua, "compatible") == -1
1055 6245 1014 42 $self->android and index($ua, "; wv)") != -1
1068 0 186 78 not ref $m and 0 < index($self->{'user_agent'}, $m)
1069 186 0 0 "Regexp" eq ref $m and $self->{'user_agent'} =~ /$m/
1125 8795 24 6 index($ua, "yahoo") != -1 and index($ua, "jp.co.yahoo") == -1
8423 0 42 $ua =~ /^java/ and not $self->{'browser'}
1412 7740 516 599 exists $robot_tests->{'robot'} and $robot_tests->{'robot'} eq "unknown"
1431 720 287 36 $self->{'user_agent'} eq $full_string and $self->{'user_agent'} =~ m[\/.*\/]
1007 0 36 $self->{'user_agent'} eq $full_string and $self->{'user_agent'} =~ m[\/.*\/] and $self->{'user_agent'} =~ m[
1448 0 365 678 $full_string and $full_string =~ s[[/ \.v]*(\d+)(\.\d+)?([\.\w]*)$][]
1613 1938 36 42 $tests->{'x11'} and index($ua, "cros") != -1
90 1866 0 index($ua, "samsung") == -1 and index($ua, "sun") != -1
1799 5556 1722 18 not $os and $browser_tests->{'firefox'}
1722 0 18 not $os and $browser_tests->{'firefox'} and index($ua, "fennec") == -1
1722 6 12 not $os and $browser_tests->{'firefox'} and index($ua, "fennec") == -1 and $self->mobile || $self->tablet
1808 1728 2976 2592 $os and not $os_string
1887 1173 5811 263 defined $browser and $browser eq "opera"
5811 969 204 not defined $browser and $ua =~ m[\b compatible; \s* [\w\-]* [/\s] ( [0-9]+ ) (?: .([0-9]+) (\S*) )? ;]x
1625 1354 18 $browser eq "chrome" and $ua =~ m[crios/(\d+)\.(\d+)([\d.]*)]
2973 0 6 $browser eq "pubsub" and $ua =~ m[apple-pubsub/(\d+)\.?(\d+)?([\d.]*)]
2889 6 78 $browser eq "obigo" and $self->{'user_agent'} =~ m[(obigo[\w\-]*|teleca)[\/ ]\w(\d+)(\w*)]i
2877 0 18 $browser eq "polaris" and $ua =~ m[polaris[ \/](\d+)\.?(\d+)?([\d\.]*)]
2544 0 333 $browser eq "ucbrowser" and $ua =~ m[ucbrowser[\/ ]*(\d+)\.?(\d+)?([\d\.]*)]
2538 0 6 $browser eq "samsung" and $ua =~ m[samsungbrowser/(\d+)\.(\d+)\s]
2094 3752 975 2520 not defined $major and defined $self->{'browser_string'}
2146 2342 3607 1298 defined $beta and $beta eq ""
2157 142 18 6 $major == 4 and $minor == 5
2158 142 18 6 $major == 4 and ".$minor" >= "0.5"
2161 148 12 6 defined $beta and (index($beta, "gold") != -1)
2184 1637 48 23 $major == 5 and $minor == 5
2196 243 6 72 $version_tests->{'ie7'} && $tests->{'trident'} && defined $self->engine_version && $self->engine_version >= 4
2215 258 5 0 index($ua, "opera/4") != -1 and (index($ua, "nintendo dsi") == -1)
2250 6238 0 36 index($ua, "nokia") != -1 and index($ua, "windows phone") == -1
2434 7979 60 276 $browser_tests->{'ucbrowser'} and $self->{'user_agent'} =~ m[ucweb/2.0\s*\(([^\;\)]*\;){3,4}\s*([^\;\)]*?)\s*\)]i
7851 68 108 $browser_tests->{'obigo'} || index($ua, 'brew') != -1 and $self->{'user_agent'} =~ m[\d+x\d+ ([\d\w\- ]+?)( \S+\/\S+)*$]i
2678 119 635 1 defined $self->{'browser'} && $self->{'browser'} eq 'realplayer'
2898 268 8 1307 $self->{'engine_version'} && $self->{'engine_version'} =~ /^(\d+(\.\d+)?)/
2905 575 4 1620 $self->{'engine_version'} && $self->{'engine_version'} =~ /^(\d+)/
2912 565 18 1520 $self->{'engine_version'} && $self->{'engine_version'} =~ /^\d+(\.\d+)/
2919 292 14 1126 $self->{'engine_version'} && $self->{'engine_version'} =~ /^\d+\.\d+([\.\d\+]*)/
2968 261 0 7 $self->major == 1 and $self->{'user_agent'} =~ /\s ( [a-z]{2} ) \)/msx
2977 1636 9 1 $self->aol and $self->{'user_agent'} =~ /;([A-Z]{2})_([A-Z]{2})\)/
2982 1624 9 12 $self->meta_app and $self->{'user_agent'} =~ m[ ;FBLC/ ([a-z]{2}) (?: [_-] ([A-Z]{2}) )? ]x
2988 1629 0 4 $self->instagram and $self->{'user_agent'} =~ / (?: [(] | ;[ ] ) ([a-z]{2}) [_-] ([A-Z]{2}) [;)] /x
3007 125 0 11 $self->webview && $1 eq 'wv'
4573 11 125 $part =~ /^\s*([a-z]{2})\s*$/ and not $self->webview && $1 eq 'wv'
3075 0 0 0 $self->chrome and $self->browser_major
0 0 0 $self->chrome and $self->browser_major and $self->browser_major >= 41
3081 0 0 0 $self->opera and $self->browser_major
0 0 0 $self->opera and $self->browser_major and $self->browser_major == 40 || $self->browser_major >= 42

or 2 conditions

line l !l condition
518 6428 22911 $self->{'tests'}{$test} || 0
531 3786 46574 $self->{'os_tests'}{$test} || 0
540 3330 50197 $self->{'browser_tests'}{$test} || 0
568 1927 22426 $self->{'version_tests'}{$test} || 0
578 2253 18820 $self->{'device_tests'}{$test} || 0
752 78 0 $self->_match(['Facebook', '[FB_IAB/FB4A', '[FBAN/FBIOS'], ['Facebook Lite', '[FBAN/EMA'], ['Facebook Messenger', '[FB_IAB/Orca-Android', '[FB_IAB/MESSENGER', '[FBAN/MessengerForiOS'], ['Facebook Messenger Lite', '[FBAN/mLite', '[FBAN/MessengerLiteForiOS']) || 'Meta App'
2673 0 0 $self->{'realplayer_version'} || 0
2719 882 1 $minor ||= ""
2747 20 2 $minor ||= ""

or 3 conditions

line l !l&&r !l&&!r condition
555 138 0 31858 $self->{'robot_tests'}{$test} || $false_result
706 944 786 4521 $tests->{'trident'} or index($ua, "msie") != -1
1730 0 4521 $tests->{'trident'} or index($ua, "msie") != -1 or index($ua, "microsoft internet explorer") != -1
1368 18 2661 index($ua, "chrome/") != -1 or index($ua, "crios") != -1
24 12 2625 index($ua, "blackberry") != -1 or index($ua, "bb10") != -1
36 6 2619 index($ua, "blackberry") != -1 or index($ua, "bb10") != -1 or index($ua, "rim tablet os") != -1
906 54 1659 (index($ua, "safari") != -1) or (index($ua, "applewebkit") != -1)
6 6 1641 index($ua, "playstation 3") != -1 or index($ua, "playstation portable") != -1
12 30 1611 index($ua, "playstation 3") != -1 or index($ua, "playstation portable") != -1 or index($ua, "netfront") != -1
30 6 1221 index($ua, "libcurl") != -1 or $ua =~ /^curl/
784 36 6 1688 index($ua, "aol") != -1 or index($ua, "america online browser") != -1
868 264 12 684 index($ua, " mobile safari/") != -1 or index($ua, "mobilesafari") != -1
923 18 90 60 index($ua, "netscape") != -1 or not $tests->{'gecko'}
1009 1158 4958 6 $browser_string || $BROWSER_NAMES{$browser}
1125 18 0 8837 index($ua, "libwww-perl") != -1 or index($ua, "lwp-") != -1
6 18 8783 index($ua, "binglocalsearch") != -1 or index($ua, "bingbot") != -1
24 6 8777 index($ua, "binglocalsearch") != -1 or index($ua, "bingbot") != -1 or index($ua, "bingpreview") != -1
30 6 8693 index($ua, "libcurl") != -1 or $ua =~ /^curl/
1348 7 15 8833 $browser_tests->{'applecoremedia'} or $browser_tests->{'dalvik'}
15 8 8825 $browser_tests->{'applecoremedia'} or $browser_tests->{'dalvik'} or $browser_tests->{'adm'}
1367 516 0 0 $ROBOT_NAMES{$id} || $ROBOT_NAMES{$r}
1491 0 12 2952 index($ua, "win16") != -1 or index($ua, "windows 3") != -1
12 0 2952 index($ua, "win16") != -1 or index($ua, "windows 3") != -1 or index($ua, "windows 16-bit") != -1
12 60 2880 index($ua, "win95") != -1 or index($ua, "windows 95") != -1
24 6 2850 index($ua, "win 9x 4.90") != -1 or index($ua, "windows me") != -1
12 12 2826 index($ua, "win98") != -1 or index($ua, "windows 98") != -1
1558 90 0 3714 index($ua, "nt 5.0") != -1 or index($ua, "nt5") != -1
6 42 1176 index($ua, "winnt") != -1 or index($ua, "windows nt") != -1
48 6 1170 index($ua, "winnt") != -1 or index($ua, "windows nt") != -1 or index($ua, "nt4") != -1
48 0 1170 index($ua, "winnt") != -1 or index($ua, "windows nt") != -1 or index($ua, "nt4") != -1 or index($ua, "nt3") != -1
1613 456 6 3984 index($ua, "macintosh") != -1 or index($ua, "mac_") != -1
0 0 1956 $ua =~ /\bsco\b/ or index($ua, "unix_sv") != -1
0 0 1956 index($ua, "dec") != -1 or index($ua, "osf1") != -1
0 0 1956 index($ua, "dec") != -1 or index($ua, "osf1") != -1 or index($ua, "declpha") != -1
0 0 1956 index($ua, "dec") != -1 or index($ua, "osf1") != -1 or index($ua, "declpha") != -1 or index($ua, "alphaserver") != -1
0 0 1956 index($ua, "dec") != -1 or index($ua, "osf1") != -1 or index($ua, "declpha") != -1 or index($ua, "alphaserver") != -1 or index($ua, "ultrix") != -1
0 0 1956 index($ua, "dec") != -1 or index($ua, "osf1") != -1 or index($ua, "declpha") != -1 or index($ua, "alphaserver") != -1 or index($ua, "ultrix") != -1 or index($ua, "alphastation") != -1
0 0 1914 index($ua, "vax") != -1 or index($ua, "openvms") != -1
1630 0 0 462 index($ua, "68k") != -1 or index($ua, 68000) != -1
120 6 336 index($ua, "ppc") != -1 or index($ua, "powerpc") != -1
1799 6 6 6 $self->mobile || $self->tablet
2158 6 88 72 $major == 4 and ".$minor" >= "0.5" or $major >= 5
2163 76 6 84 $major == 5 or $major == 6
2185 29 1560 119 ".$minor" >= "0.5" or $major >= 6
2203 6 0 35 index($ua, "aol 3.0") != -1 or $version_tests->{'ie3'}
2206 0 0 41 (index($ua, "aol 4.0") != -1) or $version_tests->{'ie4'}
2213 0 6 257 index($ua, "opera 3") != -1 or index($ua, "opera/3") != -1
2215 0 0 263 (index($ua, "opera 4") != -1) or index($ua, "opera/4") != -1 and (index($ua, "nintendo dsi") == -1)
2219 0 0 263 (index($ua, "opera 5") != -1) or (index($ua, "opera/5") != -1)
2222 12 0 251 (index($ua, "opera 6") != -1) or (index($ua, "opera/6") != -1)
2225 18 12 233 (index($ua, "opera 7") != -1) or (index($ua, "opera/7") != -1)
2250 1050 6 7204 index($ua, "android") != -1 or index($ua, "silk-accelerated") != -1
24 12 7168 index($ua, "blackberry") != -1 or index($ua, "bb10") != -1
36 6 7162 index($ua, "blackberry") != -1 or index($ua, "bb10") != -1 or index($ua, "rim tablet os") != -1
84 330 6286 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'}
330 12 6274 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, "up.browser") != -1
342 36 6238 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, "up.browser") != -1 or index($ua, "nokia") != -1 and index($ua, "windows phone") == -1
36 0 6238 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, "up.browser") != -1 or index($ua, "nokia") != -1 and index($ua, "windows phone") == -1 or index($ua, "alcatel") != -1
36 96 6142 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, "up.browser") != -1 or index($ua, "nokia") != -1 and index($ua, "windows phone") == -1 or index($ua, "alcatel") != -1 or $ua =~ /\bbrew\b/
96 0 6142 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, "up.browser") != -1 or index($ua, "nokia") != -1 and index($ua, "windows phone") == -1 or index($ua, "alcatel") != -1 or $ua =~ /\bbrew\b/ or $ua =~ /\bbmp\b/
96 6 6136 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, "up.browser") != -1 or index($ua, "nokia") != -1 and index($ua, "windows phone") == -1 or index($ua, "alcatel") != -1 or $ua =~ /\bbrew\b/ or $ua =~ /\bbmp\b/ or index($ua, "ericsson") != -1
6 0 6136 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, "up.browser") != -1 or index($ua, "nokia") != -1 and index($ua, "windows phone") == -1 or index($ua, "alcatel") != -1 or $ua =~ /\bbrew\b/ or $ua =~ /\bbmp\b/ or index($ua, "ericsson") != -1 or index($ua, "sie-") == 0
6 0 6136 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, "up.browser") != -1 or index($ua, "nokia") != -1 and index($ua, "windows phone") == -1 or index($ua, "alcatel") != -1 or $ua =~ /\bbrew\b/ or $ua =~ /\bbmp\b/ or index($ua, "ericsson") != -1 or index($ua, "sie-") == 0 or index($ua, "wmlib") != -1
0 6 6130 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, "up.browser") != -1 or index($ua, "nokia") != -1 and index($ua, "windows phone") == -1 or index($ua, "alcatel") != -1 or $ua =~ /\bbrew\b/ or $ua =~ /\bbmp\b/ or index($ua, "ericsson") != -1 or index($ua, "sie-") == 0 or index($ua, "wmlib") != -1 or index($ua, " wap") != -1
6 0 6130 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, "up.browser") != -1 or index($ua, "nokia") != -1 and index($ua, "windows phone") == -1 or index($ua, "alcatel") != -1 or $ua =~ /\bbrew\b/ or $ua =~ /\bbmp\b/ or index($ua, "ericsson") != -1 or index($ua, "sie-") == 0 or index($ua, "wmlib") != -1 or index($ua, " wap") != -1 or index($ua, "wap ") != -1
6 6 6124 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, "up.browser") != -1 or index($ua, "nokia") != -1 and index($ua, "windows phone") == -1 or index($ua, "alcatel") != -1 or $ua =~ /\bbrew\b/ or $ua =~ /\bbmp\b/ or index($ua, "ericsson") != -1 or index($ua, "sie-") == 0 or index($ua, "wmlib") != -1 or index($ua, " wap") != -1 or index($ua, "wap ") != -1 or index($ua, "wap/") != -1
6 0 6124 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, "up.browser") != -1 or index($ua, "nokia") != -1 and index($ua, "windows phone") == -1 or index($ua, "alcatel") != -1 or $ua =~ /\bbrew\b/ or $ua =~ /\bbmp\b/ or index($ua, "ericsson") != -1 or index($ua, "sie-") == 0 or index($ua, "wmlib") != -1 or index($ua, " wap") != -1 or index($ua, "wap ") != -1 or index($ua, "wap/") != -1 or index($ua, "-wap") != -1
6 0 6124 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, "up.browser") != -1 or index($ua, "nokia") != -1 and index($ua, "windows phone") == -1 or index($ua, "alcatel") != -1 or $ua =~ /\bbrew\b/ or $ua =~ /\bbmp\b/ or index($ua, "ericsson") != -1 or index($ua, "sie-") == 0 or index($ua, "wmlib") != -1 or index($ua, " wap") != -1 or index($ua, "wap ") != -1 or index($ua, "wap/") != -1 or index($ua, "-wap") != -1 or index($ua, "wap-") != -1
0 6 6118 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, "up.browser") != -1 or index($ua, "nokia") != -1 and index($ua, "windows phone") == -1 or index($ua, "alcatel") != -1 or $ua =~ /\bbrew\b/ or $ua =~ /\bbmp\b/ or index($ua, "ericsson") != -1 or index($ua, "sie-") == 0 or index($ua, "wmlib") != -1 or index($ua, " wap") != -1 or index($ua, "wap ") != -1 or index($ua, "wap/") != -1 or index($ua, "-wap") != -1 or index($ua, "wap-") != -1 or index($ua, "wap") == 0
6 0 6118 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, "up.browser") != -1 or index($ua, "nokia") != -1 and index($ua, "windows phone") == -1 or index($ua, "alcatel") != -1 or $ua =~ /\bbrew\b/ or $ua =~ /\bbmp\b/ or index($ua, "ericsson") != -1 or index($ua, "sie-") == 0 or index($ua, "wmlib") != -1 or index($ua, " wap") != -1 or index($ua, "wap ") != -1 or index($ua, "wap/") != -1 or index($ua, "-wap") != -1 or index($ua, "wap-") != -1 or index($ua, "wap") == 0 or index($ua, "wapper") != -1
6 0 6118 $browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, "up.browser") != -1 or index($ua, "nokia") != -1 and index($ua, "windows phone") == -1 or index($ua, "alcatel") != -1 or $ua =~ /\bbrew\b/ or $ua =~ /\bbmp\b/ or index($ua, "ericsson") != -1 or index($ua, "sie-") == 0 or index($ua, "wmlib") != -1 or index($ua, " wap") != -1 or index($ua, "wap ") != -1 or index($ua, "wap/") != -1 or index($ua, "-wap") != -1 or index($ua, "wap-") != -1 or index($ua, "wap") == 0 or index($ua, "wapper") != -1 or index($ua, "zetor") != -1
2356 6 0 7977 index($ua, 'ipad') != -1 || $browser_tests->{'ie'} && index($ua, 'windows phone') == -1 && index($ua, 'arm') != -1 || index($ua, 'android') != -1 && index($ua, 'mobile') == -1 && index($ua, 'safari') != -1 || $browser_tests->{'firefox'} && index($ua, 'tablet') != -1 || index($ua, 'an10bg3') != -1 || index($ua, 'an10bg3dt') != -1 || index($ua, 'an10g2') != -1 || index($ua, 'an7bg3') != -1 || index($ua, 'an7dg3') != -1 || index($ua, 'an7dg3childpad') != -1 || index($ua, 'an7dg3st') != -1 || index($ua, 'an7fg3') != -1 || index($ua, 'an7g3') != -1 || index($ua, 'an8cg3') != -1 || index($ua, 'an8g3') != -1 || index($ua, 'an9g3') != -1 || index($ua, 'flyer') != -1 || index($ua, 'hp-tablet') != -1 || index($ua, 'jetstream') != -1 || index($ua, 'kindle') != -1 || index($ua, 'novo7') != -1 || index($ua, 'opera tablet') != -1 || index($ua, 'rim tablet') != -1 || index($ua, 'transformer') != -1 || index($ua, 'xoom') != -1
2430 6 6 6007 $browser_tests->{'firefox'} && index($ua, 'mobile') != -1 || $browser_tests->{'ie'} && index($ua, 'windows phone') == -1 && index($ua, 'arm') != -1 || index($ua, 'windows phone') != -1 || index($ua, 'up.browser') != -1 || index($ua, 'nokia') != -1 || index($ua, 'alcatel') != -1 || index($ua, 'ericsson') != -1 || index($ua, 'sie-') == 0 || index($ua, 'wmlib') != -1 || index($ua, ' wap') != -1 || index($ua, 'wap ') != -1 || index($ua, 'wap/') != -1 || index($ua, '-wap') != -1 || index($ua, 'wap-') != -1 || index($ua, 'wap') == 0 || index($ua, 'wapper') != -1 || index($ua, 'blackberry') != -1 || index($ua, 'mobile') != -1 || index($ua, 'palm') != -1 || index($ua, 'smartphone') != -1 || index($ua, 'windows ce') != -1 || index($ua, 'palmsource') != -1 || index($ua, 'iphone') != -1 || index($ua, 'ipod') != -1 || index($ua, 'ipad') != -1 || index($ua, 'opera mini') != -1 && index($ua, 'tablet') == -1 || index($ua, 'htc_') != -1 || index($ua, 'symbian') != -1 || index($ua, 'webos') != -1 || index($ua, 'samsung') != -1 || index($ua, 'zetor') != -1 || index($ua, 'android') != -1 || index($ua, 'symbos') != -1 || index($ua, 'opera mobi') != -1 || index($ua, 'fennec') != -1 || $ua =~ /\bbrew\b/ || index($ua, 'obigo') != -1 || index($ua, 'teleca') != -1 || index($ua, 'polaris') != -1 || index($ua, 'opera tablet') != -1 || index($ua, 'rim tablet') != -1 || index($ua, 'bb10') != -1 && index($ua, 'mobile') != -1 || $device_tests->{'psp'} || $device_tests->{'dsi'} || $device_tests->{'n3ds'}
2434 72 104 7851 $browser_tests->{'obigo'} || index($ua, 'brew') != -1
2490 48 6 924 $model =~ /^KF/ or $model =~ /kindle fire/i
2834 430 3448 5053 @a == 0 or $a[0] < $b[0]
2835 0 3696 1357 @b == 0 or $b[0] < $a[0]
3081 0 0 0 $self->browser_major == 40 || $self->browser_major >= 42