@@ -40,6 +40,22 @@ test_expect_success 'setup remote repository' '
4040 mv test_repo.git "$HTTPD_DOCUMENT_ROOT_PATH"
4141'
4242
43+ test_expect_success ' create password-protected repository' '
44+ mkdir -p "$HTTPD_DOCUMENT_ROOT_PATH/auth/dumb" &&
45+ cp -Rf "$HTTPD_DOCUMENT_ROOT_PATH/test_repo.git" \
46+ "$HTTPD_DOCUMENT_ROOT_PATH/auth/dumb/test_repo.git"
47+ '
48+
49+ test_expect_success ' setup askpass helper' '
50+ cat >askpass <<-\EOF &&
51+ #!/bin/sh
52+ echo user@host
53+ EOF
54+ chmod +x askpass &&
55+ GIT_ASKPASS="$PWD/askpass" &&
56+ export GIT_ASKPASS
57+ '
58+
4359test_expect_success ' clone remote repository' '
4460 cd "$ROOT_PATH" &&
4561 git clone $HTTPD_URL/dumb/test_repo.git test_repo_clone
@@ -144,6 +160,24 @@ test_expect_success 'PUT and MOVE sends object to URLs with SHA-1 hash suffix' '
144160test_http_push_nonff " $HTTPD_DOCUMENT_ROOT_PATH " /test_repo.git \
145161 " $ROOT_PATH " /test_repo_clone master
146162
163+ test_expect_success ' push to password-protected repository (user in URL)' '
164+ test_commit pw-user &&
165+ git push "$HTTPD_URL_USER/auth/dumb/test_repo.git" HEAD &&
166+ git rev-parse --verify HEAD >expect &&
167+ git --git-dir="$HTTPD_DOCUMENT_ROOT_PATH/auth/dumb/test_repo.git" \
168+ rev-parse --verify HEAD >actual &&
169+ test_cmp expect actual
170+ '
171+
172+ test_expect_failure ' push to password-protected repository (no user in URL)' '
173+ test_commit pw-nouser &&
174+ git push "$HTTPD_URL/auth/dumb/test_repo.git" HEAD &&
175+ git rev-parse --verify HEAD >expect &&
176+ git --git-dir="$HTTPD_DOCUMENT_ROOT_PATH/auth/dumb/test_repo.git" \
177+ rev-parse --verify HEAD >actual &&
178+ test_cmp expect actual
179+ '
180+
147181stop_httpd
148182
149183test_done
0 commit comments