Merge branch 'jk/http-auth-tests-robustify'
Using the same username and password during the tests would not catch a potential breakage of sending one when we should be sending the other. * jk/http-auth-tests-robustify: use distinct username/password for http auth tests
This commit is contained in:
commit
35a116d740
@ -129,7 +129,7 @@ prepare_httpd() {
|
||||
HTTPD_DEST=127.0.0.1:$LIB_HTTPD_PORT
|
||||
HTTPD_URL=$HTTPD_PROTO://$HTTPD_DEST
|
||||
HTTPD_URL_USER=$HTTPD_PROTO://user%40host@$HTTPD_DEST
|
||||
HTTPD_URL_USER_PASS=$HTTPD_PROTO://user%40host:user%40host@$HTTPD_DEST
|
||||
HTTPD_URL_USER_PASS=$HTTPD_PROTO://user%40host:pass%40host@$HTTPD_DEST
|
||||
|
||||
if test -n "$LIB_HTTPD_DAV" -o -n "$LIB_HTTPD_SVN"
|
||||
then
|
||||
@ -217,7 +217,15 @@ setup_askpass_helper() {
|
||||
test_expect_success 'setup askpass helper' '
|
||||
write_script "$TRASH_DIRECTORY/askpass" <<-\EOF &&
|
||||
echo >>"$TRASH_DIRECTORY/askpass-query" "askpass: $*" &&
|
||||
cat "$TRASH_DIRECTORY/askpass-response"
|
||||
case "$*" in
|
||||
*Username*)
|
||||
what=user
|
||||
;;
|
||||
*Password*)
|
||||
what=pass
|
||||
;;
|
||||
esac &&
|
||||
cat "$TRASH_DIRECTORY/askpass-$what"
|
||||
EOF
|
||||
GIT_ASKPASS="$TRASH_DIRECTORY/askpass" &&
|
||||
export GIT_ASKPASS &&
|
||||
@ -227,7 +235,8 @@ setup_askpass_helper() {
|
||||
|
||||
set_askpass() {
|
||||
>"$TRASH_DIRECTORY/askpass-query" &&
|
||||
echo "$*" >"$TRASH_DIRECTORY/askpass-response"
|
||||
echo "$1" >"$TRASH_DIRECTORY/askpass-user" &&
|
||||
echo "$2" >"$TRASH_DIRECTORY/askpass-pass"
|
||||
}
|
||||
|
||||
expect_askpass() {
|
||||
|
@ -1 +1 @@
|
||||
user@host:nKpa8pZUHx/ic
|
||||
user@host:xb4E8pqD81KQs
|
||||
|
@ -154,7 +154,7 @@ test_http_push_nonff "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git \
|
||||
|
||||
test_expect_success 'push to password-protected repository (user in URL)' '
|
||||
test_commit pw-user &&
|
||||
set_askpass user@host &&
|
||||
set_askpass user@host pass@host &&
|
||||
git push "$HTTPD_URL_USER/auth/dumb/test_repo.git" HEAD &&
|
||||
git rev-parse --verify HEAD >expect &&
|
||||
git --git-dir="$HTTPD_DOCUMENT_ROOT_PATH/auth/dumb/test_repo.git" \
|
||||
@ -168,7 +168,7 @@ test_expect_failure 'user was prompted only once for password' '
|
||||
|
||||
test_expect_failure 'push to password-protected repository (no user in URL)' '
|
||||
test_commit pw-nouser &&
|
||||
set_askpass user@host &&
|
||||
set_askpass user@host pass@host &&
|
||||
git push "$HTTPD_URL/auth/dumb/test_repo.git" HEAD &&
|
||||
expect_askpass both user@host
|
||||
git rev-parse --verify HEAD >expect &&
|
||||
|
@ -274,7 +274,7 @@ test_expect_success 'push over smart http with auth' '
|
||||
cd "$ROOT_PATH/test_repo_clone" &&
|
||||
echo push-auth-test >expect &&
|
||||
test_commit push-auth-test &&
|
||||
set_askpass user@host &&
|
||||
set_askpass user@host pass@host &&
|
||||
git push "$HTTPD_URL"/auth/smart/test_repo.git &&
|
||||
git --git-dir="$HTTPD_DOCUMENT_ROOT_PATH/test_repo.git" \
|
||||
log -1 --format=%s >actual &&
|
||||
@ -286,7 +286,7 @@ test_expect_success 'push to auth-only-for-push repo' '
|
||||
cd "$ROOT_PATH/test_repo_clone" &&
|
||||
echo push-half-auth >expect &&
|
||||
test_commit push-half-auth &&
|
||||
set_askpass user@host &&
|
||||
set_askpass user@host pass@host &&
|
||||
git push "$HTTPD_URL"/auth-push/smart/test_repo.git &&
|
||||
git --git-dir="$HTTPD_DOCUMENT_ROOT_PATH/test_repo.git" \
|
||||
log -1 --format=%s >actual &&
|
||||
@ -316,7 +316,7 @@ test_expect_success 'push into half-auth-complete requires password' '
|
||||
cd "$ROOT_PATH/half-auth-clone" &&
|
||||
echo two >expect &&
|
||||
test_commit two &&
|
||||
set_askpass user@host &&
|
||||
set_askpass user@host pass@host &&
|
||||
git push "$HTTPD_URL/half-auth-complete/smart/half-auth.git" &&
|
||||
git --git-dir="$HTTPD_DOCUMENT_ROOT_PATH/half-auth.git" \
|
||||
log -1 --format=%s >actual &&
|
||||
|
@ -62,13 +62,13 @@ test_expect_success 'http auth can use user/pass in URL' '
|
||||
'
|
||||
|
||||
test_expect_success 'http auth can use just user in URL' '
|
||||
set_askpass user@host &&
|
||||
set_askpass wrong pass@host &&
|
||||
git clone "$HTTPD_URL_USER/auth/dumb/repo.git" clone-auth-pass &&
|
||||
expect_askpass pass user@host
|
||||
'
|
||||
|
||||
test_expect_success 'http auth can request both user and pass' '
|
||||
set_askpass user@host &&
|
||||
set_askpass user@host pass@host &&
|
||||
git clone "$HTTPD_URL/auth/dumb/repo.git" clone-auth-both &&
|
||||
expect_askpass both user@host
|
||||
'
|
||||
@ -77,7 +77,7 @@ test_expect_success 'http auth respects credential helper config' '
|
||||
test_config_global credential.helper "!f() {
|
||||
cat >/dev/null
|
||||
echo username=user@host
|
||||
echo password=user@host
|
||||
echo password=pass@host
|
||||
}; f" &&
|
||||
set_askpass wrong &&
|
||||
git clone "$HTTPD_URL/auth/dumb/repo.git" clone-auth-helper &&
|
||||
@ -86,14 +86,14 @@ test_expect_success 'http auth respects credential helper config' '
|
||||
|
||||
test_expect_success 'http auth can get username from config' '
|
||||
test_config_global "credential.$HTTPD_URL.username" user@host &&
|
||||
set_askpass user@host &&
|
||||
set_askpass wrong pass@host &&
|
||||
git clone "$HTTPD_URL/auth/dumb/repo.git" clone-auth-user &&
|
||||
expect_askpass pass user@host
|
||||
'
|
||||
|
||||
test_expect_success 'configured username does not override URL' '
|
||||
test_config_global "credential.$HTTPD_URL.username" wrong &&
|
||||
set_askpass user@host &&
|
||||
set_askpass wrong pass@host &&
|
||||
git clone "$HTTPD_URL_USER/auth/dumb/repo.git" clone-auth-user2 &&
|
||||
expect_askpass pass user@host
|
||||
'
|
||||
|
@ -119,7 +119,7 @@ test_expect_success 'redirects re-root further requests' '
|
||||
|
||||
test_expect_success 'clone from password-protected repository' '
|
||||
echo two >expect &&
|
||||
set_askpass user@host &&
|
||||
set_askpass user@host pass@host &&
|
||||
git clone --bare "$HTTPD_URL/auth/smart/repo.git" smart-auth &&
|
||||
expect_askpass both user@host &&
|
||||
git --git-dir=smart-auth log -1 --format=%s >actual &&
|
||||
@ -137,7 +137,7 @@ test_expect_success 'clone from auth-only-for-push repository' '
|
||||
|
||||
test_expect_success 'clone from auth-only-for-objects repository' '
|
||||
echo two >expect &&
|
||||
set_askpass user@host &&
|
||||
set_askpass user@host pass@host &&
|
||||
git clone --bare "$HTTPD_URL/auth-fetch/smart/repo.git" half-auth &&
|
||||
expect_askpass both user@host &&
|
||||
git --git-dir=half-auth log -1 --format=%s >actual &&
|
||||
@ -151,7 +151,7 @@ test_expect_success 'no-op half-auth fetch does not require a password' '
|
||||
'
|
||||
|
||||
test_expect_success 'redirects send auth to new location' '
|
||||
set_askpass user@host &&
|
||||
set_askpass user@host pass@host &&
|
||||
git -c credential.useHttpPath=true \
|
||||
clone $HTTPD_URL/smart-redir-auth/repo.git repo-redir-auth &&
|
||||
expect_askpass both user@host auth/smart/repo.git
|
||||
|
Loading…
Reference in New Issue
Block a user