package sanitize

import (
	"strings"
	"testing"
)

func TestSanitizeHTML_preservesImgLazyAndSrcset(t *testing.T) {
	in := `<img data-src="https://cdn.example.com/hero.png" alt="hero">` +
		`<img srcset="https://cdn.example.com/a.png 1x" src="https://cdn.example.com/f.png">`
	got := SanitizeHTML(in)
	if !strings.Contains(got, `data-src="https://cdn.example.com/hero.png"`) {
		t.Fatalf("expected data-src preserved, got %q", got)
	}
	if !strings.Contains(got, `src="https://cdn.example.com/hero.png"`) {
		t.Fatalf("expected lazy src promoted to src, got %q", got)
	}
	if !strings.Contains(got, `srcset="https://cdn.example.com/a.png 1x"`) {
		t.Fatalf("expected srcset preserved, got %q", got)
	}
	if !strings.Contains(got, `src="https://cdn.example.com/f.png"`) {
		t.Fatalf("expected src preserved, got %q", got)
	}
}

func TestSanitizeHTML_preservesCidImageSrc(t *testing.T) {
	in := `<img src="cid:logo@mail" alt="logo">`
	got := SanitizeHTML(in)
	if !strings.Contains(got, `src="cid:logo@mail"`) {
		t.Fatalf("expected cid src preserved, got %q", got)
	}
}

func TestSanitizeHTML_preservesRelativeImgSrc(t *testing.T) {
	in := `<img src="/campaign/logo.png" alt="logo">`
	got := SanitizeHTML(in)
	if !strings.Contains(got, `src="/campaign/logo.png"`) {
		t.Fatalf("expected relative src preserved, got %q", got)
	}
}
