Files
mailgoserver/internal/webui/webmail_inline_images_test.go
T

34 lines
1.0 KiB
Go

package webui
import (
"strings"
"testing"
"mailgoserver/internal/mailview"
)
func TestInlineContentIDImagesReplacesWithDataURI(t *testing.T) {
html := `<p><img src="cid:img1@example.com"></p>`
attachments := []mailview.Attachment{
{Filename: "header.png", ContentType: "image/png", Data: []byte("fake-png-bytes"), ContentID: "img1@example.com"},
}
got := inlineContentIDImages(html, attachments)
if strings.Contains(got, "cid:") {
t.Errorf("cid: reference survived: %q", got)
}
if !strings.Contains(got, "data:image/png;base64,") {
t.Errorf("expected a data: URI in %q", got)
}
}
func TestInlineContentIDImagesLeavesUnmatchedRefsAlone(t *testing.T) {
html := `<p><img src="cid:unknown@example.com"></p>`
// No attachment carries this Content-Id — must not touch the src, since
// htmlBodyPolicy.Sanitize (run right after this) already strips any src it
// doesn't recognize, and that's the correct outcome for a genuinely missing part.
got := inlineContentIDImages(html, nil)
if got != html {
t.Errorf("got %q, want unchanged", got)
}
}