1#!/bin/sh 2# 3 4test_description='git web--browse basic tests 5 6This test checks that git web--browse can handle various valid URLs.' 7 8. ./test-lib.sh 9 10test_web_browse () { 11 # browser=$1 url=$2 12 git web--browse --browser="$1" "$2" >actual && 13 tr -d '\015' <actual >text && 14 test_cmp expect text 15} 16 17test_expect_success \ 18 'URL with an ampersand in it' ' 19 echo http://example.com/foo\&bar >expect && 20 git config browser.custom.cmd echo && 21 test_web_browse custom http://example.com/foo\&bar 22' 23 24test_expect_success \ 25 'URL with a semi-colon in it' ' 26 echo http://example.com/foo\;bar >expect && 27 git config browser.custom.cmd echo && 28 test_web_browse custom http://example.com/foo\;bar 29' 30 31test_expect_success \ 32 'URL with a hash in it' ' 33 echo http://example.com/foo#bar >expect && 34 git config browser.custom.cmd echo && 35 test_web_browse custom http://example.com/foo#bar 36' 37 38test_expect_success \ 39 'browser paths are properly quoted' ' 40 echo fake: http://example.com/foo >expect && 41 cat >"fake browser" <<-\EOF && 42 #!/bin/sh 43 echo fake: "$@" 44 EOF 45 chmod +x "fake browser" && 46 git config browser.w3m.path "$(pwd)/fake browser" && 47 test_web_browse w3m http://example.com/foo 48' 49 50test_expect_success \ 51 'browser command allows arbitrary shell code' ' 52 echo "arg: http://example.com/foo" >expect && 53 git config browser.custom.cmd " 54 f() { 55 for i in \"\$@\"; do 56 echo arg: \$i 57 done 58 } 59 f" && 60 test_web_browse custom http://example.com/foo 61' 62 63test_done 64