package mailparser_test import "testing" func TestReturnPath(t *testing.T) { tests := []struct { name string headers string want string }{ {"none", "", ""}, {"simple", "Return-Path: \r\n", "forwarder@example.com"}, {"without brackets", "Return-Path: fwd@example.com\r\n", "fwd@example.com"}, {"topmost only", "Return-Path: \r\nReceived: from x\r\nReturn-Path: \r\n", "fwd@example.com"}, {"null sender", "Return-Path: <>\r\n", ""}, {"null sender topmost hides lower", "Return-Path: <>\r\nReturn-Path: \r\n", ""}, {"garbage", "Return-Path: not an address\r\n", ""}, {"empty", "Return-Path: \r\n", ""}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { pm := parseHeaders(t, tt.headers) if pm.ReturnPath != tt.want { t.Errorf("ReturnPath = %q, want %q", pm.ReturnPath, tt.want) } }) } }