1#!/usr/bin/env perl
2
3use strict;
4use warnings;
5
6use Test::More 'no_plan';
7
8use Git::SVN::Utils qw(
9 join_paths
10);
11
12# A reference cannot be a hash key, so we use an array.
13my @tests = (
14 [] => '',
15 ["/x.com", "bar"] => '/x.com/bar',
16 ["x.com", ""] => 'x.com',
17 ["/x.com/foo/", undef, "bar"] => '/x.com/foo/bar',
18 ["x.com/foo/", "/bar/baz/"] => 'x.com/foo/bar/baz/',
19 ["foo", "bar"] => 'foo/bar',
20 ["/foo/bar", "baz", "/biff"] => '/foo/bar/baz/biff',
21 ["", undef, "."] => '.',
22 [] => '',
23
24);
25
26while(@tests) {
27 my($have, $want) = splice @tests, 0, 2;
28
29 my $args = join ", ", map { qq['$_'] } map { defined($_) ? $_ : 'undef' } @$have;
30 my $name = "join_paths($args) eq '$want'";
31 is join_paths(@$have), $want, $name;
32}