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", }, { name: "meta refresh in display name", displayName: ``, username: "alice", expected: "alice", }, { name: "mixed text and HTML in display name", displayName: `Alice Bob`, username: "alice", expected: "Alice Bob", }, { name: "custom emoji HTML in display name", displayName: `Alice :blobcat: `, 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: `
Click me
`, username: "alice", expected: "Click me", }, { name: "event handler attributes", displayName: `Alice`, username: "alice", expected: "Alice", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { result := sanitizeActorName(tt.displayName, tt.username) if result != tt.expected { t.Errorf("sanitizeActorName(%q, %q) = %q, want %q", tt.displayName, tt.username, result, tt.expected) } }) } }