70 lines
1.6 KiB
Go
70 lines
1.6 KiB
Go
package frame
|
|
|
|
import (
|
|
. "gopkg.in/check.v1"
|
|
)
|
|
|
|
func (s *FrameSuite) TestHeaderGetSetAddDel(c *C) {
|
|
h := &Header{}
|
|
c.Assert(h.Get("xxx"), Equals, "")
|
|
h.Add("xxx", "yyy")
|
|
c.Assert(h.Get("xxx"), Equals, "yyy")
|
|
h.Add("xxx", "zzz")
|
|
c.Assert(h.GetAll("xxx"), DeepEquals, []string{"yyy", "zzz"})
|
|
h.Set("xxx", "111")
|
|
c.Assert(h.Get("xxx"), Equals, "111")
|
|
h.Del("xxx")
|
|
c.Assert(h.Get("xxx"), Equals, "")
|
|
}
|
|
|
|
func (s *FrameSuite) TestHeaderClone(c *C) {
|
|
h := Header{}
|
|
h.Set("xxx", "yyy")
|
|
h.Set("yyy", "zzz")
|
|
|
|
hc := h.Clone()
|
|
h.Del("xxx")
|
|
h.Del("yyy")
|
|
c.Assert(hc.Get("xxx"), Equals, "yyy")
|
|
c.Assert(hc.Get("yyy"), Equals, "zzz")
|
|
}
|
|
|
|
func (s *FrameSuite) TestHeaderContains(c *C) {
|
|
h := NewHeader("xxx", "yyy", "zzz", "aaa", "xxx", "ccc")
|
|
v, ok := h.Contains("xxx")
|
|
c.Assert(v, Equals, "yyy")
|
|
c.Assert(ok, Equals, true)
|
|
|
|
v, ok = h.Contains("123")
|
|
c.Assert(v, Equals, "")
|
|
c.Assert(ok, Equals, false)
|
|
}
|
|
|
|
func (s *FrameSuite) TestContentLength(c *C) {
|
|
h := NewHeader("xxx", "yy", "content-length", "202", "zz", "123")
|
|
cl, ok, err := h.ContentLength()
|
|
c.Assert(cl, Equals, 202)
|
|
c.Assert(ok, Equals, true)
|
|
c.Assert(err, Equals, nil)
|
|
|
|
h.Set("content-length", "twenty")
|
|
cl, ok, err = h.ContentLength()
|
|
c.Assert(cl, Equals, 0)
|
|
c.Assert(ok, Equals, true)
|
|
c.Assert(err, NotNil)
|
|
|
|
h.Del("content-length")
|
|
cl, ok, err = h.ContentLength()
|
|
c.Assert(cl, Equals, 0)
|
|
c.Assert(ok, Equals, false)
|
|
c.Assert(err, IsNil)
|
|
}
|
|
|
|
func (s *FrameSuite) TestLit(c *C) {
|
|
_ = Frame{
|
|
Command: "CONNECT",
|
|
Header: NewHeader("login", "xxx", "passcode", "yyy"),
|
|
Body: []byte{1, 2, 3, 4},
|
|
}
|
|
}
|