ca475a61f8
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>
33 lines
737 B
Perl
33 lines
737 B
Perl
#!/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;
|
|
}
|