mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-08-22 04:28:06 +02:00
Hello, It is more idiomatic to put the date/time before the action in Mandarin (in this context). To achieve this, instead of having the time following the string that's passed to the translating function, I added it as a parameter so that one can reference it and reorder the sentence for better translatability. Only Traditional Chinese has been changed at the time of opening this PR, as this is more of a proof of concept and I would like to have feedbacks on whether this is a good solution or is there a better alternative. Thank you and have a nice day :) Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/3837 Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org> Reviewed-by: 0ko <0ko@noreply.codeberg.org> Co-authored-by: Léana 江 <leana.jiang+git@icloud.com> Co-committed-by: Léana 江 <leana.jiang+git@icloud.com>
71 lines
1.7 KiB
Go
71 lines
1.7 KiB
Go
package integration
|
|
|
|
import (
|
|
"net/http"
|
|
"net/url"
|
|
"path"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/PuerkitoBio/goquery"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestRepoLastUpdatedTime(t *testing.T) {
|
|
onGiteaRun(t, func(t *testing.T, u *url.URL) {
|
|
user := "user2"
|
|
session := loginUser(t, user)
|
|
|
|
req := NewRequest(t, "GET", path.Join("explore", "repos"))
|
|
resp := session.MakeRequest(t, req, http.StatusOK)
|
|
doc := NewHTMLParser(t, resp.Body)
|
|
node := doc.doc.Find(".flex-item-body").First()
|
|
|
|
{
|
|
buf := ""
|
|
findTextNonNested(t, node, &buf)
|
|
assert.Equal(t, "Updated", strings.TrimSpace(buf))
|
|
}
|
|
|
|
// Relative time should be present as a descendent
|
|
{
|
|
relativeTime := node.Find("relative-time").Text()
|
|
assert.Equal(t, true, strings.HasPrefix(relativeTime, "19")) // ~1970, might underflow with timezone
|
|
}
|
|
})
|
|
}
|
|
|
|
func TestBranchLastUpdatedTime(t *testing.T) {
|
|
onGiteaRun(t, func(t *testing.T, u *url.URL) {
|
|
user := "user2"
|
|
repo := "repo1"
|
|
session := loginUser(t, user)
|
|
|
|
req := NewRequest(t, "GET", path.Join(user, repo, "branches"))
|
|
resp := session.MakeRequest(t, req, http.StatusOK)
|
|
doc := NewHTMLParser(t, resp.Body)
|
|
node := doc.doc.Find("p:has(span.commit-message)")
|
|
|
|
{
|
|
buf := ""
|
|
findTextNonNested(t, node, &buf)
|
|
assert.Equal(t, true, strings.Contains(buf, "Updated"))
|
|
}
|
|
|
|
{
|
|
relativeTime := node.Find("relative-time").Text()
|
|
assert.Equal(t, true, strings.HasPrefix(relativeTime, "2017"))
|
|
}
|
|
})
|
|
}
|
|
|
|
// Find all text that are direct descendents
|
|
func findTextNonNested(t *testing.T, n *goquery.Selection, buf *string) {
|
|
t.Helper()
|
|
|
|
n.Contents().Each(func(i int, s *goquery.Selection) {
|
|
if goquery.NodeName(s) == "#text" {
|
|
*buf += s.Text()
|
|
}
|
|
})
|
|
}
|