Forked the emersion/go-imap v1 project.
This commit is contained in:
57
imapclient/create_test.go
Normal file
57
imapclient/create_test.go
Normal file
@@ -0,0 +1,57 @@
|
||||
package imapclient_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/emersion/go-imap/v2"
|
||||
)
|
||||
|
||||
func testCreate(t *testing.T, name string, utf8Accept bool) {
|
||||
client, server := newClientServerPair(t, imap.ConnStateAuthenticated)
|
||||
defer client.Close()
|
||||
defer server.Close()
|
||||
|
||||
if utf8Accept {
|
||||
if !client.Caps().Has(imap.CapUTF8Accept) {
|
||||
t.Skipf("missing UTF8=ACCEPT support")
|
||||
}
|
||||
if data, err := client.Enable(imap.CapUTF8Accept).Wait(); err != nil {
|
||||
t.Fatalf("Enable(CapUTF8Accept) = %v", err)
|
||||
} else if !data.Caps.Has(imap.CapUTF8Accept) {
|
||||
t.Fatalf("server refused to enable UTF8=ACCEPT")
|
||||
}
|
||||
}
|
||||
|
||||
if err := client.Create(name, nil).Wait(); err != nil {
|
||||
t.Fatalf("Create() = %v", err)
|
||||
}
|
||||
|
||||
listCmd := client.List("", name, nil)
|
||||
mailboxes, err := listCmd.Collect()
|
||||
if err != nil {
|
||||
t.Errorf("List() = %v", err)
|
||||
} else if len(mailboxes) != 1 || mailboxes[0].Mailbox != name {
|
||||
t.Errorf("List() = %v, want exactly one entry with correct name", mailboxes)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreate(t *testing.T) {
|
||||
t.Run("basic", func(t *testing.T) {
|
||||
testCreate(t, "Test mailbox", false)
|
||||
})
|
||||
|
||||
t.Run("unicode_utf7", func(t *testing.T) {
|
||||
testCreate(t, "Cafè", false)
|
||||
})
|
||||
t.Run("unicode_utf8", func(t *testing.T) {
|
||||
testCreate(t, "Cafè", true)
|
||||
})
|
||||
|
||||
// '&' is the UTF-7 escape character
|
||||
t.Run("ampersand_utf7", func(t *testing.T) {
|
||||
testCreate(t, "Angus & Julia", false)
|
||||
})
|
||||
t.Run("ampersand_utf8", func(t *testing.T) {
|
||||
testCreate(t, "Angus & Julia", true)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user