gitea

Зеркало из https://github.com/go-gitea/gitea
Форк
0
/
truncate_test.go 
46 строк · 1.3 Кб
1
// Copyright 2021 The Gitea Authors. All rights reserved.
2
// SPDX-License-Identifier: MIT
3

4
package util
5

6
import (
7
	"testing"
8

9
	"github.com/stretchr/testify/assert"
10
)
11

12
func TestSplitString(t *testing.T) {
13
	type testCase struct {
14
		input    string
15
		n        int
16
		leftSub  string
17
		ellipsis string
18
	}
19

20
	test := func(tc []*testCase, f func(input string, n int) (left, right string)) {
21
		for _, c := range tc {
22
			l, r := f(c.input, c.n)
23
			if c.ellipsis != "" {
24
				assert.Equal(t, c.leftSub+c.ellipsis, l, "test split %q at %d, expected leftSub: %q", c.input, c.n, c.leftSub)
25
				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):])
26
			} else {
27
				assert.Equal(t, c.leftSub, l, "test split %q at %d, expected leftSub: %q", c.input, c.n, c.leftSub)
28
				assert.Empty(t, r, "test split %q at %d, expected rightSub: %q", c.input, c.n, "")
29
			}
30
		}
31
	}
32

33
	tc := []*testCase{
34
		{"abc123xyz", 0, "", utf8Ellipsis},
35
		{"abc123xyz", 1, "", utf8Ellipsis},
36
		{"abc123xyz", 4, "a", utf8Ellipsis},
37
		{"啊bc123xyz", 4, "", utf8Ellipsis},
38
		{"啊bc123xyz", 6, "啊", utf8Ellipsis},
39
		{"啊bc", 5, "啊bc", ""},
40
		{"啊bc", 6, "啊bc", ""},
41
		{"abc\xef\x03\xfe", 3, "", asciiEllipsis},
42
		{"abc\xef\x03\xfe", 4, "a", asciiEllipsis},
43
		{"\xef\x03", 1, "\xef\x03", ""},
44
	}
45
	test(tc, SplitStringAtByteN)
46
}
47

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.