From f355cb4d38cce3887d5cc8426e87a830ebfe7e69 Mon Sep 17 00:00:00 2001 From: Romain LE JEUNE Date: Mon, 28 Nov 2022 09:01:10 +0100 Subject: [PATCH] GODT-1804: Add parsing ics attachment test. --- pkg/message/parser_test.go | 20 ++++++++++++++++++++ pkg/message/testdata/ics_attachment.eml | 14 ++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 pkg/message/testdata/ics_attachment.eml diff --git a/pkg/message/parser_test.go b/pkg/message/parser_test.go index d6722b3e..96cc57fd 100644 --- a/pkg/message/parser_test.go +++ b/pkg/message/parser_test.go @@ -605,6 +605,26 @@ func TestParseMessageReferencesComma(t *testing.T) { }) } +func TestParseIcsAttachment(t *testing.T) { + f := getFileReader("ics_attachment.eml") + + m, err := Parse(f) + require.NoError(t, err) + + assert.Equal(t, `"Sender" `, m.Sender.String()) + assert.Equal(t, `"Receiver" `, m.ToList[0].String()) + + assert.Equal(t, "body", string(m.RichBody)) + assert.Equal(t, "body", string(m.PlainBody)) + + require.Len(t, m.Attachments, 1) + assert.Equal(t, m.Attachments[0].MIMEType, "text/calendar") + assert.Equal(t, m.Attachments[0].Name, "invite.ics") + assert.Equal(t, m.Attachments[0].ContentID, "") + assert.Equal(t, m.Attachments[0].Disposition, "attachment") + assert.Equal(t, string(m.Attachments[0].Data), "This is an ics calendar invite") +} + func TestParsePanic(t *testing.T) { var err error require.NotPanics(t, func() { diff --git a/pkg/message/testdata/ics_attachment.eml b/pkg/message/testdata/ics_attachment.eml new file mode 100644 index 00000000..2c11c53b --- /dev/null +++ b/pkg/message/testdata/ics_attachment.eml @@ -0,0 +1,14 @@ +From: Sender +To: Receiver +Content-Type: multipart/mixed; boundary=longrandomstring + +--longrandomstring + +body +--longrandomstring +Content-Type: text/calendar; charset=utf-8; method=REQUEST; name=invite.ics' +Content-Transfer-Encoding: Base64 +Content-Disposition: attachment; filename=invite.ics + +VGhpcyBpcyBhbiBpY3MgY2FsZW5kYXIgaW52aXRl +--longrandomstring--