Branch Coverage

blib/lib/HTML/ParseBrowser.pm
Criterion Covered Total %
branch 100 120 83.3


line true false branch
45 1 48 unless $useragent
46 0 48 if $useragent eq '-'
56 29 47 if defined $browser->{'detail'}
60 47 1 if (defined $browser->{'detail'})
66 7 41 if ($ua_string =~ /(iPhone|iPad|iPod).*?OS\s+(\d+_\d(_\d)?)/) { }
2 39 elsif ($ua_string =~ m[\((BlackBerry|BB10).*Version/([0-9\.]+)]) { }
1 38 elsif ($ua_string =~ m[Mozilla/5.0 \(.*?Windows.*?; rv:((\d+)\.(\d+))\) like Gecko]) { }
1 37 elsif ($useragent =~ m[OPR/((\d+)\.(\d+)\.\d+\.\d+)]) { }
4 33 elsif ($useragent =~ m[\bVersion/((\d+)\.(\d+)\S*) Safari/]) { }
2 31 elsif ($useragent =~ m[Opera/.*Version/((\d+)\.(\d+)\S*)$]) { }
70 7 0 if ($useragent =~ m[(Version|CriOS)/((\d+)(\.(\d+)[\.0-9]*)?)])
71 1 6 if ($1 eq 'CriOS')
76 7 0 if defined $5 and $5 ne ''
83 2 0 if ($version_string =~ /^([0-9]+)(\.([0-9]+).*)?/)
86 2 0 if defined $3 and $3 ne ''
113 0 79 if $br eq 'CriOS'
114 73 6 if ($br ne 'Safari' or not $seenchrome)
117 64 9 if ($ver =~ /^v?(\d+)\.(\d+)/)
121 6 73 if lc $br eq 'chrome'
122 1 78 if lc $br eq 'iron'
123 1 77 if lc $br eq 'lynx'
125 3 74 if lc $br eq 'opera'
130 9 202 if /compatible/i
132 183 19 unless (defined $browser->{'name'} and lc $browser->{'name'} eq 'webtv' || lc $browser->{'name'} eq 'opera')
133 6 177 if (/^MSIE (.*)$/)
141 0 202 if (m[^Edge/(([0-9]+)\.([0-9]+))])
148 1 201 if (/^AOL ([0-9].*)/)
154 1 201 if (m[^Konqueror/([-0-9.a-z]+)])
160 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) }
166 1 201 if (m[^Opera Mini/([0-9.]+)])
172 26 176 if (/^Win/)
174 1 25 /phone/i ? :
175 19 7 if (/Windows NT\s*((\d+)(\.\d+)?)/ or /^WinNT((\d+)(\.\d+)?)/) { }
1 6 elsif (/Windows (?:Phone )?(\d+(\.\d+)?)/) { }
6 0 elsif (/Win(\w\w)/i) { }
178 2 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) { }
200 1 0 unless $browser->{'osvers'}
202 5 1 unless $browser->{'osvers'}
206 7 195 if (/^Mac/)
212 0 202 if (/^PPC$/)
217 3 199 if (/Android\s([\.0-9]+)/ and lc $browser->{'name'} ne 'edge') { }
8 191 elsif (/^Linux/) { }
225 4 4 if ($lstr =~ s/(i386|mips|amd64|sparc64|ppc|i686|i586|armv51|x86|x86-64|x86_64|ppc64|x64|x64_64)\b//)
228 0 8 if ($lstr =~ / (\d+\.\S+)/)
233 1 201 if (/^(SunOS|Solaris)/i)
236 1 0 if (/(sun4[a-z]|i86pc)/)
239 1 0 if (/^SunOS\s*([0-9\.]+)/)
244 21 181 if (/^($langRE)-/ or /^($langRE)$/)
251 8 40 if (defined $browser->{'name'} and exists $name_map{$browser->{'name'}})
257 1 47 if ($browser->{'name'} eq 'Konqueror')
267 23 25 if (int keys %langs_in > 0)
283 176 81 if (exists $self->{$method}) { }
81 0 elsif (exists $self->{'version'}{$method}) { }