parent
1177a19a5b
commit
561f459364
2 changed files with 8 additions and 2 deletions
|
@ -129,8 +129,8 @@ func URLJoin(base string, elems ...string) string {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
joinedURL := baseURL.ResolveReference(argURL).String()
|
joinedURL := baseURL.ResolveReference(argURL).String()
|
||||||
if !baseURL.IsAbs() {
|
if !baseURL.IsAbs() && !strings.HasPrefix(base, "/") {
|
||||||
return joinedURL[1:] // Removing leading '/'
|
return joinedURL[1:] // Removing leading '/' if needed
|
||||||
}
|
}
|
||||||
return joinedURL
|
return joinedURL
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,6 +85,12 @@ func TestURLJoin(t *testing.T) {
|
||||||
"a/", "b/c/", "/../d/"),
|
"a/", "b/c/", "/../d/"),
|
||||||
newTest("https://try.gitea.io/a/b/c#d",
|
newTest("https://try.gitea.io/a/b/c#d",
|
||||||
"https://try.gitea.io", "a/b", "c#d"),
|
"https://try.gitea.io", "a/b", "c#d"),
|
||||||
|
newTest("/a/b/d",
|
||||||
|
"/a/", "b/c/", "/../d/"),
|
||||||
|
newTest("/a/b/c",
|
||||||
|
"/a", "b/c/"),
|
||||||
|
newTest("/a/b/c#hash",
|
||||||
|
"/a", "b/c#hash"),
|
||||||
} {
|
} {
|
||||||
assert.Equal(t, test.Expected, URLJoin(test.Base, test.Elements...))
|
assert.Equal(t, test.Expected, URLJoin(test.Base, test.Elements...))
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue