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
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") |
|
}
|
|
|