`, `
`,
`
`, `
`,
`
`, `
`,
// Input checkbox
``, ``,
``, ``,
``, ``,
// Code highlight injection
`
`, `
`,
`
Hello there! Something has gone wrong, we are working on it.
In the meantime, play a game with us at example.com.
`, "\n\u00a0
\n\nHello there! Something has gone wrong, we are working on it.
\nIn the meantime, play a game with us at\u00a0example.com.
\n
",
// tags
`Ctrl + C`, `Ctrl + C`,
`NAUGHTY`, `NAUGHTY`,
``, ``,
`unchecked`, `unchecked`,
`NAUGHTY`, `NAUGHTY`,
`contents`, `contents`,
// Color property
`Hello World`, `Hello World`,
`Hello World
`, `Hello World
`, `TH1 | TH2 | TH3 |
---|---|---|
TD1 | TD2 | TD3 |
TH1 | TH2 | TH3 |
---|---|---|
TD1 | TD2 | TD3 |
Hello World
`, `Hello World
`,
`Hello World
`, `Hello World
`,
`Hello World`, `Hello World`,
`Hello World
`, `Hello World
`, `Hello World
`, `Hello World
`,
// Org mode status of list items.
``, ``,
``, ``,
``, ``,
// URLs
`my custom URL scheme`, `my custom URL scheme`,
`my custom URL scheme`, `my custom URL scheme`,
// Disallow dangerous url schemes
`bad`, `bad`,
`bad`, `bad`,
`bad`, `bad`,
// Mention
`@forgejo/UI`, `@forgejo/UI`,
// Emoji
`THUMBS UP`, `THUMBS UP`,
`THUMBS UP`, `THUMBS UP`,
}
for i := 0; i < len(testCases); i += 2 {
assert.Equal(t, testCases[i+1], Sanitize(testCases[i]))
}
}
func TestDescriptionSanitizer(t *testing.T) {
NewSanitizer()
testCases := []string{
`wg(8)
tool`, `Provides alternative wg(8)
tool`,
`Click me.`, `Click me.`,
`Click me.`, `Click me.`,
`Click me.`, `Click me.`,
}
for i := 0; i < len(testCases); i += 2 {
assert.Equal(t, testCases[i+1], SanitizeDescription(testCases[i]))
}
}
func TestSanitizeNonEscape(t *testing.T) {
descStr := "