1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
package responses
import (
"bytes"
"testing"
"github.com/emersion/go-imap"
)
func TestListSlashDelimiter(t *testing.T) {
mbox := &imap.MailboxInfo{}
if err := mbox.Parse([]interface{}{
[]interface{}{"\\Unseen"},
"/",
"INBOX",
}); err != nil {
t.Error(err)
t.FailNow()
}
if response := getListResponse(t, mbox); response != `* LIST (\Unseen) "/" INBOX`+"\r\n" {
t.Error("Unexpected response:", response)
}
}
func TestListNILDelimiter(t *testing.T) {
mbox := &imap.MailboxInfo{}
if err := mbox.Parse([]interface{}{
[]interface{}{"\\Unseen"},
nil,
"INBOX",
}); err != nil {
t.Error(err)
t.FailNow()
}
if response := getListResponse(t, mbox); response != `* LIST (\Unseen) NIL INBOX`+"\r\n" {
t.Error("Unexpected response:", response)
}
}
func newListResponse(mbox *imap.MailboxInfo) (l *List) {
l = &List{Mailboxes: make(chan *imap.MailboxInfo)}
go func() {
l.Mailboxes <- mbox
close(l.Mailboxes)
}()
return
}
func getListResponse(t *testing.T, mbox *imap.MailboxInfo) string {
b := &bytes.Buffer{}
w := imap.NewWriter(b)
if err := newListResponse(mbox).WriteTo(w); err != nil {
t.Error(err)
t.FailNow()
}
return b.String()
}
|