mirror of https://github.com/gorilla/websocket.git
32 lines
553 B
Go
32 lines
553 B
Go
|
package websocket
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"io"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
type nopCloser struct{ io.Writer }
|
||
|
|
||
|
func (nopCloser) Close() error { return nil }
|
||
|
|
||
|
func TestTruncWriter(t *testing.T) {
|
||
|
const data = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijlkmnopqrstuvwxyz987654321"
|
||
|
for n := 1; n <= 10; n++ {
|
||
|
var b bytes.Buffer
|
||
|
w := &truncWriter{w: nopCloser{&b}}
|
||
|
p := []byte(data)
|
||
|
for len(p) > 0 {
|
||
|
m := len(p)
|
||
|
if m > n {
|
||
|
m = n
|
||
|
}
|
||
|
w.Write(p[:m])
|
||
|
p = p[m:]
|
||
|
}
|
||
|
if b.String() != data[:len(data)-len(w.p)] {
|
||
|
t.Errorf("%d: %q", n, b.String())
|
||
|
}
|
||
|
}
|
||
|
}
|