File Coverage

blib/lib/Duadua/Parser/Browser/AppleSafari.pm
Criterion Covered Total %
statement 25 25 100.0
branch 16 18 88.8
condition 5 6 83.3
subroutine 4 4 100.0
pod 1 1 100.0
total 51 54 94.4


line stmt bran cond sub pod time code
1             package Duadua::Parser::Browser::AppleSafari;
2 11     11   108 use strict;
  11         23  
  11         463  
3 11     11   48 use warnings;
  11         19  
  11         519  
4 11     11   55 use Duadua::Util;
  11         21  
  11         4247  
5              
6             sub try {
7 317     317 1 625 my ($class, $d) = @_;
8              
9 317 100       839 return if $d->_contain('http');
10 191 100       490 return if $d->_contain('Browser/');
11 171 100       452 return if $d->_contain('HatenaBookmark/Android');
12              
13 170 100 66     463 if ( $d->_contain('Mozilla/5.0 (Mac') && $d->_contain('Safari/') ) {
14 2         8 my $h = {
15             name => 'Apple Safari',
16             is_ios => 1,
17             };
18              
19 2 100       6 if ($d->opt_version) {
20 1         5 my ($version) = ($d->ua =~ m!Safari/([\d.]+)!);
21 1 50       8 $h->{version} = $version if $version;
22             }
23              
24 2         24 return $h;
25             }
26              
27 168 100 100     406 if ( $d->_contain('Mozilla/5.0')
28             && Duadua::Util->ordering_match($d, [' AppleWebKit/', ' Version/', ' Safari/']) ) {
29 6         37 my $h = {
30             name => 'Apple Safari',
31             };
32              
33 6 100       14 if ($d->opt_version) {
34 3         5 my ($version) = ($d->ua =~ m!Safari/([\d.]+)!);
35 3 50       13 $h->{version} = $version if $version;
36             }
37              
38 6         15 return Duadua::Util->set_os($d, $h);
39             }
40             }
41              
42             1;
43              
44             __END__