mirror of
https://github.com/wneessen/go-mail.git
synced 2024-11-25 15:10:48 +01:00
Winni Neessen
8924e426d6
The change introduces a new unit test, TestFile_WithContentID, in file_test.go. This test aims to verify the correct function of the WithFileContentID option by using differing scenarios, with assertions for error control and validation of expected content.
139 lines
3.9 KiB
Go
139 lines
3.9 KiB
Go
// SPDX-FileCopyrightText: 2022-2023 The go-mail Authors
|
|
//
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package mail
|
|
|
|
import "testing"
|
|
|
|
// TestFile_SetGetHeader tests the set-/getHeader method of the File object
|
|
func TestFile_SetGetHeader(t *testing.T) {
|
|
f := File{
|
|
Name: "testfile.txt",
|
|
Header: make(map[string][]string),
|
|
}
|
|
f.setHeader(HeaderContentType, "text/plain")
|
|
fi, ok := f.getHeader(HeaderContentType)
|
|
if !ok {
|
|
t.Errorf("getHeader method of File did not return a value")
|
|
return
|
|
}
|
|
if fi != "text/plain" {
|
|
t.Errorf("getHeader returned wrong value. Expected: %s, got: %s", "text/plain", fi)
|
|
}
|
|
fi, ok = f.getHeader(HeaderContentTransferEnc)
|
|
if ok {
|
|
t.Errorf("getHeader method of File did return a value, but wasn't supposed to")
|
|
return
|
|
}
|
|
if fi != "" {
|
|
t.Errorf("getHeader returned wrong value. Expected: %s, got: %s", "", fi)
|
|
}
|
|
}
|
|
|
|
// TestFile_WithFileDescription tests the WithFileDescription option
|
|
func TestFile_WithFileDescription(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
desc string
|
|
}{
|
|
{"File description: test", "test"},
|
|
{"File description: empty", ""},
|
|
}
|
|
for _, tt := range tests {
|
|
m := NewMsg()
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
m.AttachFile("file.go", WithFileDescription(tt.desc))
|
|
al := m.GetAttachments()
|
|
if len(al) <= 0 {
|
|
t.Errorf("AttachFile() failed. Attachment list is empty")
|
|
}
|
|
a := al[0]
|
|
if a.Desc != tt.desc {
|
|
t.Errorf("WithFileDescription() failed. Expected: %s, got: %s", tt.desc, a.Desc)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
// TestFile_WithContentID tests the WithFileContentID option
|
|
func TestFile_WithContentID(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
contentid string
|
|
}{
|
|
{"File Content-ID: test", "test"},
|
|
{"File Content-ID: empty", ""},
|
|
}
|
|
for _, tt := range tests {
|
|
m := NewMsg()
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
m.AttachFile("file.go", WithFileContentID(tt.contentid))
|
|
al := m.GetAttachments()
|
|
if len(al) <= 0 {
|
|
t.Errorf("AttachFile() failed. Attachment list is empty")
|
|
}
|
|
a := al[0]
|
|
if a.Header.Get(HeaderContentID.String()) != tt.contentid {
|
|
t.Errorf("WithFileContentID() failed. Expected: %s, got: %s", tt.contentid,
|
|
a.Header.Get(HeaderContentID.String()))
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
// TestFile_WithFileEncoding tests the WithFileEncoding option
|
|
func TestFile_WithFileEncoding(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
enc Encoding
|
|
want Encoding
|
|
}{
|
|
{"File encoding: 8bit raw", NoEncoding, NoEncoding},
|
|
{"File encoding: Base64", EncodingB64, EncodingB64},
|
|
{"File encoding: quoted-printable (not allowed)", EncodingQP, ""},
|
|
}
|
|
for _, tt := range tests {
|
|
m := NewMsg()
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
m.AttachFile("file.go", WithFileEncoding(tt.enc))
|
|
al := m.GetAttachments()
|
|
if len(al) <= 0 {
|
|
t.Errorf("AttachFile() failed. Attachment list is empty")
|
|
}
|
|
a := al[0]
|
|
if a.Enc != tt.want {
|
|
t.Errorf("WithFileEncoding() failed. Expected: %s, got: %s", tt.enc, a.Enc)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
// TestFile_WithFileContentType tests the WithFileContentType option
|
|
func TestFile_WithFileContentType(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
ct ContentType
|
|
want string
|
|
}{
|
|
{"File content-type: text/plain", TypeTextPlain, "text/plain"},
|
|
{"File content-type: html/html", TypeTextHTML, "text/html"},
|
|
{"File content-type: application/octet-stream", TypeAppOctetStream, "application/octet-stream"},
|
|
{"File content-type: application/pgp-encrypted", TypePGPEncrypted, "application/pgp-encrypted"},
|
|
{"File content-type: application/pgp-signature", TypePGPSignature, "application/pgp-signature"},
|
|
}
|
|
for _, tt := range tests {
|
|
m := NewMsg()
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
m.AttachFile("file.go", WithFileContentType(tt.ct))
|
|
al := m.GetAttachments()
|
|
if len(al) <= 0 {
|
|
t.Errorf("AttachFile() failed. Attachment list is empty")
|
|
}
|
|
a := al[0]
|
|
if a.ContentType != ContentType(tt.want) {
|
|
t.Errorf("WithFileContentType() failed. Expected: %s, got: %s", tt.want, a.ContentType)
|
|
}
|
|
})
|
|
}
|
|
}
|