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