|
|
|
@ -129,6 +129,14 @@ then resh (ר), and finally heh (ה) (which should appear leftmost).`, |
|
|
|
|
"\n" + `if access_level != "user<span class="escaped-code-point" data-escaped="[U+202E]"><span class="char">` + "\u202e" + `</span></span> <span class="escaped-code-point" data-escaped="[U+2066]"><span class="char">` + "\u2066" + `</span></span>// Check if admin<span class="escaped-code-point" data-escaped="[U+2069]"><span class="char">` + "\u2069" + `</span></span> <span class="escaped-code-point" data-escaped="[U+2066]"><span class="char">` + "\u2066" + `</span></span>" {` + "\n", |
|
|
|
|
status: EscapeStatus{Escaped: true, HasBIDI: true, BadBIDI: true, HasLTRScript: true, HasRTLScript: true}, |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
// UTF-8/16/32 all use the same codepoint for BOM
|
|
|
|
|
// Gitea could read UTF-16/32 content and convert into UTF-8 internally then render it, so we only process UTF-8 internally
|
|
|
|
|
name: "UTF BOM", |
|
|
|
|
text: "\xef\xbb\xbftest", |
|
|
|
|
result: "\xef\xbb\xbftest", |
|
|
|
|
status: EscapeStatus{HasLTRScript: true}, |
|
|
|
|
}, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func TestEscapeControlString(t *testing.T) { |
|
|
|
@ -163,10 +171,18 @@ func TestEscapeControlReader(t *testing.T) { |
|
|
|
|
// lets add some control characters to the tests
|
|
|
|
|
tests := make([]escapeControlTest, 0, len(escapeControlTests)*3) |
|
|
|
|
copy(tests, escapeControlTests) |
|
|
|
|
|
|
|
|
|
// if there is a BOM, we should keep the BOM
|
|
|
|
|
addPrefix := func(prefix, s string) string { |
|
|
|
|
if strings.HasPrefix(s, "\xef\xbb\xbf") { |
|
|
|
|
return s[:3] + prefix + s[3:] |
|
|
|
|
} |
|
|
|
|
return prefix + s |
|
|
|
|
} |
|
|
|
|
for _, test := range escapeControlTests { |
|
|
|
|
test.name += " (+Control)" |
|
|
|
|
test.text = "\u001E" + test.text |
|
|
|
|
test.result = `<span class="escaped-code-point" data-escaped="[U+001E]"><span class="char">` + "\u001e" + `</span></span>` + test.result |
|
|
|
|
test.text = addPrefix("\u001E", test.text) |
|
|
|
|
test.result = addPrefix(`<span class="escaped-code-point" data-escaped="[U+001E]"><span class="char">`+"\u001e"+`</span></span>`, test.result) |
|
|
|
|
test.status.Escaped = true |
|
|
|
|
test.status.HasControls = true |
|
|
|
|
tests = append(tests, test) |
|
|
|
@ -174,8 +190,8 @@ func TestEscapeControlReader(t *testing.T) { |
|
|
|
|
|
|
|
|
|
for _, test := range escapeControlTests { |
|
|
|
|
test.name += " (+Mark)" |
|
|
|
|
test.text = "\u0300" + test.text |
|
|
|
|
test.result = `<span class="escaped-code-point" data-escaped="[U+0300]"><span class="char">` + "\u0300" + `</span></span>` + test.result |
|
|
|
|
test.text = addPrefix("\u0300", test.text) |
|
|
|
|
test.result = addPrefix(`<span class="escaped-code-point" data-escaped="[U+0300]"><span class="char">`+"\u0300"+`</span></span>`, test.result) |
|
|
|
|
test.status.Escaped = true |
|
|
|
|
test.status.HasMarks = true |
|
|
|
|
tests = append(tests, test) |
|
|
|
|