Branch Coverage

blib/lib/HTML/ParseBrowser.pm
Criterion Covered Total %
branch 97 116 83.6


line true false branch
44 1 46 unless $useragent
45 0 46 if $useragent eq '-'
55 28 45 if defined $browser->{'detail'}
59 45 1 if (defined $browser->{'detail'})
65 7 39 if ($ua_string =~ /(iPhone|iPad|iPod).*?OS\s+(\d+_\d(_\d)?)/) { }
2 37 elsif ($ua_string =~ m[\((BlackBerry|BB10).*Version/([0-9\.]+)]) { }
1 36 elsif ($ua_string =~ m[Mozilla/5.0 \(.*?Windows.*?; rv:((\d+)\.(\d+))\) like Gecko]) { }
1 35 elsif ($useragent =~ m[OPR/((\d+)\.(\d+)\.\d+\.\d+)]) { }
4 31 elsif ($useragent =~ m[\bVersion/((\d+)\.(\d+)\S*) Safari/]) { }
2 29 elsif ($useragent =~ m[Opera/.*Version/((\d+)\.(\d+)\S*)$]) { }
69 7 0 if ($useragent =~ m[(Version|CriOS)/((\d+)(\.(\d+)[\.0-9]*)?)])
70 1 6 if ($1 eq 'CriOS')
75 7 0 if defined $5 and $5 ne ''
82 2 0 if ($version_string =~ /^([0-9]+)(\.([0-9]+).*)?/)
85 2 0 if defined $3 and $3 ne ''
112 0 71 if $br eq 'CriOS'
113 66 5 if ($br ne 'Safari' or not $seenchrome)
116 58 8 if ($ver =~ /^v?(\d+)\.(\d+)/)
120 5 66 if lc $br eq 'chrome'
121 1 70 if lc $br eq 'iron'
122 1 69 if lc $br eq 'lynx'
124 3 66 if lc $br eq 'opera'
129 9 195 if /compatible/i
131 176 19 unless (defined $browser->{'name'} and lc $browser->{'name'} eq 'webtv' || lc $browser->{'name'} eq 'opera')
132 6 170 if (/^MSIE (.*)$/)
140 0 195 if (m[^Edge/(([0-9]+)\.([0-9]+))])
147 1 194 if (/^AOL ([0-9].*)/)
153 1 194 if (m[^Konqueror/([-0-9.a-z]+)])
159 0 0 if m[\bCamino/([0-9.]+)] and do { $browser->{'name'} = 'Camino'; $browser->{'version'}{'v'} = $1; ($browser->{'version'}{'major'}, $browser->{'version'}{'minor'}) = split(/\./, $browser->{'version'}{'v'}, 2) }
165 1 194 if (m[^Opera Mini/([0-9.]+)])
171 24 171 if (/^Win/)
173 1 23 /phone/i ? :
174 18 6 if (/Windows NT\s*((\d+)(\.\d+)?)/ or /^WinNT((\d+)(\.\d+)?)/) { }
1 5 elsif (/Windows (?:Phone )?(\d+(\.\d+)?)/) { }
5 0 elsif (/Win(\w\w)/i) { }
177 1 17 if ($version >= 10) { }
1 16 elsif ($version >= 6.3 and $version < 7) { }
1 15 elsif ($version >= 6.2) { }
5 10 elsif ($version >= 6.1) { }
0 10 elsif ($version >= 6.06) { }
5 5 elsif ($version >= 6) { }
5 0 elsif ($version >= 5.1) { }
0 0 elsif ($version >= 5) { }
205 6 189 if (/^Mac/)
211 0 195 if (/^PPC$/)
216 3 192 if (/Android\s([\.0-9]+)/ and lc $browser->{'name'} ne 'edge') { }
8 184 elsif (/^Linux/) { }
224 4 4 if ($lstr =~ s/(i386|mips|amd64|sparc64|ppc|i686|i586|armv51|x86|x86-64|x86_64|ppc64|x64|x64_64)\b//)
227 0 8 if ($lstr =~ / (\d+\.\S+)/)
232 1 194 if (/^(SunOS|Solaris)/i)
235 1 0 if (/(sun4[a-z]|i86pc)/)
238 1 0 if (/^SunOS\s*([0-9\.]+)/)
243 21 174 if (/^($langRE)-/ or /^($langRE)$/)
250 7 39 if (defined $browser->{'name'} and exists $name_map{$browser->{'name'}})
256 1 45 if ($browser->{'name'} eq 'Konqueror')
266 23 23 if (int keys %langs_in > 0)
282 169 77 if (exists $self->{$method}) { }
77 0 elsif (exists $self->{'version'}{$method}) { }