File Coverage

blib/lib/Duadua/Parser/Browser/BrowserMisc.pm
Criterion Covered Total %
statement 52 52 100.0
branch 42 50 84.0
condition 9 15 60.0
subroutine 4 4 100.0
pod 1 1 100.0
total 108 122 88.5


line stmt bran cond sub pod time code
1             package Duadua::Parser::Browser::BrowserMisc;
2 11     11   99 use strict;
  11         39  
  11         385  
3 11     11   48 use warnings;
  11         30  
  11         476  
4 11     11   82 use Duadua::Util;
  11         17  
  11         12706  
5              
6             sub try {
7 119     119 1 266 my ($class, $d) = @_;
8              
9 119 100 66     286 if ( $d->ua eq 'lynx' ) {
    100 33        
    100 66        
    100 66        
    100 66        
    100          
    100          
    100          
    100          
10             return {
11 1         7 name => 'Lynx',
12             };
13             }
14             elsif ( $d->_prefix('Lynx/') ) {
15 2         11 my $h = {
16             name => 'Lynx',
17             };
18              
19 2 100       9 if ($d->opt_version) {
20 1         6 my ($version) = ($d->ua =~ m!^Lynx/([\d.a-z]+)!);
21 1 50       7 $h->{version} = $version if $version;
22             }
23              
24 2         9 return $h;
25             }
26             elsif ( $d->_contain(' EzLynx/') ) {
27 2         9 my $h = {
28             name => 'EzLynx',
29             };
30              
31 2 100       8 if ($d->opt_version) {
32 1         4 my ($version) = ($d->ua =~ m!EzLynx/([\d.]+)!);
33 1 50       7 $h->{version} = $version if $version;
34             }
35              
36 2         11 return Duadua::Util->set_os($d, $h);
37             }
38             elsif ( $d->_contain('w3m/') ) {
39 2         11 my $h = {
40             name => 'w3m',
41             };
42              
43 2 100       8 if ($d->opt_version) {
44 1         4 my ($version) = ($d->ua =~ m!^w3m/([\d.]+)!);
45 1 50       6 $h->{version} = $version if $version;
46             }
47              
48 2         11 return $h;
49             }
50             elsif ( $d->_contain(' Konqueror/') ) {
51 2         10 my $h = {
52             name => 'Konqueror',
53             };
54              
55 2 100       10 if ($d->opt_version) {
56 1         4 my ($version) = ($d->ua =~ m! Konqueror/([\d.]+)!);
57 1 50       8 $h->{version} = $version if $version;
58             }
59              
60 2         10 return Duadua::Util->set_os($d, $h);
61             }
62             elsif ( $d->_prefix('OmniWeb/')
63             || ($d->_contain(' OmniWeb/') && $d->_contain_mozilla) ) {
64 2         12 my $h = {
65             name => 'OmniWeb',
66             is_ios => 1,
67             };
68              
69 2 100       8 if ($d->opt_version) {
70 1         5 my ($version) = ($d->ua =~ m!OmniWeb/([\d.]+)!);
71 1 50       6 $h->{version} = $version if $version;
72             }
73              
74 2         11 return $h;
75             }
76             elsif ( $d->_contain(' QtWebEngine/') && $d->_contain_mozilla ) {
77 2         8 my $h = {
78             name => 'QtWebEngine',
79             };
80              
81 2 100       8 if ($d->opt_version) {
82 1         5 my ($version) = ($d->ua =~ m! QtWebEngine/([\d.]+)!);
83 1 50       7 $h->{version} = $version if $version;
84             }
85              
86 2         10 return Duadua::Util->set_os($d, $h);
87             }
88             elsif ( $d->_contain(' UBrowser/') && $d->_contain('Win') ) {
89 2         10 my $h = {
90             name => 'UBrowser',
91             };
92              
93 2 100       6 if ($d->opt_version) {
94 1         5 my ($version) = ($d->ua =~ m! UBrowser/([\d.]+)!);
95 1 50       7 $h->{version} = $version if $version;
96             }
97              
98 2         10 return Duadua::Util->set_os($d, $h);
99             }
100             elsif ( $d->_contain(' MZBrowser/') && $d->_contain('UWS') ) {
101 2         10 my $h = {
102             name => 'MZBrowser',
103             };
104              
105 2 100       7 if ($d->opt_version) {
106 1         5 my ($version) = ($d->ua =~ m! MZBrowser/([\d.\-]+)!);
107 1 50       7 $h->{version} = $version if $version;
108             }
109              
110 2         13 return Duadua::Util->set_os($d, $h);
111             }
112             }
113              
114             1;
115              
116             __END__