package inbox
import (
"testing"
)
func TestSanitizeActorName(t *testing.T) {
tests := []struct {
name string
displayName string
username string
expected string
}{
{
name: "plain display name",
displayName: "Alice",
username: "alice",
expected: "Alice",
},
{
name: "display name with emoji",
displayName: "Alice 🦊",
username: "alice",
expected: "Alice 🦊",
},
{
name: "display name with unicode",
displayName: "Ålice Böb",
username: "alice",
expected: "Ålice Böb",
},
{
name: "empty display name falls back to username",
displayName: "",
username: "alice",
expected: "alice",
},
{
name: "script tag in display name",
displayName: ``,
username: "alice",
expected: "alice",
},
{
name: "iframe injection in display name",
displayName: ``,
username: "alice",
expected: "alice",
},
{
name: "img tag in display name",
displayName: `
`,
username: "alice",
expected: "alice",
},
{
name: "form injection in display name",
displayName: `
`,
username: "alice",
expected: "Alice :blobcat: ",
},
{
name: "HTML in both display name and username",
displayName: ``,
username: `alice`,
expected: "alice",
},
{
name: "entirely HTML display name falls back to username",
displayName: ``,
username: "alice",
expected: "alice",
},
{
name: "style tag in display name",
displayName: `Alice`,
username: "alice",
expected: "Alice",
},
{
name: "nested HTML tags",
displayName: ``,
username: "alice",
expected: "Click me",
},
{
name: "event handler attributes",
displayName: `