gitweb: Make config_to_multi return [] instead of [undef]

This is important for the list of clone urls, where if there are
no per-repository clone URL configured, the default base URLs
are never used for URL construction without this patch.

Add tests for different ways of setting project URLs, just in case.
Note that those tests in current form wouldn't detect breakage fixed
by this patch, as it only checks for errors and not for expected
output.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Petr Baudis 2007-12-08 12:30:59 +01:00 committed by Junio C Hamano
parent dfa7c7d221
commit bc8b95ae4a
2 changed files with 26 additions and 1 deletions

View File

@ -1511,7 +1511,7 @@ sub config_to_int {
sub config_to_multi { sub config_to_multi {
my $val = shift; my $val = shift;
return ref($val) ? $val : [ $val ]; return ref($val) ? $val : (defined($val) ? [ $val ] : []);
} }
sub git_get_project_config { sub git_get_project_config {

View File

@ -557,6 +557,31 @@ test_expect_success \
'gitweb_run "p=.git;a=tree;opt=--no-merges"' 'gitweb_run "p=.git;a=tree;opt=--no-merges"'
test_debug 'cat gitweb.log' test_debug 'cat gitweb.log'
# ----------------------------------------------------------------------
# testing config_to_multi / cloneurl
test_expect_success \
'URL: no project URLs, no base URL' \
'gitweb_run "p=.git;a=summary"'
test_debug 'cat gitweb.log'
test_expect_success \
'URL: project URLs via gitweb.url' \
'git config --add gitweb.url git://example.com/git/trash.git &&
git config --add gitweb.url http://example.com/git/trash.git &&
gitweb_run "p=.git;a=summary"'
test_debug 'cat gitweb.log'
cat >.git/cloneurl <<\EOF
git://example.com/git/trash.git
http://example.com/git/trash.git
EOF
test_expect_success \
'URL: project URLs via cloneurl file' \
'gitweb_run "p=.git;a=summary"'
test_debug 'cat gitweb.log'
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# gitweb config and repo config # gitweb config and repo config