Fix AppFullLink (#37325) (#37328)

Backport #37325 by @lunny

Fix a bug the checkout command line hint become `git fetch -u
https://gitea.combircni/tea`

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
Giteabot
2026-04-21 10:04:01 +08:00
committed by GitHub
parent adfa535dc2
commit f0fd185f14
2 changed files with 15 additions and 1 deletions

View File

@@ -81,5 +81,5 @@ func (c TemplateContext) AppFullLink(link ...string) template.URL {
if len(link) == 0 {
return template.URL(s)
}
return template.URL(s + strings.TrimPrefix(link[0], "/"))
return template.URL(s + "/" + strings.TrimPrefix(link[0], "/"))
}

View File

@@ -49,3 +49,17 @@ func TestRedirectToCurrentSite(t *testing.T) {
})
}
}
func TestAppFullLink(t *testing.T) {
setting.IsInTesting = true
defer test.MockVariableValue(&setting.AppURL, "https://gitea.example.com/sub/")()
defer test.MockVariableValue(&setting.AppSubURL, "/sub")()
defer test.MockVariableValue(&setting.PublicURLDetection, setting.PublicURLNever)()
req := httptest.NewRequest(http.MethodGet, "https://gitea.example.com/sub/", nil)
tmplCtx := NewTemplateContext(req.Context(), req)
assert.Equal(t, "https://gitea.example.com/sub", string(tmplCtx.AppFullLink()))
assert.Equal(t, "https://gitea.example.com/sub/user/repo", string(tmplCtx.AppFullLink("user/repo")))
assert.Equal(t, "https://gitea.example.com/sub/user/repo", string(tmplCtx.AppFullLink("/user/repo")))
}