aboutsummaryrefslogtreecommitdiffstats
path: root/t/t7450-bad-git-dotfiles.sh
diff options
context:
space:
mode:
authorVictoria Dye <vdye@github.com>2024-01-18 01:55:17 +0000
committerJunio C Hamano <gitster@pobox.com>2024-01-19 10:15:34 -0800
commit7e2fc39d8c02048e9dddcba1b1b6786a8088a1a8 (patch)
tree97fa17e08df0c8ce8edd50db1c95a0f1851ab81f /t/t7450-bad-git-dotfiles.sh
parent6af2c4ad45083df07b81ebb2c449f97f0bb69315 (diff)
downloadgit-7e2fc39d8c02048e9dddcba1b1b6786a8088a1a8.tar.gz
t7450: test submodule urls
Add tests to 't7450-bad-git-dotfiles.sh' to check the validity of different submodule URLs. To verify this directly (without setting up test repositories & submodules), add a 'check-url' subcommand to 'test-tool submodule' that calls 'check_submodule_url' in the same way that 'check-name' calls 'check_submodule_name'. Add two tests to separately address cases where the URL check correctly filters out invalid URLs and cases where the check misses invalid URLs. Mark the latter ("url check misses invalid cases") with 'test_expect_failure' to indicate that this is currently broken, which will be fixed in the next step. Signed-off-by: Victoria Dye <vdye@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t7450-bad-git-dotfiles.sh')
-rwxr-xr-xt/t7450-bad-git-dotfiles.sh35
1 files changed, 35 insertions, 0 deletions
diff --git a/t/t7450-bad-git-dotfiles.sh b/t/t7450-bad-git-dotfiles.sh
index 35a31acd4d..c73b1c92ec 100755
--- a/t/t7450-bad-git-dotfiles.sh
+++ b/t/t7450-bad-git-dotfiles.sh
@@ -45,6 +45,41 @@ test_expect_success 'check names' '
test_cmp expect actual
'
+test_expect_success 'check urls' '
+ cat >expect <<-\EOF &&
+ ./bar/baz/foo.git
+ https://example.com/foo.git
+ http://example.com:80/deeper/foo.git
+ EOF
+
+ test-tool submodule check-url >actual <<-\EOF &&
+ ./bar/baz/foo.git
+ https://example.com/foo.git
+ http://example.com:80/deeper/foo.git
+ -a./foo
+ ../../..//test/foo.git
+ ../../../../../:localhost:8080/foo.git
+ ..\../.\../:example.com/foo.git
+ ./%0ahost=example.com/foo.git
+ https://one.example.com/evil?%0ahost=two.example.com
+ https:///example.com/foo.git
+ https::example.com/foo.git
+ http:::example.com/foo.git
+ EOF
+
+ test_cmp expect actual
+'
+
+# NEEDSWORK: the URL checked here is not valid (and will not work as a remote if
+# a user attempts to clone it), but the fsck check passes.
+test_expect_failure 'url check misses invalid cases' '
+ test-tool submodule check-url >actual <<-\EOF &&
+ http://example.com:test/foo.git
+ EOF
+
+ test_must_be_empty actual
+'
+
test_expect_success 'create innocent subrepo' '
git init innocent &&
git -C innocent commit --allow-empty -m foo