Browse Source
Otherwise you might wind up with things like... my $path1 = undef; my $path2 = 'foo'; my $path = $path1 . '/' . $path2; creating '/foo'. Or this... my $path1 = 'foo/'; my $path2 = 'bar'; my $path = $path1 . '/' . $path2; creating 'foo//bar'. Could have used File::Spec, but I'm shying away from it due to SVN 1.7's pickiness about paths. Felt it would be better to have our own we can control completely. [ew: commit title] Signed-off-by: Eric Wong <normalperson@yhbt.net>maint
Michael G. Schwern
12 years ago
committed by
Eric Wong
4 changed files with 72 additions and 5 deletions
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env perl |
||||
|
||||
use strict; |
||||
use warnings; |
||||
|
||||
use Test::More 'no_plan'; |
||||
|
||||
use Git::SVN::Utils qw( |
||||
join_paths |
||||
); |
||||
|
||||
# A reference cannot be a hash key, so we use an array. |
||||
my @tests = ( |
||||
[] => '', |
||||
["/x.com", "bar"] => '/x.com/bar', |
||||
["x.com", ""] => 'x.com', |
||||
["/x.com/foo/", undef, "bar"] => '/x.com/foo/bar', |
||||
["x.com/foo/", "/bar/baz/"] => 'x.com/foo/bar/baz/', |
||||
["foo", "bar"] => 'foo/bar', |
||||
["/foo/bar", "baz", "/biff"] => '/foo/bar/baz/biff', |
||||
["", undef, "."] => '.', |
||||
[] => '', |
||||
|
||||
); |
||||
|
||||
while(@tests) { |
||||
my($have, $want) = splice @tests, 0, 2; |
||||
|
||||
my $args = join ", ", map { qq['$_'] } map { defined($_) ? $_ : 'undef' } @$have; |
||||
my $name = "join_paths($args) eq '$want'"; |
||||
is join_paths(@$have), $want, $name; |
||||
} |
Loading…
Reference in new issue