package spf import ( "net" "testing" "github.com/mjl-/mox/dns" ) func TestReceived(t *testing.T) { test := func(r Received, exp string) { t.Helper() s := r.Header() if s != exp { t.Fatalf("got %q, expected %q", s, exp) } } test(Received{ Result: StatusPass, Comment: "c", ClientIP: net.ParseIP("0.0.0.0"), EnvelopeFrom: "x@x", Helo: dns.IPDomain{Domain: dns.Domain{ASCII: "y"}}, Problem: `a b"\`, Receiver: "z", Identity: ReceivedMailFrom, Mechanism: "+ip4:0.0.0.0/0", }, "Received-SPF: pass (c) client-ip=0.0.0.0; envelope-from=\"x@x\"; helo=y;\r\n\tproblem=\"a b\\\"\\\\\"; mechanism=\"+ip4:0.0.0.0/0\"; receiver=z; identity=mailfrom\r\n") test(Received{ Result: StatusPass, ClientIP: net.ParseIP("0.0.0.0"), EnvelopeFrom: "x@x", Helo: dns.IPDomain{IP: net.ParseIP("2001:db8::1")}, Receiver: "z", Identity: ReceivedMailFrom, }, "Received-SPF: pass client-ip=0.0.0.0; envelope-from=\"x@x\"; helo=\"2001:db8::1\";\r\n\treceiver=z; identity=mailfrom\r\n") }