diff options
author | Michael G. Schwern <schwern@pobox.com> | 2012-07-28 02:47:50 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2012-08-02 21:46:03 +0000 |
commit | d2fd119c4fcaea266a894354b506959376140c37 (patch) | |
tree | 887faa7b3d86d181a3160256452bf890a8da632f /t | |
parent | 8266fc8be19ef1405d4ef175bb0e75ebc2730f5d (diff) | |
download | git-d2fd119c4fcaea266a894354b506959376140c37.tar.gz git-d2fd119c4fcaea266a894354b506959376140c37.tar.xz |
git-svn: introduce add_path_to_url function
Remove the ad-hoc versions.
This is mostly to normalize the process and ensure the URLs produced
don't have double slashes or anything.
Also provides a place to fix the corner case where a file path
contains a percent sign.
[ew: commit title]
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Diffstat (limited to 't')
-rw-r--r-- | t/Git-SVN/Utils/add_path_to_url.t | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/t/Git-SVN/Utils/add_path_to_url.t b/t/Git-SVN/Utils/add_path_to_url.t new file mode 100644 index 000000000..bfbd87845 --- /dev/null +++ b/t/Git-SVN/Utils/add_path_to_url.t @@ -0,0 +1,27 @@ +#!/usr/bin/env perl + +use strict; +use warnings; + +use Test::More 'no_plan'; + +use Git::SVN::Utils qw( + add_path_to_url +); + +# A reference cannot be a hash key, so we use an array. +my @tests = ( + ["http://x.com", "bar"] => 'http://x.com/bar', + ["http://x.com", ""] => 'http://x.com', + ["http://x.com/foo/", undef] => 'http://x.com/foo/', + ["http://x.com/foo/", "/bar/baz/"] => 'http://x.com/foo/bar/baz/', + ["http://x.com", 'per%cent'] => 'http://x.com/per%25cent', +); + +while(@tests) { + my($have, $want) = splice @tests, 0, 2; + + my $args = join ", ", map { qq['$_'] } map { defined($_) ? $_ : 'undef' } @$have; + my $name = "add_path_to_url($args) eq $want"; + is add_path_to_url(@$have), $want, $name; +} |