You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

44 lines
922 B

package parser
import (
"bytes"
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
func TestParserWrite(t *testing.T) {
p := newTestParser(t, "text_html_octet_attachment.eml")
w := p.NewWriter()
buf := new(bytes.Buffer)
assert.NoError(t, w.Write(buf))
assert.Equal(t, s("text_html_octet_attachment.eml"), crlf(buf.String()))
}
func TestParserWriteNoAttachments(t *testing.T) {
p := newTestParser(t, "text_html_octet_attachment.eml")
w := p.
NewWriter().
WithCondition(func(p *Part) bool {
// We don't write if the content disposition says it's an attachment.
if disp, _, err := p.Header.ContentDisposition(); err == nil && disp == "attachment" {
return false
}
return true
})
buf := new(bytes.Buffer)
assert.NoError(t, w.Write(buf))
assert.Equal(t, s("text_html.eml"), crlf(buf.String()))
}
func crlf(s string) string {
return strings.ReplaceAll(s, "\r\n", "\n")
}