forked from Silverfish/proton-bridge
GODT-1433 Message.Type is deprecated, use Flags instead.
This commit is contained in:
@ -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
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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")
|
||||
}
|
||||
|
||||
@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user