mirror of
https://github.com/mjl-/mox.git
synced 2025-07-10 07:14:40 +03:00
mox!
This commit is contained in:
41
message/writer_test.go
Normal file
41
message/writer_test.go
Normal file
@ -0,0 +1,41 @@
|
||||
package message
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestMsgWriter(t *testing.T) {
|
||||
check := func(data string, want bool) {
|
||||
t.Helper()
|
||||
|
||||
b := &strings.Builder{}
|
||||
mw := &Writer{Writer: b}
|
||||
if _, err := mw.Write([]byte(data)); err != nil {
|
||||
t.Fatalf("write for message %q: %s", data, err)
|
||||
}
|
||||
if mw.HaveHeaders != want {
|
||||
t.Fatalf("got %v, expected %v, for message %q", mw.HaveHeaders, want, data)
|
||||
}
|
||||
|
||||
b = &strings.Builder{}
|
||||
mw = &Writer{Writer: b}
|
||||
for i := range data {
|
||||
if _, err := mw.Write([]byte(data[i : i+1])); err != nil {
|
||||
t.Fatalf("write for message %q: %s", data, err)
|
||||
}
|
||||
}
|
||||
if mw.HaveHeaders != want {
|
||||
t.Fatalf("got %v, expected %v, for message %q", mw.HaveHeaders, want, data)
|
||||
}
|
||||
}
|
||||
|
||||
check("no header", false)
|
||||
check("no header\r\n", false)
|
||||
check("key: value\r\n\r\n", true)
|
||||
check("key: value\r\n\r\nbody", true)
|
||||
check("key: value\n\nbody", false)
|
||||
check("key: value\r\rbody", false)
|
||||
check("\r\n\r\n", true)
|
||||
check("\r\n\r\nbody", true)
|
||||
}
|
Reference in New Issue
Block a user