|
|
@@ -10,6 +10,7 @@ import (
|
|
|
"io"
|
|
|
"io/ioutil"
|
|
|
"net"
|
|
|
+ "reflect"
|
|
|
"testing"
|
|
|
"testing/iotest"
|
|
|
"time"
|
|
|
@@ -146,13 +147,15 @@ func TestControl(t *testing.T) {
|
|
|
func TestCloseBeforeFinalFrame(t *testing.T) {
|
|
|
const bufSize = 512
|
|
|
|
|
|
+ expectedErr := &CloseError{Code: CloseNormalClosure, Text: "hello"}
|
|
|
+
|
|
|
var b1, b2 bytes.Buffer
|
|
|
wc := newConn(fakeNetConn{Reader: nil, Writer: &b1}, false, 1024, bufSize)
|
|
|
rc := newConn(fakeNetConn{Reader: &b1, Writer: &b2}, true, 1024, 1024)
|
|
|
|
|
|
w, _ := wc.NextWriter(BinaryMessage)
|
|
|
w.Write(make([]byte, bufSize+bufSize/2))
|
|
|
- wc.WriteControl(CloseMessage, FormatCloseMessage(CloseNormalClosure, ""), time.Now().Add(10*time.Second))
|
|
|
+ wc.WriteControl(CloseMessage, FormatCloseMessage(expectedErr.Code, expectedErr.Text), time.Now().Add(10*time.Second))
|
|
|
w.Close()
|
|
|
|
|
|
op, r, err := rc.NextReader()
|
|
|
@@ -160,12 +163,12 @@ func TestCloseBeforeFinalFrame(t *testing.T) {
|
|
|
t.Fatalf("NextReader() returned %d, %v", op, err)
|
|
|
}
|
|
|
_, err = io.Copy(ioutil.Discard, r)
|
|
|
- if err != errUnexpectedEOF {
|
|
|
- t.Fatalf("io.Copy() returned %v, want %v", err, errUnexpectedEOF)
|
|
|
+ if !reflect.DeepEqual(err, expectedErr) {
|
|
|
+ t.Fatalf("io.Copy() returned %v, want %v", err, expectedErr)
|
|
|
}
|
|
|
_, _, err = rc.NextReader()
|
|
|
- if err != io.EOF {
|
|
|
- t.Fatalf("NextReader() returned %v, want %v", err, io.EOF)
|
|
|
+ if !reflect.DeepEqual(err, expectedErr) {
|
|
|
+ t.Fatalf("NextReader() returned %v, want %v", err, expectedErr)
|
|
|
}
|
|
|
}
|
|
|
|