mirror of
https://github.com/go-gitea/gitea.git
synced 2024-05-11 05:55:29 +00:00
Improve issue autolinks (#6273)
* Improve issue autolinks Update autolinks to match what github does here: Issue in same repo: #1 Issue in different repo: org/repo#1 Fixes #6264 * Use setting.AppURL when parsing URL Using setting.AppURL here is a more reliable way of parsing the current URL and what other functions in this file seem to use. * Make ComposeMetas always return a valid context * Add per repository markdown renderers for better context * Update for use of context metas Now that we include the user and repo name inside context metas, update various code and tests for this new logic
This commit is contained in:
@ -53,6 +53,12 @@ var alphanumericMetas = map[string]string{
|
||||
"style": IssueNameStyleAlphanumeric,
|
||||
}
|
||||
|
||||
// these values should match the Repo const above
|
||||
var localMetas = map[string]string{
|
||||
"user": "gogits",
|
||||
"repo": "gogs",
|
||||
}
|
||||
|
||||
func TestRender_IssueIndexPattern(t *testing.T) {
|
||||
// numeric: render inputs without valid mentions
|
||||
test := func(s string) {
|
||||
@ -91,7 +97,7 @@ func TestRender_IssueIndexPattern2(t *testing.T) {
|
||||
links[i] = numericIssueLink(util.URLJoin(setting.AppSubURL, "issues"), index)
|
||||
}
|
||||
expectedNil := fmt.Sprintf(expectedFmt, links...)
|
||||
testRenderIssueIndexPattern(t, s, expectedNil, nil)
|
||||
testRenderIssueIndexPattern(t, s, expectedNil, &postProcessCtx{metas: localMetas})
|
||||
|
||||
for i, index := range indices {
|
||||
links[i] = numericIssueLink("https://someurl.com/someUser/someRepo/", index)
|
||||
@ -171,6 +177,7 @@ func testRenderIssueIndexPattern(t *testing.T, input, expected string, ctx *post
|
||||
if ctx.urlPrefix == "" {
|
||||
ctx.urlPrefix = AppSubURL
|
||||
}
|
||||
|
||||
res, err := ctx.postProcess([]byte(input))
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, expected, string(res))
|
||||
@ -181,10 +188,10 @@ func TestRender_AutoLink(t *testing.T) {
|
||||
setting.AppSubURL = AppSubURL
|
||||
|
||||
test := func(input, expected string) {
|
||||
buffer, err := PostProcess([]byte(input), setting.AppSubURL, nil, false)
|
||||
buffer, err := PostProcess([]byte(input), setting.AppSubURL, localMetas, false)
|
||||
assert.Equal(t, err, nil)
|
||||
assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(string(buffer)))
|
||||
buffer, err = PostProcess([]byte(input), setting.AppSubURL, nil, true)
|
||||
buffer, err = PostProcess([]byte(input), setting.AppSubURL, localMetas, true)
|
||||
assert.Equal(t, err, nil)
|
||||
assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(string(buffer)))
|
||||
}
|
||||
@ -214,6 +221,7 @@ func TestRender_FullIssueURLs(t *testing.T) {
|
||||
if ctx.urlPrefix == "" {
|
||||
ctx.urlPrefix = AppSubURL
|
||||
}
|
||||
ctx.metas = localMetas
|
||||
result, err := ctx.postProcess([]byte(input))
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, expected, string(result))
|
||||
@ -221,9 +229,11 @@ func TestRender_FullIssueURLs(t *testing.T) {
|
||||
test("Here is a link https://git.osgeo.org/gogs/postgis/postgis/pulls/6",
|
||||
"Here is a link https://git.osgeo.org/gogs/postgis/postgis/pulls/6")
|
||||
test("Look here http://localhost:3000/person/repo/issues/4",
|
||||
`Look here <a href="http://localhost:3000/person/repo/issues/4">#4</a>`)
|
||||
`Look here <a href="http://localhost:3000/person/repo/issues/4">person/repo#4</a>`)
|
||||
test("http://localhost:3000/person/repo/issues/4#issuecomment-1234",
|
||||
`<a href="http://localhost:3000/person/repo/issues/4#issuecomment-1234">#4</a>`)
|
||||
`<a href="http://localhost:3000/person/repo/issues/4#issuecomment-1234">person/repo#4</a>`)
|
||||
test("http://localhost:3000/gogits/gogs/issues/4",
|
||||
`<a href="http://localhost:3000/gogits/gogs/issues/4">#4</a>`)
|
||||
}
|
||||
|
||||
func TestRegExp_issueNumericPattern(t *testing.T) {
|
||||
|
Reference in New Issue
Block a user