forked from NYANDEV/forgejo
137daabc9b
It will determine how anchors are created and will break existing links otherwise. Adapted from Revert "Make `user-content-* ` consistent with github (#26388) (cherry picked from commit 1666fba8f577e11ea234c8a671aeaab1290cfbaf) (cherry picked from commit 48f38280e8b9f34d7c45399f05a670ef3460dac1) (cherry picked from commit 03adb3a2b46081e183738a86ca3d54bf730de0bd) (cherry picked from commit a0ad36f0ad5d99896d5319e9aca11d0cf0ce23ee) (cherry picked from commit 3aac9900640da2eeaac7950d14132361923d1a69)
62 lines
1.7 KiB
Go
62 lines
1.7 KiB
Go
// Copyright 2023 The Gitea Authors. All rights reserved.
|
||
// Copyright 2023 The Forgejo Authors. All rights reserved.
|
||
// SPDX-License-Identifier: MIT
|
||
package common
|
||
|
||
import (
|
||
"testing"
|
||
|
||
"github.com/stretchr/testify/assert"
|
||
)
|
||
|
||
func TestCleanValue(t *testing.T) {
|
||
tests := []struct {
|
||
param string
|
||
expect string
|
||
}{
|
||
// Github behavior test cases
|
||
{"", ""},
|
||
{"test.0.1", "test-0-1"},
|
||
{"test(0)", "test-0"},
|
||
{"test!1", "test-1"},
|
||
{"test:2", "test-2"},
|
||
{"test*3", "test-3"},
|
||
{"test!4", "test-4"},
|
||
{"test:5", "test-5"},
|
||
{"test*6", "test-6"},
|
||
{"test:6 a", "test-6-a"},
|
||
{"test:6 !b", "test-6-b"},
|
||
{"test:ad # df", "test-ad-df"},
|
||
{"test:ad #23 df 2*/*", "test-ad-23-df-2"},
|
||
{"test:ad 23 df 2*/*", "test-ad-23-df-2"},
|
||
{"test:ad # 23 df 2*/*", "test-ad-23-df-2"},
|
||
{"Anchors in Markdown", "anchors-in-markdown"},
|
||
{"a_b_c", "a_b_c"},
|
||
{"a-b-c", "a-b-c"},
|
||
{"a-b-c----", "a-b-c"},
|
||
{"test:6a", "test-6a"},
|
||
{"test:a6", "test-a6"},
|
||
{"tes a a a a", "tes-a-a-a-a"},
|
||
{" tes a a a a ", "tes-a-a-a-a"},
|
||
{"Header with \"double quotes\"", "header-with-double-quotes"},
|
||
{"Placeholder to force scrolling on link's click", "placeholder-to-force-scrolling-on-link-s-click"},
|
||
{"tes()", "tes"},
|
||
{"tes(0)", "tes-0"},
|
||
{"tes{0}", "tes-0"},
|
||
{"tes[0]", "tes-0"},
|
||
{"test【0】", "test-0"},
|
||
{"tes…@a", "tes-a"},
|
||
{"tes¥& a", "tes-a"},
|
||
{"tes= a", "tes-a"},
|
||
{"tes|a", "tes-a"},
|
||
{"tes\\a", "tes-a"},
|
||
{"tes/a", "tes-a"},
|
||
{"a啊啊b", "a啊啊b"},
|
||
{"c🤔️🤔️d", "c-d"},
|
||
{"a⚡a", "a-a"},
|
||
{"e.~f", "e-f"},
|
||
}
|
||
for _, test := range tests {
|
||
assert.Equal(t, []byte(test.expect), CleanValue([]byte(test.param)), test.param)
|
||
}
|
||
}
|