66 lines
1.2 KiB
Go
66 lines
1.2 KiB
Go
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()
|
|
}
|