fix(GODT-2480): Do not override X-Original-Date with invalid Date

This commit is contained in:
Leander Beernaert
2023-03-13 12:00:23 +01:00
parent b57ca1506d
commit 30c1c14505
3 changed files with 67 additions and 10 deletions

View File

@ -38,6 +38,20 @@ func newTestMessage(
kr *crypto.KeyRing,
messageID, addressID, mimeType, body string, //nolint:unparam
date time.Time,
) proton.Message {
return newTestMessageWithHeaders(t, kr, messageID, addressID, mimeType, body, date, nil)
}
func newRawTestMessage(messageID, addressID, mimeType, body string, date time.Time) proton.Message { // nolint:unparam
return newRawTestMessageWithHeaders(messageID, addressID, mimeType, body, date, nil)
}
func newTestMessageWithHeaders(
t *testing.T,
kr *crypto.KeyRing,
messageID, addressID, mimeType, body string, //nolint:unparam
date time.Time,
headers map[string][]string,
) proton.Message {
enc, err := kr.Encrypt(crypto.NewPlainMessageFromString(body), kr)
require.NoError(t, err)
@ -45,22 +59,28 @@ func newTestMessage(
arm, err := enc.GetArmored()
require.NoError(t, err)
return newRawTestMessage(messageID, addressID, mimeType, arm, date)
return newRawTestMessageWithHeaders(messageID, addressID, mimeType, arm, date, headers)
}
func newRawTestMessage(messageID, addressID, mimeType, body string, date time.Time) proton.Message {
func newRawTestMessageWithHeaders(messageID, addressID, mimeType, body string, date time.Time, headers map[string][]string) proton.Message {
msgHeaders := proton.Headers{
"Content-Type": {mimeType},
"Date": {date.In(time.UTC).Format(time.RFC1123Z)},
}
for k, v := range headers {
msgHeaders[k] = v
}
return proton.Message{
MessageMetadata: proton.MessageMetadata{
ID: messageID,
AddressID: addressID,
Time: date.Unix(),
},
ParsedHeaders: proton.Headers{
"Content-Type": {mimeType},
"Date": {date.In(time.UTC).Format(time.RFC1123Z)},
},
MIMEType: rfc822.MIMEType(mimeType),
Body: body,
ParsedHeaders: msgHeaders,
MIMEType: rfc822.MIMEType(mimeType),
Body: body,
}
}