mirror of
https://codeberg.org/davrot/forgejo.git
synced 2025-06-24 11:00:02 +02:00

## Checklist - [x] go to the last cherry-pick PR (forgejo/forgejo#8040) to figure out how far it went: [gitea@d5bbaee64e](d5bbaee64e
) - [x] cherry-pick and open PR (forgejo/forgejo#8198) - [ ] have the PR pass the CI - end-to-end (specially important if there are actions related changes) - [ ] add `run-end-to-end` label - [ ] check the result - [ ] write release notes - [ ] assign reviewers - [ ] 48h later, last call - merge 1 hour after the last call ## Legend - ❓ - No decision about the commit has been made. - 🍒 - The commit has been cherry picked. - ⏩ - The commit has been skipped. - 💡 - The commit has been skipped, but should be ported to Forgejo. - ✍️ - The commit has been skipped, and a port to Forgejo already exists. ## Commits - 🍒 [`gitea`](17cfae82a5
) -> [`forgejo`](6397da88d3
) Hide href attribute of a tag if there is no target_url ([gitea#34556](https://github.com/go-gitea/gitea/pull/34556)) - 🍒 [`gitea`](b408bf2f0b
) -> [`forgejo`](46bc899d57
) Fix: skip paths check on tag push events in workflows ([gitea#34602](https://github.com/go-gitea/gitea/pull/34602)) - 🍒 [`gitea`](9165ea8713
) -> [`forgejo`](04332f31bf
) Only activity tab needs heatmap data loading ([gitea#34652](https://github.com/go-gitea/gitea/pull/34652)) - 🍒 [`gitea`](3f7dbbdaf1
) -> [`forgejo`](2a9019fd04
) Small fix in Pull Requests page ([gitea#34612](https://github.com/go-gitea/gitea/pull/34612)) - 🍒 [`gitea`](497b83b75d
) -> [`forgejo`](9a83cc7bad
) Fix migration pull request title too long ([gitea#34577](https://github.com/go-gitea/gitea/pull/34577)) ## TODO - 💡 [`gitea`](6b8b580218
) Refactor container and UI ([gitea#34736](https://github.com/go-gitea/gitea/pull/34736)) Packages: Fix for container, needs careful merge. ------ - 💡 [`gitea`](bbee652e29
) Prevent duplicate form submissions when creating forks ([gitea#34714](https://github.com/go-gitea/gitea/pull/34714)) Fork: Fix, needs careful merge. ------ - 💡 [`gitea`](d21ce9fa07
) Improve the performance when detecting the file editable ([gitea#34653](https://github.com/go-gitea/gitea/pull/34653)) LFS: Performance improvement - needs careful merge. ------ - 💡 [`gitea`](8fed27bf6a
) Fix various problems ([gitea#34708](https://github.com/go-gitea/gitea/pull/34708)) Various: Fixes, tests missing. ------ - 💡 [`gitea`](c9505a26b9
) Improve instance wide ssh commit signing ([gitea#34341](https://github.com/go-gitea/gitea/pull/34341)) CodeSign: Nice feature - needs careful merge. ------ - 💡 [`gitea`](fbc3796f9e
) Fix pull requests API convert panic when head repository is deleted. ([gitea#34685](https://github.com/go-gitea/gitea/pull/34685)) Pull: Fix, needs careful merge. ------ - 💡 [`gitea`](1610a63bfd
) Fix commit message rendering and some UI problems ([gitea#34680](https://github.com/go-gitea/gitea/pull/34680)) Various Fixes - needs carefull merge. ------ - 💡 [`gitea`](0082cb51fa
) Fix last admin check when syncing users ([gitea#34649](https://github.com/go-gitea/gitea/pull/34649)) oidc: fix "first user is always admin". Needs careful merge. ------ - 💡 [`gitea`](c6b2cbd75d
) Fix footnote jump behavior on the issue page. ([gitea#34621](https://github.com/go-gitea/gitea/pull/34621)) Issues: Fix Markdown rendering. Needs carefull merge ------ - 💡 [`gitea`](7a59f5a825
) Ignore "Close" error when uploading container blob ([gitea#34620](https://github.com/go-gitea/gitea/pull/34620)) No issue, no test. ------ - 💡 [`gitea`](6d0b24064a
) Keeping consistent between UI and API about combined commit status state and fix some bugs ([gitea#34562](https://github.com/go-gitea/gitea/pull/34562)) Next PR in Commit-Status story. ------ - 💡 [`gitea`](f6041441ee
) Refactor FindOrgOptions to use enum instead of bool, fix membership visibility ([gitea#34629](https://github.com/go-gitea/gitea/pull/34629)) Just for a common sense here: How should I consider refactorings? ------ - 💡 [`gitea`](cc942e2a86
) Fix GetUsersByEmails ([gitea#34643](https://github.com/go-gitea/gitea/pull/34643)) User: Seems to fix email validation - but seems not to be finished. ------ - 💡 [`gitea`](7fa5a88831
) Add `--color-logo` for text that should match logo color ([gitea#34639](https://github.com/go-gitea/gitea/pull/34639)) UI: Nice idea - can we adapt this? ------ - 💡 [`gitea`](47d69b7749
) Validate hex colors when creating/editing labels ([gitea#34623](https://github.com/go-gitea/gitea/pull/34623)) Label: Color validation but needs careful merge. ------ - 💡 [`gitea`](108db0b04f
) Fix possible pull request broken when leave the page immediately after clicking the update button ([gitea#34509](https://github.com/go-gitea/gitea/pull/34509)) Nice fix for a bug hard to trace down. Needs careful merge & think about whether a test is possible. ------ - 💡 [`gitea`](79cc369892
) Fix issue label delete incorrect labels webhook payload ([gitea#34575](https://github.com/go-gitea/gitea/pull/34575)) Small fix but would expect a test, showing what was fixed. ------ - 💡 [`gitea`](fe57ee3074
) fixed incorrect page navigation with up and down arrow on last item of dashboard repos ([gitea#34570](https://github.com/go-gitea/gitea/pull/34570)) Small & simple - but tests are missing. ------ - 💡 [`gitea`](4e471487fb
) Remove unnecessary duplicate code ([gitea#34552](https://github.com/go-gitea/gitea/pull/34552)) Fix arround "Split GetLatestCommitStatus". ------ - 💡 [`gitea`](c5e78fc7ad
) Do not mutate incoming options to SearchRepositoryByName ([gitea#34553](https://github.com/go-gitea/gitea/pull/34553)) Large refactoring to simplify options handling. But needs careful merge. ------ - 💡 [`gitea`](f48c0135a6
) Fix/improve avatar sync from LDAP ([gitea#34573](https://github.com/go-gitea/gitea/pull/34573)) Nice fix but needs test. ------ - 💡 [`gitea`](e8d8984f7c
) Fix some trivial problems ([gitea#34579](https://github.com/go-gitea/gitea/pull/34579)) Various fixes, tests missing. ------ ## Skipped - ⏩ [`gitea`](637070e07b
) Fix container range bug ([gitea#34725](https://github.com/go-gitea/gitea/pull/34725)) ------ - ⏩ [`gitea`](0d3e9956cd
) [skip ci] Updated translations via Crowdin ------ - ⏩ [`gitea`](28debdbe00
) [skip ci] Updated translations via Crowdin ------ - ⏩ [`gitea`](dcc9206a59
) Raise minimum Node.js version to 20, test on 24 ([gitea#34713](https://github.com/go-gitea/gitea/pull/34713)) ------ - ⏩ [`gitea`](bc28654b49
) [skip ci] Updated translations via Crowdin ------ - ⏩ [`gitea`](65986f423f
) Refactor embedded assets and drop unnecessary dependencies ([gitea#34692](https://github.com/go-gitea/gitea/pull/34692)) ------ - ⏩ [`gitea`](18bafcc378
) Bump minimum go version to 1.24.4 ([gitea#34699](https://github.com/go-gitea/gitea/pull/34699)) ------ - ⏩ [`gitea`](8d135ef5cf
) Update JS deps ([gitea#34701](https://github.com/go-gitea/gitea/pull/34701)) ------ - ⏩ [`gitea`](d5893ee260
) Fix markdown wrap ([gitea#34697](https://github.com/go-gitea/gitea/pull/34697)) - gitea UI specific specific ------ - ⏩ [`gitea`](06ccb3a1d4
) [skip ci] Updated translations via Crowdin ------ - ⏩ [`gitea`](94db956e31
) frontport changelog ([gitea#34689](https://github.com/go-gitea/gitea/pull/34689)) ------ - ⏩ [`gitea`](d5afdccde8
) [skip ci] Updated translations via Crowdin ------ - ⏩ [`gitea`](e9f5105e95
) Migrate to urfave v3 ([gitea#34510](https://github.com/go-gitea/gitea/pull/34510)) already in Forgejo - see https://codeberg.org/forgejo/forgejo/pulls/8035 ------ - ⏩ [`gitea`](2c341b6803
) [skip ci] Updated translations via Crowdin ------ - ⏩ [`gitea`](92e7e98c56
) Update x/crypto package and make builtin SSH use default parameters ([gitea#34667](https://github.com/go-gitea/gitea/pull/34667)) ------ - ⏩ [`gitea`](7b39c82587
) Fix "oras" OCI client compatibility ([gitea#34666](https://github.com/go-gitea/gitea/pull/34666)) Already in forgejo - see https://codeberg.org/forgejo/forgejo/issues/8070 ------ - ⏩ [`gitea`](1fe652cd26
) [skip ci] Updated translations via Crowdin ------ - ⏩ [`gitea`](a9a705f4db
) Fix missed merge commit sha and time when migrating from codecommit ([gitea#34645](https://github.com/go-gitea/gitea/pull/34645)) Migration: Seems to be an important fix, but no tests. As I know @earl-warren worked hard on migration, is this still relevant to us? ------ - ⏩ [`gitea`](1e0758a9f1
) [skip ci] Updated translations via Crowdin ------ - ⏩ [`gitea`](f6f6aedd4f
) Update JS deps, regenerate SVGs ([gitea#34640](https://github.com/go-gitea/gitea/pull/34640)) ------ - ⏩ [`gitea`](aa2b3b2b1f
) Misc CSS fixes ([gitea#34638](https://github.com/go-gitea/gitea/pull/34638)) - gitea UI specific specific ------ - ⏩ [`gitea`](b38f2d31fd
) add codecommit to supported services in api docs ([gitea#34626](https://github.com/go-gitea/gitea/pull/34626)) ------ - ⏩ [`gitea`](74a0178c6a
) add openssh-keygen to rootless image ([gitea#34625](https://github.com/go-gitea/gitea/pull/34625)) already in Forgejo - see https://codeberg.org/forgejo/forgejo/issues/6896 ------ - ⏩ [`gitea`](5b22af4373
) bump to alpine 3.22 ([gitea#34613](https://github.com/go-gitea/gitea/pull/34613)) ------ - ⏩ [`gitea`](9e0e107d23
) Fix notification count positioning for variable-width elements ([gitea#34597](https://github.com/go-gitea/gitea/pull/34597)) - gitea UI specific specific ------ - ⏩ [`gitea`](e5781cec75
) Fix margin issue in markup paragraph rendering ([gitea#34599](https://github.com/go-gitea/gitea/pull/34599)) - gitea UI specific specific ------ - ⏩ [`gitea`](375dab1111
) Make pull request and issue history more compact ([gitea#34588](https://github.com/go-gitea/gitea/pull/34588)) - gitea UI specific specific ------ - ⏩ [`gitea`](2a1585b32e
) Refactor some tests ([gitea#34580](https://github.com/go-gitea/gitea/pull/34580)) ------ <details> <summary><h2>Stats</h2></summary> <br> Between [`gitea@d5bbaee64e`](d5bbaee64e
) and [`gitea@6b8b580218`](6b8b580218
), **55** commits have been reviewed. We picked **5**, skipped **28** (of which **3** were already in Forgejo!), and decided to port **22**. </details> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: NorthRealm <155140859+NorthRealm@users.noreply.github.com> Co-authored-by: TheFox0x7 <thefox0x7@gmail.com> Co-authored-by: endo0911engineer <161911062+endo0911engineer@users.noreply.github.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8198 Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org> Co-authored-by: Michael Jerger <michael.jerger@meissa-gmbh.de> Co-committed-by: Michael Jerger <michael.jerger@meissa-gmbh.de>
61 lines
1.8 KiB
Go
61 lines
1.8 KiB
Go
// Copyright 2021 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package util
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestSplitString(t *testing.T) {
|
|
type testCase struct {
|
|
input string
|
|
n int
|
|
leftSub string
|
|
ellipsis string
|
|
}
|
|
|
|
test := func(tc []*testCase, f func(input string, n int) (left, right string)) {
|
|
for _, c := range tc {
|
|
l, r := f(c.input, c.n)
|
|
if c.ellipsis != "" {
|
|
assert.Equal(t, c.leftSub+c.ellipsis, l, "test split %q at %d, expected leftSub: %q", c.input, c.n, c.leftSub)
|
|
assert.Equal(t, c.ellipsis+c.input[len(c.leftSub):], r, "test split %s at %d, expected rightSub: %q", c.input, c.n, c.input[len(c.leftSub):])
|
|
} else {
|
|
assert.Equal(t, c.leftSub, l, "test split %q at %d, expected leftSub: %q", c.input, c.n, c.leftSub)
|
|
assert.Empty(t, r, "test split %q at %d, expected rightSub: %q", c.input, c.n, "")
|
|
}
|
|
}
|
|
}
|
|
|
|
tc := []*testCase{
|
|
{"abc123xyz", 0, "", utf8Ellipsis},
|
|
{"abc123xyz", 1, "", utf8Ellipsis},
|
|
{"abc123xyz", 4, "a", utf8Ellipsis},
|
|
{"啊bc123xyz", 4, "", utf8Ellipsis},
|
|
{"啊bc123xyz", 6, "啊", utf8Ellipsis},
|
|
{"啊bc", 5, "啊bc", ""},
|
|
{"啊bc", 6, "啊bc", ""},
|
|
{"abc\xef\x03\xfe", 3, "", asciiEllipsis},
|
|
{"abc\xef\x03\xfe", 4, "a", asciiEllipsis},
|
|
{"\xef\x03", 1, "\xef\x03", ""},
|
|
}
|
|
test(tc, SplitStringAtByteN)
|
|
}
|
|
|
|
func TestTruncateRunes(t *testing.T) {
|
|
assert.Empty(t, TruncateRunes("", 0))
|
|
assert.Empty(t, TruncateRunes("", 1))
|
|
|
|
assert.Empty(t, TruncateRunes("ab", 0))
|
|
assert.Equal(t, "a", TruncateRunes("ab", 1))
|
|
assert.Equal(t, "ab", TruncateRunes("ab", 2))
|
|
assert.Equal(t, "ab", TruncateRunes("ab", 3))
|
|
|
|
assert.Empty(t, TruncateRunes("测试", 0))
|
|
assert.Equal(t, "测", TruncateRunes("测试", 1))
|
|
assert.Equal(t, "测试", TruncateRunes("测试", 2))
|
|
assert.Equal(t, "测试", TruncateRunes("测试", 3))
|
|
}
|