func TestSimpleEcho(t *testing.T) { echoOnce.Do(startEchoServer) url := fmt.Sprintf("ws://%s%s", echoServerAddr, "/event") conn, err := websocket.Dial(url, "", "http://localhost/") if err != nil { t.Errorf("WebSocket handshake error: %v", err) return } var event straumur.Event event.Description = "hello" if err := websocket.JSON.Send(conn, event); err != nil { t.Errorf("Write: %v", err) } if err := websocket.JSON.Receive(conn, &event); err != nil { t.Errorf("Read: %v", err) } if event.ID != 1 { t.Errorf("event: expected %d got %d", 1, event.ID) } if event.Description != "hello" { t.Errorf("event: expected %q got %q", "hello", event.Description) } if err := websocket.JSON.Send(conn, event); err != nil { t.Errorf("Write: %v", err) } if err := websocket.JSON.Receive(conn, &event); err != nil { t.Errorf("Read: %v", err) } if event.ID != 2 { t.Errorf("event: expected %d got %d", 2, event.ID) } conn.Close() }