1package clib
2
3import (
4 "strings"
5 "testing"
6)
7
8func TestMarkdownPlainTextHTMLFallbackEscapesInput(t *testing.T) {
9 input := []byte("# Heading\n\n<script>alert(\"x\")</script>\n<b>literal</b>")
10
11 got := string(markdownPlainTextHTML(input))
12
13 if !strings.HasPrefix(got, "<pre>") || !strings.HasSuffix(got, "</pre>") {
14 t.Fatalf("fallback should wrap content in pre tag, got %q", got)
15 }
16 if strings.Contains(got, "<script>") || strings.Contains(got, "<b>") {
17 t.Fatalf("fallback should escape HTML-looking input, got %q", got)
18 }
19 if !strings.Contains(got, "<script>alert("x")</script>") {
20 t.Fatalf("fallback missing escaped script text, got %q", got)
21 }
22 if !strings.Contains(got, "# Heading") {
23 t.Fatalf("fallback should preserve markdown text, got %q", got)
24 }
25}