t / Git-SVN / Utils / join_paths.ton commit test-lib: parse options in a for loop to keep $@ intact (a9b2db3)
   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}