package template
import (
"strings"
"testing"
"github.com/tamakyi/TamaBox/internal/conf"
)
func TestMarkdownToHTML_Basic(t *testing.T) {
cases := []struct {
name string
in string
want string // 必须包含
}{
{"bold", "**bold**", "bold"},
{"italic", "*italic*", "italic"},
{"link", "[baidu](https://baidu.com)", `href="https://baidu.com"`},
{"list", "- item1\n- item2", "
item1"},
{"code", "`code`", "code"},
{"newline", "line1\nline2", "
"},
{"font-red", `文本`, `文本`},
{"font-hex", `红`, `红`},
{"font-rgb", `红`, `红`},
{"font-mixed", `**粗体** 和 蓝`, `蓝`},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
got := string(MarkdownToHTML(tc.in))
if !strings.Contains(got, tc.want) {
t.Errorf("MarkdownToHTML(%q) = %q, 期望包含 %q", tc.in, got, tc.want)
}
})
}
}
func TestMarkdownToHTML_XSS(t *testing.T) {
cases := []string{
`<script>alert(1)</script>`,
`<script>alert(1)</script>`,
``,
`
`,
`[x](javascript:alert(1))`,
`x`,
``,
"