From 3fcb64b17e34832df64e5dbbd268e7dad4b2c240 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 29 Mar 2016 13:22:56 +0200 Subject: Resort tests --- server_test.go | 50 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 17 deletions(-) (limited to 'server_test.go') diff --git a/server_test.go b/server_test.go index 89f3baf..881a11a 100644 --- a/server_test.go +++ b/server_test.go @@ -19,17 +19,23 @@ const ( ) func TestReverseProxy(t *testing.T) { + // Backend server backServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { io.WriteString(w, cannary) })) defer backServer.Close() - server, err := NewServer(dataFile) + // Websocket echo server + wsServer := httptest.NewServer(websocket.Handler(func(ws *websocket.Conn) { + io.Copy(ws, ws) + })) + defer wsServer.Close() + wsURL, err := url.Parse(wsServer.URL) if err != nil { t.Error(err) } - defer os.Remove(dataFile) + // RPC Server rpcServer := httptest.NewServer(nil) defer rpcServer.Close() rpcURL, err := url.Parse(rpcServer.URL) @@ -37,6 +43,7 @@ func TestReverseProxy(t *testing.T) { t.Error(err) } + // Frontend server frontServer := httptest.NewServer(nil) defer frontServer.Close() frontURL, err := url.Parse(frontServer.URL) @@ -44,15 +51,27 @@ func TestReverseProxy(t *testing.T) { t.Error(err) } - rpcClient, err := DialRPC(rpcURL.Host) + // Initialize proxy server + server, err := NewServer(dataFile) if err != nil { t.Error(err) } - err = rpcClient.Call("GoXY.Add", Entry{ServerName: frontURL.Host, Upstream: backServer.URL}, nil) + defer os.Remove(dataFile) + + // Add routing entries + rpcClient, err := DialRPC(rpcURL.Host) if err != nil { t.Error(err) } - defer rpcClient.Call("GoXY.Del", frontURL.Host, nil) + + // Test HTTP proxy + e := Entry{ + ServerName: frontURL.Host, + Upstream: backServer.URL, + } + if err := rpcClient.Call("GoXY.Add", e, nil); err != nil { + t.Error(err) + } frontServer.Config.Handler = server.Handler @@ -71,22 +90,16 @@ func TestReverseProxy(t *testing.T) { t.Error("got", string(b), "expected", cannary) } - // XXX WebSocket + rpcClient.Call("GoXY.Del", frontURL.Host, nil) - wsServer := httptest.NewServer(websocket.Handler(func(ws *websocket.Conn) { - io.Copy(ws, ws) - })) - defer wsServer.Close() - wsURL, err := url.Parse(wsServer.URL) - if err != nil { - t.Error(err) + // Test WebSocket proxy + e = Entry{ + ServerName: frontURL.Host, + Upstream: "ws://" + wsURL.Host, } - - err = rpcClient.Call("GoXY.Add", Entry{ServerName: frontURL.Host, Upstream: "ws://" + wsURL.Host}, nil) - if err != nil { + if err := rpcClient.Call("GoXY.Add", e, nil); err != nil { t.Error(err) } - defer rpcClient.Call("GoXY.Del", frontURL.Host, nil) frontServer.Config.Handler = server.Handler @@ -94,6 +107,7 @@ func TestReverseProxy(t *testing.T) { if err != nil { t.Error(err) } + if _, err := ws.Write([]byte(cannary)); err != nil { t.Error(err) } @@ -104,4 +118,6 @@ func TestReverseProxy(t *testing.T) { if !bytes.Equal(msg, []byte(cannary)) { t.Error("got", string(msg), "expected", cannary) } + + rpcClient.Call("GoXY.Del", frontURL.Host, nil) } -- cgit v1.2.3