From 299490f8fa59126d881f5e7674576886bdce43e3 Mon Sep 17 00:00:00 2001 From: grigorii Date: Mon, 26 Feb 2024 10:30:33 -0800 Subject: [PATCH] Add an option to skip adding a User-Agent (tests) --- msg_test.go | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/msg_test.go b/msg_test.go index e8aa66d..a84967d 100644 --- a/msg_test.go +++ b/msg_test.go @@ -3161,3 +3161,53 @@ func TestMsg_BccFromString(t *testing.T) { }) } } + +// TestMsg_checkUserAgent tests the checkUserAgent method of the Msg +func TestMsg_checkUserAgent(t *testing.T) { + tests := []struct { + name string + noDefaultUserAgent bool + genHeader map[Header][]string + wantUserAgent string + sf bool + }{ + { + name: "check default user agent", + noDefaultUserAgent: false, + wantUserAgent: "go-mail v0.4.1 // https://github.com/wneessen/go-mail", + sf: false, + }, + { + name: "check no default user agent", + noDefaultUserAgent: true, + wantUserAgent: "", + sf: true, + }, + { + name: "check if ua and xm is already set", + noDefaultUserAgent: false, + genHeader: map[Header][]string{ + HeaderUserAgent: {"custom UA"}, + HeaderXMailer: {"custom XM"}, + }, + wantUserAgent: "custom UA", + sf: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + msg := &Msg{ + noDefaultUserAgent: tt.noDefaultUserAgent, + genHeader: tt.genHeader, + } + msg.checkUserAgent() + gotUserAgent := "" + if val, ok := msg.genHeader[HeaderUserAgent]; ok { + gotUserAgent = val[0] // Assuming the first one is the needed value + } + if gotUserAgent != tt.wantUserAgent && !tt.sf { + t.Errorf("UserAgent got = %v, want = %v", gotUserAgent, tt.wantUserAgent) + } + }) + } +}