diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-05-21 05:48:25 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-05-21 05:49:41 +0900 |
commit | c69f2f8c869361e9e2bdb9fb3ceb2fe058013744 (patch) | |
tree | ecdeae936d072a0fdf97986b156e41aa297f36dc /t | |
parent | A handful more topics before -rc1 (diff) | |
parent | Revert "remote-curl: fall back to basic auth if Negotiate fails" (diff) | |
download | tgif-c69f2f8c869361e9e2bdb9fb3ceb2fe058013744.tar.xz |
Merge branch 'cs/http-use-basic-after-failed-negotiate'
Regression fix for a change made during this cycle.
* cs/http-use-basic-after-failed-negotiate:
Revert "remote-curl: fall back to basic auth if Negotiate fails"
t5551: test http interaction with credential helpers
Diffstat (limited to 't')
-rwxr-xr-x | t/t5551-http-fetch-smart.sh | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/t/t5551-http-fetch-smart.sh b/t/t5551-http-fetch-smart.sh index 984dba22af..4f87d90c5b 100755 --- a/t/t5551-http-fetch-smart.sh +++ b/t/t5551-http-fetch-smart.sh @@ -517,4 +517,45 @@ test_expect_success 'server-side error detected' ' test_i18ngrep "server-side error" actual ' +test_expect_success 'http auth remembers successful credentials' ' + rm -f .git-credentials && + test_config credential.helper store && + + # the first request prompts the user... + set_askpass user@host pass@host && + git ls-remote "$HTTPD_URL/auth/smart/repo.git" >/dev/null && + expect_askpass both user@host && + + # ...and the second one uses the stored value rather than + # prompting the user. + set_askpass bogus-user bogus-pass && + git ls-remote "$HTTPD_URL/auth/smart/repo.git" >/dev/null && + expect_askpass none +' + +test_expect_success 'http auth forgets bogus credentials' ' + # seed credential store with bogus values. In real life, + # this would probably come from a password which worked + # for a previous request. + rm -f .git-credentials && + test_config credential.helper store && + { + echo "url=$HTTPD_URL" && + echo "username=bogus" && + echo "password=bogus" + } | git credential approve && + + # we expect this to use the bogus values and fail, never even + # prompting the user... + set_askpass user@host pass@host && + test_must_fail git ls-remote "$HTTPD_URL/auth/smart/repo.git" >/dev/null && + expect_askpass none && + + # ...but now we should have forgotten the bad value, causing + # us to prompt the user again. + set_askpass user@host pass@host && + git ls-remote "$HTTPD_URL/auth/smart/repo.git" >/dev/null && + expect_askpass both user@host +' + test_done |