diff --git a/templates/user/dashboard/feeds.tmpl b/templates/user/dashboard/feeds.tmpl
index bd2a3800a2..85ae7266d9 100644
--- a/templates/user/dashboard/feeds.tmpl
+++ b/templates/user/dashboard/feeds.tmpl
@@ -103,11 +103,11 @@
{{ctx.Locale.Tr "action.compare_commits" $push.Len}} ยป
{{end}}
{{else if .GetOpType.InActions "create_issue"}}
- {{index .GetIssueInfos 1 | RenderEmoji $.Context | RenderCodeBlock}}
+ {{RenderIssueTitle ctx (index .GetIssueInfos 1) (.Repo.ComposeMetas ctx)}}
{{else if .GetOpType.InActions "create_pull_request"}}
- {{index .GetIssueInfos 1 | RenderEmoji $.Context | RenderCodeBlock}}
+ {{RenderIssueTitle ctx (index .GetIssueInfos 1) (.Repo.ComposeMetas ctx)}}
{{else if .GetOpType.InActions "comment_issue" "approve_pull_request" "reject_pull_request" "comment_pull"}}
- {{(.GetIssueTitle ctx) | RenderEmoji $.Context | RenderCodeBlock}}
+ {{RenderIssueTitle ctx (.GetIssueTitle ctx) (.Repo.ComposeMetas ctx)}}
{{$comment := index .GetIssueInfos 1}}
{{if $comment}}
{{RenderMarkdownToHtml ctx $comment}}
@@ -115,7 +115,7 @@
{{else if .GetOpType.InActions "merge_pull_request"}}
{{index .GetIssueInfos 1}}
{{else if .GetOpType.InActions "close_issue" "reopen_issue" "close_pull_request" "reopen_pull_request"}}
- {{(.GetIssueTitle ctx) | RenderEmoji $.Context | RenderCodeBlock}}
+ {{RenderIssueTitle ctx (.GetIssueTitle ctx) (.Repo.ComposeMetas ctx)}}
{{else if .GetOpType.InActions "pull_review_dismissed"}}
{{ctx.Locale.Tr "action.review_dismissed_reason"}}
{{index .GetIssueInfos 2 | RenderEmoji $.Context}}
diff --git a/tests/integration/pull_icon_test.go b/tests/integration/pull_icon_test.go
index 8fde547ce9..b678550c30 100644
--- a/tests/integration/pull_icon_test.go
+++ b/tests/integration/pull_icon_test.go
@@ -133,7 +133,7 @@ func testPullRequestListIcon(t *testing.T, doc *HTMLDoc, name, expectedColor, ex
}
func createOpenPullRequest(ctx context.Context, t *testing.T, user *user_model.User, repo *repo_model.Repository) *issues_model.PullRequest {
- pull := createPullRequest(t, user, repo, "open")
+ pull := createPullRequest(t, user, repo, "branch-open", "open")
assert.False(t, pull.Issue.IsClosed)
assert.False(t, pull.HasMerged)
@@ -143,7 +143,7 @@ func createOpenPullRequest(ctx context.Context, t *testing.T, user *user_model.U
}
func createOpenWipPullRequest(ctx context.Context, t *testing.T, user *user_model.User, repo *repo_model.Repository) *issues_model.PullRequest {
- pull := createPullRequest(t, user, repo, "open-wip")
+ pull := createPullRequest(t, user, repo, "branch-open-wip", "open-wip")
err := issue_service.ChangeTitle(ctx, pull.Issue, user, "WIP: "+pull.Issue.Title)
require.NoError(t, err)
@@ -156,7 +156,7 @@ func createOpenWipPullRequest(ctx context.Context, t *testing.T, user *user_mode
}
func createClosedPullRequest(ctx context.Context, t *testing.T, user *user_model.User, repo *repo_model.Repository) *issues_model.PullRequest {
- pull := createPullRequest(t, user, repo, "closed")
+ pull := createPullRequest(t, user, repo, "branch-closed", "closed")
err := issue_service.ChangeStatus(ctx, pull.Issue, user, "", true)
require.NoError(t, err)
@@ -169,7 +169,7 @@ func createClosedPullRequest(ctx context.Context, t *testing.T, user *user_model
}
func createClosedWipPullRequest(ctx context.Context, t *testing.T, user *user_model.User, repo *repo_model.Repository) *issues_model.PullRequest {
- pull := createPullRequest(t, user, repo, "closed-wip")
+ pull := createPullRequest(t, user, repo, "branch-closed-wip", "closed-wip")
err := issue_service.ChangeTitle(ctx, pull.Issue, user, "WIP: "+pull.Issue.Title)
require.NoError(t, err)
@@ -185,7 +185,7 @@ func createClosedWipPullRequest(ctx context.Context, t *testing.T, user *user_mo
}
func createMergedPullRequest(ctx context.Context, t *testing.T, user *user_model.User, repo *repo_model.Repository) *issues_model.PullRequest {
- pull := createPullRequest(t, user, repo, "merged")
+ pull := createPullRequest(t, user, repo, "branch-merged", "merged")
gitRepo, err := git.OpenRepository(ctx, repo.RepoPath())
defer gitRepo.Close()
@@ -202,10 +202,7 @@ func createMergedPullRequest(ctx context.Context, t *testing.T, user *user_model
return pull
}
-func createPullRequest(t *testing.T, user *user_model.User, repo *repo_model.Repository, name string) *issues_model.PullRequest {
- branch := "branch-" + name
- title := "Testing " + name
-
+func createPullRequest(t *testing.T, user *user_model.User, repo *repo_model.Repository, branch, title string) *issues_model.PullRequest {
_, err := files_service.ChangeRepoFiles(git.DefaultContext, repo, user, &files_service.ChangeRepoFilesOptions{
Files: []*files_service.ChangeRepoFile{
{
diff --git a/tests/integration/pull_review_test.go b/tests/integration/pull_review_test.go
index 1319db29bf..e1db171f16 100644
--- a/tests/integration/pull_review_test.go
+++ b/tests/integration/pull_review_test.go
@@ -518,7 +518,7 @@ func TestPullView_GivenApproveOrRejectReviewOnClosedPR(t *testing.T) {
resp := testPullCreate(t, user1Session, "user1", "repo1", false, "master", "a-test-branch", "This is a pull title")
elem := strings.Split(test.RedirectURL(resp), "/")
assert.EqualValues(t, "pulls", elem[3])
- testIssueClose(t, user1Session, elem[1], elem[2], elem[4])
+ testIssueClose(t, user1Session, elem[1], elem[2], elem[4], true)
// Get the commit SHA
pr := unittest.AssertExistsAndLoadBean(t, &issues_model.PullRequest{
@@ -579,8 +579,12 @@ func testSubmitReview(t *testing.T, session *TestSession, csrf, owner, repo, pul
return session.MakeRequest(t, req, expectedSubmitStatus)
}
-func testIssueClose(t *testing.T, session *TestSession, owner, repo, issueNumber string) *httptest.ResponseRecorder {
- req := NewRequest(t, "GET", path.Join(owner, repo, "pulls", issueNumber))
+func testIssueClose(t *testing.T, session *TestSession, owner, repo, issueNumber string, isPull bool) *httptest.ResponseRecorder {
+ issueType := "issues"
+ if isPull {
+ issueType = "pulls"
+ }
+ req := NewRequest(t, "GET", path.Join(owner, repo, issueType, issueNumber))
resp := session.MakeRequest(t, req, http.StatusOK)
htmlDoc := NewHTMLParser(t, resp.Body)
diff --git a/tests/integration/user_dashboard_test.go b/tests/integration/user_dashboard_test.go
index abc3e065d9..0ed5193c48 100644
--- a/tests/integration/user_dashboard_test.go
+++ b/tests/integration/user_dashboard_test.go
@@ -5,12 +5,21 @@ package integration
import (
"net/http"
+ "net/url"
+ "strconv"
"strings"
"testing"
+ "code.gitea.io/gitea/models/db"
+ unit_model "code.gitea.io/gitea/models/unit"
"code.gitea.io/gitea/models/unittest"
+ user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/translation"
+ issue_service "code.gitea.io/gitea/services/issue"
+ files_service "code.gitea.io/gitea/services/repository/files"
+ "code.gitea.io/gitea/tests"
+ "github.com/PuerkitoBio/goquery"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@@ -28,3 +37,45 @@ func TestUserDashboardActionLinks(t *testing.T) {
assert.EqualValues(t, locale.TrString("new_migrate.link"), strings.TrimSpace(links.Find("a[href='/repo/migrate']").Text()))
assert.EqualValues(t, locale.TrString("new_org.link"), strings.TrimSpace(links.Find("a[href='/org/create']").Text()))
}
+
+func TestDashboardTitleRendering(t *testing.T) {
+ onGiteaRun(t, func(t *testing.T, u *url.URL) {
+ user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4})
+ sess := loginUser(t, user4.Name)
+
+ repo, _, f := tests.CreateDeclarativeRepo(t, user4, "",
+ []unit_model.Type{unit_model.TypePullRequests, unit_model.TypeIssues}, nil,
+ []*files_service.ChangeRepoFile{
+ {
+ Operation: "create",
+ TreePath: "test.txt",
+ ContentReader: strings.NewReader("Just some text here"),
+ },
+ },
+ )
+ defer f()
+
+ issue := createIssue(t, user4, repo, "`:exclamation:` not rendered", "Hi there!")
+ pr := createPullRequest(t, user4, repo, "testing", "`:exclamation:` not rendered")
+
+ _, err := issue_service.CreateIssueComment(db.DefaultContext, user4, repo, issue, "hi", nil)
+ require.NoError(t, err)
+
+ _, err = issue_service.CreateIssueComment(db.DefaultContext, user4, repo, pr.Issue, "hi", nil)
+ require.NoError(t, err)
+
+ testIssueClose(t, sess, repo.OwnerName, repo.Name, strconv.Itoa(int(issue.Index)), false)
+ testIssueClose(t, sess, repo.OwnerName, repo.Name, strconv.Itoa(int(pr.Issue.Index)), true)
+
+ response := sess.MakeRequest(t, NewRequest(t, "GET", "/"), http.StatusOK)
+ htmlDoc := NewHTMLParser(t, response.Body)
+
+ count := 0
+ htmlDoc.doc.Find("#activity-feed .flex-item-main .title").Each(func(i int, s *goquery.Selection) {
+ count++
+ assert.EqualValues(t, ":exclamation: not rendered", s.Text())
+ })
+
+ assert.EqualValues(t, 6, count)
+ })
+}