GODT-1433 Message.Type is deprecated, use Flags instead.

This commit is contained in:
Jakub
2021-11-30 17:03:50 +01:00
parent 55beb9227f
commit a0dc764bb9
9 changed files with 50 additions and 45 deletions

View File

@ -133,7 +133,7 @@ func (q *sendRecorder) isSendingOrSent(client messageGetter, hash string) (isSen
if err != nil {
return
}
if message.Type == pmapi.MessageTypeDraft {
if message.IsDraft() {
// If message is in draft for a long time, let's assume there is
// some problem and message will not be sent anymore.
if time.Since(time.Unix(message.Time, 0)).Minutes() > 10 {
@ -141,8 +141,8 @@ func (q *sendRecorder) isSendingOrSent(client messageGetter, hash string) (isSen
}
isSending = true
}
// MessageTypeInboxAndSent can be when message was sent to myself.
if message.Type == pmapi.MessageTypeSent || message.Type == pmapi.MessageTypeInboxAndSent {
// Message can be in Inbox and Sent when message was sent to myself.
if message.Has(pmapi.FlagSent) {
wasSent = true
}

View File

@ -395,6 +395,9 @@ func TestSendRecorder_isSendingOrSent(t *testing.T) {
q.addMessage("hash")
q.setMessageID("hash", "messageID")
draftFlag := pmapi.FlagInternal | pmapi.FlagE2E
selfSent := pmapi.FlagSent | pmapi.FlagReceived
testCases := []struct {
hash string
message *pmapi.Message
@ -402,14 +405,14 @@ func TestSendRecorder_isSendingOrSent(t *testing.T) {
wantIsSending bool
wantWasSent bool
}{
{"badhash", &pmapi.Message{Type: pmapi.MessageTypeDraft}, nil, false, false},
{"badhash", &pmapi.Message{Flags: draftFlag}, nil, false, false},
{"hash", nil, errors.New("message not found"), false, false},
{"hash", &pmapi.Message{Type: pmapi.MessageTypeInbox}, nil, false, false},
{"hash", &pmapi.Message{Type: pmapi.MessageTypeDraft, Time: time.Now().Add(-20 * time.Minute).Unix()}, nil, false, false},
{"hash", &pmapi.Message{Type: pmapi.MessageTypeDraft, Time: time.Now().Unix()}, nil, true, false},
{"hash", &pmapi.Message{Type: pmapi.MessageTypeSent}, nil, false, true},
{"hash", &pmapi.Message{Type: pmapi.MessageTypeInboxAndSent}, nil, false, true},
{"", &pmapi.Message{Type: pmapi.MessageTypeInboxAndSent}, nil, false, false},
{"hash", &pmapi.Message{Flags: pmapi.FlagReceived}, nil, false, false},
{"hash", &pmapi.Message{Flags: draftFlag, Time: time.Now().Add(-20 * time.Minute).Unix()}, nil, false, false},
{"hash", &pmapi.Message{Flags: draftFlag, Time: time.Now().Unix()}, nil, true, false},
{"hash", &pmapi.Message{Flags: pmapi.FlagSent}, nil, false, true},
{"hash", &pmapi.Message{Flags: selfSent}, nil, false, true},
{"", &pmapi.Message{Flags: selfSent}, nil, false, false},
}
for i, tc := range testCases {
tc := tc // bind

View File

@ -370,7 +370,7 @@ func (storeMailbox *Mailbox) txCreateOrUpdateMessages(tx *bolt.Tx, msgs []*pmapi
// Draft bodies can change and bodies are not re-fetched by IMAP clients.
// Every change has to be a new message; we need to delete the old one and always recreate it.
if msg.Type == pmapi.MessageTypeDraft || msg.IsDraft() {
if msg.IsDraft() {
if err := storeMailbox.txDeleteMessage(tx, msg.ID); err != nil {
return errors.Wrap(err, "cannot delete old draft")
}

View File

@ -78,23 +78,23 @@ func TestCreateOrUpdateMessageMetadata(t *testing.T) {
m.newStoreNoEvents(t, true)
insertMessage(t, m, "msg1", "Test message 1", addrID1, false, []string{pmapi.AllMailLabel})
msg, err := m.store.getMessageFromDB("msg1")
metadata, err := m.store.getMessageFromDB("msg1")
require.Nil(t, err)
message := &Message{msg: msg, store: m.store, storeMailbox: nil}
msg := &Message{msg: metadata, store: m.store, storeMailbox: nil}
// Check non-meta and calculated data are cleared/empty.
a.Equal(t, "", message.msg.Body)
a.Equal(t, []*pmapi.Attachment(nil), message.msg.Attachments)
a.Equal(t, "", message.msg.MIMEType)
a.Equal(t, make(mail.Header), message.msg.Header)
a.Equal(t, "", metadata.Body)
a.Equal(t, []*pmapi.Attachment(nil), metadata.Attachments)
a.Equal(t, "", metadata.MIMEType)
a.Equal(t, make(mail.Header), metadata.Header)
wantHeader, wantSize := putBodystructureAndSizeToDB(m, "msg1")
// Check cached data.
require.Nil(t, err)
a.Equal(t, wantHeader, message.GetMIMEHeader())
haveSize, err := message.GetRFC822Size()
a.Equal(t, wantHeader, msg.GetMIMEHeader())
haveSize, err := msg.GetRFC822Size()
require.Nil(t, err)
a.Equal(t, wantSize, haveSize)
@ -102,8 +102,8 @@ func TestCreateOrUpdateMessageMetadata(t *testing.T) {
insertMessage(t, m, "msg1", "Test message 1", addrID1, false, []string{pmapi.AllMailLabel})
require.Nil(t, err)
a.Equal(t, wantHeader, message.GetMIMEHeader())
haveSize, err = message.GetRFC822Size()
a.Equal(t, wantHeader, msg.GetMIMEHeader())
haveSize, err = msg.GetRFC822Size()
require.Nil(t, err)
a.Equal(t, wantSize, haveSize)
}