27 lines
560 B
Go
27 lines
560 B
Go
package protocol
|
|
|
|
import (
|
|
"bufio"
|
|
"net"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestReadHeaderV1(t *testing.T) {
|
|
r := bufio.NewReader(strings.NewReader("PROXY TCP4 203.0.113.10 192.0.2.1 443 9000\r\n"))
|
|
h, err := ReadHeader(r)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !h.SrcIP.Equal(net.ParseIP("203.0.113.10")) || h.SrcPort != 443 {
|
|
t.Fatalf("unexpected header %+v", h)
|
|
}
|
|
}
|
|
|
|
func TestReadHeaderRejectsGarbage(t *testing.T) {
|
|
r := bufio.NewReader(strings.NewReader("GET / HTTP/1.1\r\n"))
|
|
if _, err := ReadHeader(r); err == nil {
|
|
t.Fatal("expected error")
|
|
}
|
|
}
|