forked from forgejo/forgejo
Populate URL field of API commits (#3546)
* Populate URL field of API commits * fix orgmode_test
This commit is contained in:
parent
7b297808ce
commit
7b104f0cd0
11 changed files with 126 additions and 98 deletions
|
@ -13,6 +13,7 @@ import (
|
|||
. "code.gitea.io/gitea/modules/markup"
|
||||
_ "code.gitea.io/gitea/modules/markup/markdown"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/modules/util"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
@ -37,12 +38,12 @@ var alphanumericMetas = map[string]string{
|
|||
|
||||
// numericLink an HTML to a numeric-style issue
|
||||
func numericIssueLink(baseURL string, index int) string {
|
||||
return link(URLJoin(baseURL, strconv.Itoa(index)), fmt.Sprintf("#%d", index))
|
||||
return link(util.URLJoin(baseURL, strconv.Itoa(index)), fmt.Sprintf("#%d", index))
|
||||
}
|
||||
|
||||
// alphanumLink an HTML link to an alphanumeric-style issue
|
||||
func alphanumIssueLink(baseURL string, name string) string {
|
||||
return link(URLJoin(baseURL, name), name)
|
||||
return link(util.URLJoin(baseURL, name), name)
|
||||
}
|
||||
|
||||
// urlContentsLink an HTML link whose contents is the target URL
|
||||
|
@ -63,31 +64,6 @@ func testRenderIssueIndexPattern(t *testing.T, input, expected string, opts Rend
|
|||
assert.Equal(t, expected, actual)
|
||||
}
|
||||
|
||||
func TestURLJoin(t *testing.T) {
|
||||
type test struct {
|
||||
Expected string
|
||||
Base string
|
||||
Elements []string
|
||||
}
|
||||
newTest := func(expected, base string, elements ...string) test {
|
||||
return test{Expected: expected, Base: base, Elements: elements}
|
||||
}
|
||||
for _, test := range []test{
|
||||
newTest("https://try.gitea.io/a/b/c",
|
||||
"https://try.gitea.io", "a/b", "c"),
|
||||
newTest("https://try.gitea.io/a/b/c",
|
||||
"https://try.gitea.io/", "/a/b/", "/c/"),
|
||||
newTest("https://try.gitea.io/a/c",
|
||||
"https://try.gitea.io/", "/a/./b/", "../c/"),
|
||||
newTest("a/b/c",
|
||||
"a", "b/c/"),
|
||||
newTest("a/b/d",
|
||||
"a/", "b/c/", "/../d/"),
|
||||
} {
|
||||
assert.Equal(t, test.Expected, URLJoin(test.Base, test.Elements...))
|
||||
}
|
||||
}
|
||||
|
||||
func TestRender_IssueIndexPattern(t *testing.T) {
|
||||
// numeric: render inputs without valid mentions
|
||||
test := func(s string) {
|
||||
|
@ -123,7 +99,7 @@ func TestRender_IssueIndexPattern2(t *testing.T) {
|
|||
test := func(s, expectedFmt string, indices ...int) {
|
||||
links := make([]interface{}, len(indices))
|
||||
for i, index := range indices {
|
||||
links[i] = numericIssueLink(URLJoin(setting.AppSubURL, "issues"), index)
|
||||
links[i] = numericIssueLink(util.URLJoin(setting.AppSubURL, "issues"), index)
|
||||
}
|
||||
expectedNil := fmt.Sprintf(expectedFmt, links...)
|
||||
testRenderIssueIndexPattern(t, s, expectedNil, RenderIssueIndexPatternOptions{})
|
||||
|
@ -228,8 +204,8 @@ func TestRender_AutoLink(t *testing.T) {
|
|||
}
|
||||
|
||||
// render valid issue URLs
|
||||
test(URLJoin(setting.AppSubURL, "issues", "3333"),
|
||||
numericIssueLink(URLJoin(setting.AppSubURL, "issues"), 3333))
|
||||
test(util.URLJoin(setting.AppSubURL, "issues", "3333"),
|
||||
numericIssueLink(util.URLJoin(setting.AppSubURL, "issues"), 3333))
|
||||
|
||||
// render external issue URLs
|
||||
for _, externalURL := range []string{
|
||||
|
@ -240,7 +216,7 @@ func TestRender_AutoLink(t *testing.T) {
|
|||
}
|
||||
|
||||
// render valid commit URLs
|
||||
tmp := URLJoin(AppSubURL, "commit", "d8a994ef243349f321568f9e36d5c3f444b99cae")
|
||||
tmp := util.URLJoin(AppSubURL, "commit", "d8a994ef243349f321568f9e36d5c3f444b99cae")
|
||||
test(tmp, "<a href=\""+tmp+"\">d8a994ef24</a>")
|
||||
tmp += "#diff-2"
|
||||
test(tmp, "<a href=\""+tmp+"\">d8a994ef24 (diff-2)</a>")
|
||||
|
@ -260,8 +236,8 @@ func TestRender_Commits(t *testing.T) {
|
|||
}
|
||||
|
||||
var sha = "b6dd6210eaebc915fd5be5579c58cce4da2e2579"
|
||||
var commit = URLJoin(AppSubURL, "commit", sha)
|
||||
var subtree = URLJoin(commit, "src")
|
||||
var commit = util.URLJoin(AppSubURL, "commit", sha)
|
||||
var subtree = util.URLJoin(commit, "src")
|
||||
var tree = strings.Replace(subtree, "/commit/", "/tree/", -1)
|
||||
var src = strings.Replace(subtree, "/commit/", "/src/", -1)
|
||||
|
||||
|
@ -284,10 +260,10 @@ func TestRender_CrossReferences(t *testing.T) {
|
|||
|
||||
test(
|
||||
"gogits/gogs#12345",
|
||||
`<p><a href="`+URLJoin(AppURL, "gogits", "gogs", "issues", "12345")+`" rel="nofollow">gogits/gogs#12345</a></p>`)
|
||||
`<p><a href="`+util.URLJoin(AppURL, "gogits", "gogs", "issues", "12345")+`" rel="nofollow">gogits/gogs#12345</a></p>`)
|
||||
test(
|
||||
"go-gitea/gitea#12345",
|
||||
`<p><a href="`+URLJoin(AppURL, "go-gitea", "gitea", "issues", "12345")+`" rel="nofollow">go-gitea/gitea#12345</a></p>`)
|
||||
`<p><a href="`+util.URLJoin(AppURL, "go-gitea", "gitea", "issues", "12345")+`" rel="nofollow">go-gitea/gitea#12345</a></p>`)
|
||||
}
|
||||
|
||||
func TestRender_FullIssueURLs(t *testing.T) {
|
||||
|
@ -482,7 +458,7 @@ func TestMisc_IsSameDomain(t *testing.T) {
|
|||
setting.AppSubURL = AppSubURL
|
||||
|
||||
var sha = "b6dd6210eaebc915fd5be5579c58cce4da2e2579"
|
||||
var commit = URLJoin(AppSubURL, "commit", sha)
|
||||
var commit = util.URLJoin(AppSubURL, "commit", sha)
|
||||
|
||||
assert.True(t, IsSameDomain(commit))
|
||||
assert.False(t, IsSameDomain("http://google.com/ncr"))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue