Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions cmd/derod/rpc/gorilla_websocket_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package rpc

import (
"net/http"
"net/http/httptest"
"strings"
"testing"
"time"

"github.com/gorilla/websocket"
)

// TestGorillaWebsocketRoundTrip exercises the vendored gorilla/websocket v1.5.3
// both as server (Upgrader) and client (Dialer), confirming the vendor swap
// compiles and behaves like upstream for a basic text echo.
func TestGorillaWebsocketRoundTrip(t *testing.T) {
upgrader := websocket.Upgrader{
CheckOrigin: func(r *http.Request) bool { return true },
}

srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
c, err := upgrader.Upgrade(w, r, nil)
if err != nil {
return
}
defer c.Close()
for {
mt, msg, err := c.ReadMessage()
if err != nil {
return
}
if err := c.WriteMessage(mt, msg); err != nil {
return
}
}
}))
defer srv.Close()

wsURL := "ws" + strings.TrimPrefix(srv.URL, "http") + "/ws"

dialer := websocket.Dialer{HandshakeTimeout: 5 * time.Second}
conn, _, err := dialer.Dial(wsURL, nil)
if err != nil {
t.Fatalf("dial failed: %v", err)
}
defer conn.Close()

want := "dero-grpc-gorilla-roundtrip"
if err := conn.WriteMessage(websocket.TextMessage, []byte(want)); err != nil {
t.Fatalf("write failed: %v", err)
}

if err := conn.SetReadDeadline(time.Now().Add(5 * time.Second)); err != nil {
t.Fatalf("set read deadline failed: %v", err)
}
mt, got, err := conn.ReadMessage()
if err != nil {
t.Fatalf("read failed: %v", err)
}
if mt != websocket.TextMessage {
t.Fatalf("unexpected message type: %d", mt)
}
if string(got) != want {
t.Fatalf("echo mismatch: got %q want %q", string(got), want)
}
}
130 changes: 62 additions & 68 deletions vendor/github.com/gorilla/websocket/.circleci/config.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

25 changes: 0 additions & 25 deletions vendor/github.com/gorilla/websocket/.gitignore

This file was deleted.

33 changes: 1 addition & 32 deletions vendor/github.com/gorilla/websocket/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading