diff options
-rw-r--r-- | routers/web/feed/branch.go | 1 | ||||
-rw-r--r-- | routers/web/feed/file.go | 1 | ||||
-rw-r--r-- | tests/integration/feed_repo_test.go | 35 | ||||
-rw-r--r-- | tests/integration/feed_user_test.go (renamed from tests/integration/api_feed_user_test.go) | 25 |
4 files changed, 61 insertions, 1 deletions
diff --git a/routers/web/feed/branch.go b/routers/web/feed/branch.go index 80ce2ad198..a8a001e0cd 100644 --- a/routers/web/feed/branch.go +++ b/routers/web/feed/branch.go @@ -43,6 +43,7 @@ func ShowBranchFeed(ctx *context.Context, repo *repo.Repository, formatType stri }, Description: commit.Message(), Content: commit.Message(), + Created: commit.Committer.When, }) } diff --git a/routers/web/feed/file.go b/routers/web/feed/file.go index 1ab768ff27..48f87c7c62 100644 --- a/routers/web/feed/file.go +++ b/routers/web/feed/file.go @@ -55,6 +55,7 @@ func ShowFileFeed(ctx *context.Context, repo *repo.Repository, formatType string }, Description: commit.Message(), Content: commit.Message(), + Created: commit.Committer.When, }) } diff --git a/tests/integration/feed_repo_test.go b/tests/integration/feed_repo_test.go new file mode 100644 index 0000000000..132ed32ced --- /dev/null +++ b/tests/integration/feed_repo_test.go @@ -0,0 +1,35 @@ +// Copyright 2025 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package integration + +import ( + "encoding/xml" + "net/http" + "testing" + + "code.gitea.io/gitea/tests" + + "github.com/stretchr/testify/assert" +) + +func TestFeedRepo(t *testing.T) { + t.Run("RSS", func(t *testing.T) { + defer tests.PrepareTestEnv(t)() + + req := NewRequest(t, "GET", "/user2/repo1.rss") + resp := MakeRequest(t, req, http.StatusOK) + + data := resp.Body.String() + assert.Contains(t, data, `<rss version="2.0"`) + + var rss RSS + err := xml.Unmarshal(resp.Body.Bytes(), &rss) + assert.NoError(t, err) + assert.Contains(t, rss.Channel.Link, "/user2/repo1") + assert.NotEmpty(t, rss.Channel.PubDate) + assert.Len(t, rss.Channel.Items, 1) + assert.EqualValues(t, "issue5", rss.Channel.Items[0].Description) + assert.NotEmpty(t, rss.Channel.Items[0].PubDate) + }) +} diff --git a/tests/integration/api_feed_user_test.go b/tests/integration/feed_user_test.go index c44f9a1951..4315c67f48 100644 --- a/tests/integration/api_feed_user_test.go +++ b/tests/integration/feed_user_test.go @@ -4,6 +4,7 @@ package integration import ( + "encoding/xml" "net/http" "testing" @@ -12,7 +13,23 @@ import ( "github.com/stretchr/testify/assert" ) -func TestFeed(t *testing.T) { +// RSS is a struct to unmarshal RSS feeds test only +type RSS struct { + Channel struct { + Title string `xml:"title"` + Link string `xml:"link"` + Description string `xml:"description"` + PubDate string `xml:"pubDate"` + Items []struct { + Title string `xml:"title"` + Link string `xml:"link"` + Description string `xml:"description"` + PubDate string `xml:"pubDate"` + } `xml:"item"` + } `xml:"channel"` +} + +func TestFeedUser(t *testing.T) { t.Run("User", func(t *testing.T) { t.Run("Atom", func(t *testing.T) { defer tests.PrepareTestEnv(t)() @@ -32,6 +49,12 @@ func TestFeed(t *testing.T) { data := resp.Body.String() assert.Contains(t, data, `<rss version="2.0"`) + + var rss RSS + err := xml.Unmarshal(resp.Body.Bytes(), &rss) + assert.NoError(t, err) + assert.Contains(t, rss.Channel.Link, "/user2") + assert.NotEmpty(t, rss.Channel.PubDate) }) }) } |