Correctly link URLs to users/repos with dashes, dots or underscores (#18890)
* Add tests for references with dashes This commit adds tests for full URLs referencing repos names and user names containing a dash. * Extend regex to match URLs to repos/users with dashes
This commit is contained in:
		
							parent
							
								
									9d7a431b71
								
							
						
					
					
						commit
						fd273b05b9
					
				|  | @ -99,7 +99,7 @@ var issueFullPatternOnce sync.Once | |||
| func getIssueFullPattern() *regexp.Regexp { | ||||
| 	issueFullPatternOnce.Do(func() { | ||||
| 		issueFullPattern = regexp.MustCompile(regexp.QuoteMeta(setting.AppURL) + | ||||
| 			`\w+/\w+/(?:issues|pulls)/((?:\w{1,10}-)?[1-9][0-9]*)([\?|#](\S+)?)?\b`) | ||||
| 			`[\w_.-]+/[\w_.-]+/(?:issues|pulls)/((?:\w{1,10}-)?[1-9][0-9]*)([\?|#](\S+)?)?\b`) | ||||
| 	}) | ||||
| 	return issueFullPattern | ||||
| } | ||||
|  |  | |||
|  | @ -97,6 +97,15 @@ func TestRender_CrossReferences(t *testing.T) { | |||
| 	test( | ||||
| 		"/home/gitea/go-gitea/gitea#12345", | ||||
| 		`<p>/home/gitea/go-gitea/gitea#12345</p>`) | ||||
| 	test( | ||||
| 		util.URLJoin(TestAppURL, "gogitea", "gitea", "issues", "12345"), | ||||
| 		`<p><a href="`+util.URLJoin(TestAppURL, "gogitea", "gitea", "issues", "12345")+`" class="ref-issue" rel="nofollow">gogitea/gitea#12345</a></p>`) | ||||
| 	test( | ||||
| 		util.URLJoin(TestAppURL, "go-gitea", "gitea", "issues", "12345"), | ||||
| 		`<p><a href="`+util.URLJoin(TestAppURL, "go-gitea", "gitea", "issues", "12345")+`" class="ref-issue" rel="nofollow">go-gitea/gitea#12345</a></p>`) | ||||
| 	test( | ||||
| 		util.URLJoin(TestAppURL, "gogitea", "some-repo-name", "issues", "12345"), | ||||
| 		`<p><a href="`+util.URLJoin(TestAppURL, "gogitea", "some-repo-name", "issues", "12345")+`" class="ref-issue" rel="nofollow">gogitea/some-repo-name#12345</a></p>`) | ||||
| } | ||||
| 
 | ||||
| func TestMisc_IsSameDomain(t *testing.T) { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue