package sanitize import ( "strings" "testing" ) func TestStripHiddenEmailHTML_preservesFontSize0WithChildElements(t *testing.T) { in := `
` + `
Column 1
` + `
Column 2
` out := StripHiddenEmailHTML(in) if !strings.Contains(out, "Column 1") || !strings.Contains(out, "Column 2") { t.Fatalf("inline-block columns removed by font-size:0 stripping: %q", out) } } func TestStripHiddenEmailHTML_preservesMultiColumnTable(t *testing.T) { in := `
` + `
Left
` + `
Right
` + `
` out := StripHiddenEmailHTML(in) if !strings.Contains(out, "Left") || !strings.Contains(out, "Right") { t.Fatalf("multi-column table content removed: %q", out) } } func TestStripHiddenEmailHTML_stillStripsFontSize0Preheader(t *testing.T) { in := `Hidden preview text

Visible content

` out := StripHiddenEmailHTML(in) if strings.Contains(out, "Hidden preview text") { t.Fatalf("font-size:0 preheader text should be stripped: %q", out) } if !strings.Contains(out, "Visible content") { t.Fatalf("visible content missing: %q", out) } } func TestSanitizeHTML_preservesFontSize0InlineBlockLayout(t *testing.T) { in := `
` + `
Column 1
` + `
Column 2
` out := SanitizeHTML(in) if !strings.Contains(out, "Column 1") || !strings.Contains(out, "Column 2") { t.Fatalf("full sanitize pipeline removed inline-block content: %q", out) } } func TestSanitizeHTML_preservesTableFontSize0Wrapper(t *testing.T) { in := `
` + `
Left content
` + `
Right content
` + `
` out := SanitizeHTML(in) if !strings.Contains(out, "Left content") || !strings.Contains(out, "Right content") { t.Fatalf("table multi-column content lost after sanitize: %q", out) } }