test: use message.Parse for fakeapi import parser

This commit is contained in:
James Houlahan
2020-09-15 07:57:01 +02:00
parent dc5387a512
commit 46e5cb9c83
2 changed files with 15 additions and 20 deletions

View File

@ -47,6 +47,12 @@ test-debug:
test-live-debug: test-live-debug:
TEST_ENV=live dlv test -- $(FEATURES) TEST_ENV=live dlv test -- $(FEATURES)
test-ie-debug:
TEST_APP=ie TEST_ENV=fake TEST_ACCOUNTS=accounts/fake.json dlv test -- $(FEATURES)
test-live-ie-debug:
TEST_APP=ie TEST_ENV=live dlv test -- $(FEATURES)
# -run flag is not working anyway, but lets keep it there to note we really do not want to run tests. # -run flag is not working anyway, but lets keep it there to note we really do not want to run tests.
# To properly benchmark sync/fetch, we need everything empty. For that is better to start everything # To properly benchmark sync/fetch, we need everything empty. For that is better to start everything
# again and safest way is to run only one loop per run. # again and safest way is to run only one loop per run.

View File

@ -20,10 +20,9 @@ package fakeapi
import ( import (
"bytes" "bytes"
"fmt" "fmt"
"io/ioutil"
"net/mail"
"time" "time"
"github.com/ProtonMail/proton-bridge/pkg/message"
"github.com/ProtonMail/proton-bridge/pkg/pmapi" "github.com/ProtonMail/proton-bridge/pkg/pmapi"
"github.com/pkg/errors" "github.com/pkg/errors"
) )
@ -212,33 +211,23 @@ func (api *FakePMAPI) Import(importMessageRequests []*pmapi.ImportMsgReq) ([]*pm
} }
func (api *FakePMAPI) generateMessageFromImportRequest(msgReq *pmapi.ImportMsgReq) (*pmapi.Message, error) { func (api *FakePMAPI) generateMessageFromImportRequest(msgReq *pmapi.ImportMsgReq) (*pmapi.Message, error) {
mailMessage, err := mail.ReadMessage(bytes.NewBuffer(msgReq.Body)) m, _, _, _, err := message.Parse(bytes.NewReader(msgReq.Body), "", "")
if err != nil {
return nil, err
}
body, err := ioutil.ReadAll(mailMessage.Body)
if err != nil {
return nil, err
}
sender, err := mail.ParseAddress(mailMessage.Header.Get("From"))
if err != nil {
return nil, err
}
toList, err := mail.ParseAddressList(mailMessage.Header.Get("To"))
if err != nil { if err != nil {
return nil, err return nil, err
} }
messageID := api.controller.messageIDGenerator.next("") messageID := api.controller.messageIDGenerator.next("")
return &pmapi.Message{ return &pmapi.Message{
ID: messageID, ID: messageID,
AddressID: msgReq.AddressID, AddressID: msgReq.AddressID,
Sender: sender, Sender: m.Sender,
ToList: toList, ToList: m.ToList,
Subject: mailMessage.Header.Get("Subject"), Subject: m.Subject,
Unread: msgReq.Unread, Unread: msgReq.Unread,
LabelIDs: append(msgReq.LabelIDs, pmapi.AllMailLabel), LabelIDs: append(msgReq.LabelIDs, pmapi.AllMailLabel),
Body: string(body), Body: m.Body,
Header: mailMessage.Header, Header: m.Header,
Flags: msgReq.Flags, Flags: msgReq.Flags,
Time: msgReq.Time, Time: msgReq.Time,
}, nil }, nil