From 14a81007ba82f2081a39b23dbd248ca3b5f5a12c Mon Sep 17 00:00:00 2001 From: Stefan Beller Date: Fri, 29 Jul 2016 11:37:35 -0700 Subject: [PATCH] Submodule subscriptions: test for overly deep relative URLs Change-Id: Iafe4ebe4dafce29d2c039ba4262568bc8beaa334 --- .../git/SubmoduleSectionParserIT.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/SubmoduleSectionParserIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/SubmoduleSectionParserIT.java index 6a4454f7a8..09e498faa4 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/SubmoduleSectionParserIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/SubmoduleSectionParserIT.java @@ -367,4 +367,27 @@ public class SubmoduleSectionParserIT extends AbstractDaemonTest { assertThat(res).containsExactlyElementsIn(expected); } + + @Test + public void testWithOverlyDeepRelativeURI() throws Exception { + Project.NameKey p1 = createProject("nested/a"); + Config cfg = new Config(); + cfg.fromText("" + + "[submodule \"a\"]\n" + + "path = a\n" + + "url = ../../" + p1.get() + "\n" + + "branch = master\n"); + + Branch.NameKey targetBranch = new Branch.NameKey( + new Project.NameKey("nested/project"), "master"); + + Set res = new SubmoduleSectionParser( + cfg, THIS_SERVER, targetBranch).parseAllSections(); + + Set expected = Sets.newHashSet( + new SubmoduleSubscription(targetBranch, new Branch.NameKey( + p1, "master"), "a")); + + assertThat(res).containsExactlyElementsIn(expected); + } }