Hi Peff,
On Tue, 26 Apr 2016, Jeff King wrote:
> On Tue, Apr 26, 2016 at 05:33:33PM +0200, Johannes Schindelin wrote:
>
> > Testing the headers? I dunno, do we have tests for that already? I thought
> > we did not: it requires an HTTP server (so that the headers are actually
> > sent) that we can force to check the header...
> >
> > So I see we have some tests that use Apache, and one that uses our own
> > http-backend. But is there already anything that logs HTTP requests? I did
> > not think so, please correct me if I am wrong.
>
> You can ask apache to check for specific headers. Like this:
>
> diff --git a/t/lib-httpd/apache.conf b/t/lib-httpd/apache.conf
> index 9317ba0..de5a8fe 100644
> --- a/t/lib-httpd/apache.conf
> +++ b/t/lib-httpd/apache.conf
> @@ -102,6 +102,12 @@ Alias /auth/dumb/ www/auth/dumb/
> SetEnv GIT_HTTP_EXPORT_ALL
> Header set Set-Cookie name=value
> </LocationMatch>
> +<LocationMatch /smart_headers/>
> + Require expr %{HTTP:x-magic-one} == 'abra'
> + Require expr %{HTTP:x-magic-two} == 'cadabra'
> + SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH}
> + SetEnv GIT_HTTP_EXPORT_ALL
> +</LocationMatch>
> ScriptAliasMatch /smart_*[^/]*/(.*) ${GIT_EXEC_PATH}/git-http-backend/$1
> ScriptAlias /broken_smart/ broken-smart-http.sh/
> ScriptAlias /error/ error.sh/
> diff --git a/t/t5551-http-fetch-smart.sh b/t/t5551-http-fetch-smart.sh
> index 58207d8..e44fe72 100755
> --- a/t/t5551-http-fetch-smart.sh
> +++ b/t/t5551-http-fetch-smart.sh
> @@ -282,5 +282,12 @@ test_expect_success EXPENSIVE 'http can handle enormous
> ref negotiation' '
> test_line_count = 100000 tags
> '
>
> +test_expect_success 'custom http headers' '
> + test_must_fail git fetch "$HTTPD_URL/smart_headers/repo.git" &&
> + git -c http.extraheader="x-magic-one: abra" \
> + -c http.extraheader="x-magic-two: cadabra" \
> + fetch "$HTTPD_URL/smart_headers/repo.git"
> +'
> +
> stop_httpd
> test_done
That's pretty easy.
After sleeping over the issue, I realized, though, that the test can use
the very same method *I* used to verify that the headers are sent: using
GIT_CURL_VERBOSE.
I hope you do not mind that I used this method instead.
Thanks,
Dscho
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html