forked from quic-go/quic-go
implement parsing of stream frames
This commit is contained in:
40
frame_test.go
Normal file
40
frame_test.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package quic
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
)
|
||||
|
||||
var _ = Describe("Frame", func() {
|
||||
Context("when parsing", func() {
|
||||
It("accepts sample frame", func() {
|
||||
b := bytes.NewReader([]byte{0xa0, 0x1, 0x06, 0x00, 'f', 'o', 'o', 'b', 'a', 'r'})
|
||||
frame, err := ParseStreamFrame(b)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.FinBit).To(BeFalse())
|
||||
Expect(frame.DataLengthPresent).To(BeTrue())
|
||||
Expect(frame.OffsetLength).To(BeZero())
|
||||
Expect(frame.StreamIDLength).To(Equal(uint8(1)))
|
||||
Expect(frame.StreamID).To(Equal(uint32(1)))
|
||||
Expect(frame.Offset).To(BeZero())
|
||||
Expect(frame.DataLength).To(Equal(uint16(6)))
|
||||
Expect(frame.Data).To(Equal([]byte("foobar")))
|
||||
})
|
||||
|
||||
It("accepts frame without datalength", func() {
|
||||
b := bytes.NewReader([]byte{0x80, 0x1, 'f', 'o', 'o', 'b', 'a', 'r'})
|
||||
frame, err := ParseStreamFrame(b)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.FinBit).To(BeFalse())
|
||||
Expect(frame.DataLengthPresent).To(BeFalse())
|
||||
Expect(frame.OffsetLength).To(BeZero())
|
||||
Expect(frame.StreamIDLength).To(Equal(uint8(1)))
|
||||
Expect(frame.StreamID).To(Equal(uint32(1)))
|
||||
Expect(frame.Offset).To(BeZero())
|
||||
Expect(frame.DataLength).To(Equal(uint16(0)))
|
||||
Expect(frame.Data).To(Equal([]byte("foobar")))
|
||||
})
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user