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   41 use strict;
  6         12  
  6         180  
3 6     6   30 use warnings;
  6         13  
  6         131  
4 6     6   29 use Duadua::Util;
  6         18  
  6         2344  
5              
6             sub try {
7 317     317 1 592 my ($class, $d) = @_;
8              
9 317 100       562 if ( index($d->ua, 'Opera/') > -1 ) {
10 2         7 my $h = {
11             name => 'Opera',
12             };
13              
14 2 100       6 if ($d->opt_version) {
15 1         4 my ($version) = ($d->ua =~ m!a/([\d.]+) \(!);
16 1 50       8 $h->{version} = $version if $version;
17             }
18              
19 2         9 return Duadua::Util->set_os($d, $h);
20             }
21              
22 315 100 66     692 if ( index($d->ua, ' OPR/') > -1 && index($d->ua, 'Mozilla/') > -1 ) {
23 2         6 my $h = {
24             name => 'Opera',
25             };
26              
27 2 100       9 if ($d->opt_version) {
28 1         38 my ($version) = ($d->ua =~ m! OPR/([\d.]+)!);
29 1 50       7 $h->{version} = $version if $version;
30             }
31              
32 2         10 return Duadua::Util->set_os($d, $h);
33             }
34              
35 313 100 66     634 if ( index($d->ua, ' OPT/') > -1 && index($d->ua, 'Mozilla/') > -1 ) {
36 2         8 my $h = {
37             name => 'Opera Touch',
38             };
39              
40 2 100       7 if ($d->opt_version) {
41 1         5 my ($version) = ($d->ua =~ m! OPT/([\d.]+)!);
42 1 50       6 $h->{version} = $version if $version;
43             }
44              
45 2         12 return Duadua::Util->set_os($d, $h);
46             }
47             }
48              
49             1;
50              
51             __END__