Merge branch 'rs/apply-name-terminate'
[gitweb.git] / t / t5550-http-fetch-dumb.sh
index 48e2ab62da7a4293dd647524f75f3590783bcb02..3484b6f0f3cf04a9cf831a5d91c31486efebcc38 100755 (executable)
@@ -91,23 +91,55 @@ test_expect_success 'configured username does not override URL' '
        expect_askpass pass user@host
 '
 
-test_expect_success 'cmdline credential config passes into submodules' '
+test_expect_success 'set up repo with http submodules' '
        git init super &&
        set_askpass user@host pass@host &&
        (
                cd super &&
                git submodule add "$HTTPD_URL/auth/dumb/repo.git" sub &&
                git commit -m "add submodule"
-       ) &&
+       )
+'
+
+test_expect_success 'cmdline credential config passes to submodule via clone' '
        set_askpass wrong pass@host &&
        test_must_fail git clone --recursive super super-clone &&
        rm -rf super-clone &&
+
        set_askpass wrong pass@host &&
-       git -c "credential.$HTTP_URL.username=user@host" \
+       git -c "credential.$HTTPD_URL.username=user@host" \
                clone --recursive super super-clone &&
        expect_askpass pass user@host
 '
 
+test_expect_success 'cmdline credential config passes submodule via fetch' '
+       set_askpass wrong pass@host &&
+       test_must_fail git -C super-clone fetch --recurse-submodules &&
+
+       set_askpass wrong pass@host &&
+       git -C super-clone \
+           -c "credential.$HTTPD_URL.username=user@host" \
+           fetch --recurse-submodules &&
+       expect_askpass pass user@host
+'
+
+test_expect_success 'cmdline credential config passes submodule update' '
+       # advance the submodule HEAD so that a fetch is required
+       git commit --allow-empty -m foo &&
+       git push "$HTTPD_DOCUMENT_ROOT_PATH/auth/dumb/repo.git" HEAD &&
+       sha1=$(git rev-parse HEAD) &&
+       git -C super-clone update-index --cacheinfo 160000,$sha1,sub &&
+
+       set_askpass wrong pass@host &&
+       test_must_fail git -C super-clone submodule update &&
+
+       set_askpass wrong pass@host &&
+       git -C super-clone \
+           -c "credential.$HTTPD_URL.username=user@host" \
+           submodule update &&
+       expect_askpass pass user@host
+'
+
 test_expect_success 'fetch changes via http' '
        echo content >>file &&
        git commit -a -m two &&