File Coverage

blib/lib/Duadua/Parser/Browser/Opera.pm
Criterion Covered Total %
statement 28 28 100.0
branch 15 18 83.3
condition 4 6 66.6
subroutine 4 4 100.0
pod 1 1 100.0
total 52 57 91.2


line stmt bran cond sub pod time code
1             package Duadua::Parser::Browser::Opera;
2 6     6   37 use strict;
  6         13  
  6         169  
3 6     6   28 use warnings;
  6         12  
  6         129  
4 6     6   29 use Duadua::Util;
  6         19  
  6         2330  
5              
6             sub try {
7 318     318 1 561 my ($class, $d) = @_;
8              
9 318 100       701 if ( index($d->ua, 'Opera/') > -1 ) {
10 2         6 my $h = {
11             name => 'Opera',
12             };
13              
14 2 100       7 if ($d->opt_version) {
15 1         10 my ($version) = ($d->ua =~ m!a/([\d.]+) \(!);
16 1 50       7 $h->{version} = $version if $version;
17             }
18              
19 2         9 return Duadua::Util->set_os($d, $h);
20             }
21              
22 316 100 66     662 if ( index($d->ua, ' OPR/') > -1 && index($d->ua, 'Mozilla/') > -1 ) {
23 2         16 my $h = {
24             name => 'Opera',
25             };
26              
27 2 100       6 if ($d->opt_version) {
28 1         11 my ($version) = ($d->ua =~ m! OPR/([\d.]+)!);
29 1 50       11 $h->{version} = $version if $version;
30             }
31              
32 2         7 return Duadua::Util->set_os($d, $h);
33             }
34              
35 314 100 66     634 if ( index($d->ua, ' OPT/') > -1 && index($d->ua, 'Mozilla/') > -1 ) {
36 2         7 my $h = {
37             name => 'Opera Touch',
38             };
39              
40 2 100       7 if ($d->opt_version) {
41 1         18 my ($version) = ($d->ua =~ m! OPT/([\d.]+)!);
42 1 50       8 $h->{version} = $version if $version;
43             }
44              
45 2         8 return Duadua::Util->set_os($d, $h);
46             }
47             }
48              
49             1;
50              
51             __END__