File Coverage

blib/lib/URI/smb.pm
Criterion Covered Total %
statement 28 28 100.0
branch 9 10 90.0
condition 3 3 100.0
subroutine 8 8 100.0
pod 4 4 100.0
total 52 53 98.1


line stmt bran cond sub pod time code
1             package URI::smb;
2              
3 1     1   16 use strict;
  1         1  
  1         37  
4 1     1   3 use warnings;
  1         2  
  1         65  
5              
6 1     1   4 use parent 'URI::_login';
  1         1  
  1         8  
7              
8             our $VERSION = '5.34';
9              
10 1     1 1 2 sub default_port { 445 }
11              
12             sub user {
13 3     3 1 6 my $self = shift;
14 3         5 my $new = shift;
15 3         10 my ($user, $authdomain) = _parse_user($self->SUPER::user());
16 3 100       35 if ($new) {
17 1 50       9 $self->SUPER::user($authdomain ? "$authdomain;$new" : $new);
18 1         48 $user = $new;
19             }
20 3         11 return $user;
21             }
22              
23             sub authdomain {
24 4     4 1 8 my $self = shift;
25 4         7 my $new = shift;
26 4         19 my ($user, $authdomain) = _parse_user($self->SUPER::user());
27              
28             # it must not be possible to set authdomain without user
29 4 100 100     15 if ($user && $new) {
30 1         4 $self->SUPER::user("$new;$user");
31 1         2 $authdomain = $new;
32             }
33 4         13 return $authdomain;
34             }
35              
36             sub sharename {
37 1     1 1 13 return (shift->path_segments)[1];
38             }
39              
40             sub _parse_user {
41 7 100   7   19 my $input = shift or return;
42 3         11 my ($authdomain, $user) = split ';', $input, 2;
43 3 100       10 return $user ? ($user, $authdomain) : $authdomain;
44             }
45              
46             1;
47             __END__