summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2014-05-22 05:30:29 -0400
committerJunio C Hamano <gitster@pobox.com>2014-05-27 09:59:22 -0700
commitfc1b774c72990f0ff92370316412b19fd72baa77 (patch)
tree8f0edeb30a61f3871c65234b59e1f72c1f989cb0 /t
parentd4241f52d1a19bf464d63cbc4cd67fcc6a3af01d (diff)
downloadgit-fc1b774c72990f0ff92370316412b19fd72baa77.tar.gz
remote-curl: reencode http error messages
We currently recognize an error message with a content-type "text/plain; charset=utf-16" as text, but we ignore the charset parameter entirely. Let's encode it to log_output_encoding, which is presumably something the user's terminal can handle. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-xt/lib-httpd/error.sh4
-rwxr-xr-xt/t5550-http-fetch-dumb.sh5
2 files changed, 9 insertions, 0 deletions
diff --git a/t/lib-httpd/error.sh b/t/lib-httpd/error.sh
index 23cec97cc3..eafc9d2d90 100755
--- a/t/lib-httpd/error.sh
+++ b/t/lib-httpd/error.sh
@@ -15,6 +15,10 @@ case "$PATH_INFO" in
printf "text/plain; charset=utf-8"
charset=utf-8
;;
+*utf16*)
+ printf "text/plain; charset=utf-16"
+ charset=utf-16
+ ;;
esac
printf "\n"
diff --git a/t/t5550-http-fetch-dumb.sh b/t/t5550-http-fetch-dumb.sh
index b35b2610e3..01b8aae2ed 100755
--- a/t/t5550-http-fetch-dumb.sh
+++ b/t/t5550-http-fetch-dumb.sh
@@ -186,5 +186,10 @@ test_expect_success 'git client shows text/plain with a charset' '
grep "this is the error message" stderr
'
+test_expect_success 'http error messages are reencoded' '
+ test_must_fail git clone "$HTTPD_URL/error/utf16" 2>stderr &&
+ grep "this is the error message" stderr
+'
+
stop_httpd
test_done