From c66b764651cdca39f42d263b07a507c6e8b58ee9 Mon Sep 17 00:00:00 2001 From: Gary Burd Date: Thu, 8 Oct 2015 22:47:23 -0700 Subject: [PATCH] Add test for bufio.ReadBytes on connection reader Test for issue #85. --- conn_test.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/conn_test.go b/conn_test.go index 929be0e..02f2d4b 100644 --- a/conn_test.go +++ b/conn_test.go @@ -5,6 +5,7 @@ package websocket import ( + "bufio" "bytes" "fmt" "io" @@ -239,3 +240,33 @@ func TestUnderlyingConn(t *testing.T) { t.Fatalf("Underlying conn is not what it should be.") } } + +func TestBufioReadBytes(t *testing.T) { + + // Test calling bufio.ReadBytes for value longer than read buffer size. + + m := make([]byte, 512) + m[len(m)-1] = '\n' + + var b1, b2 bytes.Buffer + wc := newConn(fakeNetConn{Reader: nil, Writer: &b1}, false, len(m)+64, len(m)+64) + rc := newConn(fakeNetConn{Reader: &b1, Writer: &b2}, true, len(m)-64, len(m)-64) + + w, _ := wc.NextWriter(BinaryMessage) + w.Write(m) + w.Close() + + op, r, err := rc.NextReader() + if op != BinaryMessage || err != nil { + t.Fatalf("NextReader() returned %d, %v", op, err) + } + + br := bufio.NewReader(r) + p, err := br.ReadBytes('\n') + if err != nil { + t.Fatalf("ReadBytes() returned %v", err) + } + if len(p) != len(m) { + t.Fatalf("read returnd %d bytes, want %d bytes", len(p), len(m)) + } +}