git/t/t9901-git-web--browse.sh
Elia Pinto ec1b763d05 t9901-git-web--browse.sh: use the $( ... ) construct for command substitution
The Git CodingGuidelines prefer the $(...) construct for command
substitution instead of using the backquotes `...`.

The backquoted form is the traditional method for command
substitution, and is supported by POSIX.  However, all but the
simplest uses become complicated quickly.  In particular, embedded
command substitutions and/or the use of double quotes require
careful escaping with the backslash character.

The patch was generated by:

for _f in $(find . -name "*.sh")
do
	perl -i -pe 'BEGIN{undef $/;} s/`(.+?)`/\$(\1)/smg'  "${_f}"
done

and then carefully proof-read.

Signed-off-by: Elia Pinto <gitter.spiros@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-01-12 11:49:49 -08:00

64 lines
1.4 KiB
Bash
Executable File

#!/bin/sh
#
test_description='git web--browse basic tests
This test checks that git web--browse can handle various valid URLs.'
. ./test-lib.sh
test_web_browse () {
# browser=$1 url=$2
git web--browse --browser="$1" "$2" >actual &&
tr -d '\015' <actual >text &&
test_cmp expect text
}
test_expect_success \
'URL with an ampersand in it' '
echo http://example.com/foo\&bar >expect &&
git config browser.custom.cmd echo &&
test_web_browse custom http://example.com/foo\&bar
'
test_expect_success \
'URL with a semi-colon in it' '
echo http://example.com/foo\;bar >expect &&
git config browser.custom.cmd echo &&
test_web_browse custom http://example.com/foo\;bar
'
test_expect_success \
'URL with a hash in it' '
echo http://example.com/foo#bar >expect &&
git config browser.custom.cmd echo &&
test_web_browse custom http://example.com/foo#bar
'
test_expect_success \
'browser paths are properly quoted' '
echo fake: http://example.com/foo >expect &&
cat >"fake browser" <<-\EOF &&
#!/bin/sh
echo fake: "$@"
EOF
chmod +x "fake browser" &&
git config browser.w3m.path "$(pwd)/fake browser" &&
test_web_browse w3m http://example.com/foo
'
test_expect_success \
'browser command allows arbitrary shell code' '
echo "arg: http://example.com/foo" >expect &&
git config browser.custom.cmd "
f() {
for i in \"\$@\"; do
echo arg: \$i
done
}
f" &&
test_web_browse custom http://example.com/foo
'
test_done