From e9fbbe3373eb66a345f5e3829e2563b94dc92051 Mon Sep 17 00:00:00 2001 From: Gab Virebent Date: Mon, 24 Aug 2026 17:34:45 +0200 Subject: Harden transport and preserve profile identities --- internal/submit/message_test.go | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 internal/submit/message_test.go (limited to 'internal/submit/message_test.go') diff --git a/internal/submit/message_test.go b/internal/submit/message_test.go new file mode 100644 index 0000000..c13e958 --- /dev/null +++ b/internal/submit/message_test.go @@ -0,0 +1,41 @@ +package submit + +import ( + "strings" + "testing" +) + +func TestBuildMessagePublishesProfileIdentityAndTransportSender(t *testing.T) { + sub := Submission{ + From: "Alice ", + Newsgroups: []string{"misc.test"}, + Subject: "Test", + Message: "hello", + PublicKeyB64: "unused-without-face", + SignatureB64: "unused-without-face", + } + + raw, _, err := BuildMessage( + sub, + "mail2news@mail2news.tcpreset.net", + "n2usenet@virebent.art", + "n2usenet.virebent.art", + "/missing/identicons-cli", + false, + ) + if err != nil { + t.Fatalf("BuildMessage returned error: %v", err) + } + if !strings.Contains(raw, "From: \"Alice\" \r\n") { + t.Fatalf("profile identity is not used as the public From:\n%s", raw) + } + if !strings.Contains(raw, "Sender: \r\n") { + t.Fatalf("transport Sender is missing:\n%s", raw) + } + if strings.Contains(raw, "From: \"Alice\" \r\n") { + t.Fatalf("transport account replaced the public profile identity:\n%s", raw) + } + if strings.Contains(raw, "X-N2Usenet-Identity:") { + t.Fatalf("redundant private identity header is present:\n%s", raw) + } +} -- cgit v1.2.3