aboutsummaryrefslogtreecommitdiff
path: root/server_test.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-03-31 19:03:12 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-03-31 19:03:12 +0200
commit2dabd37069d8495d7cf131f1bb749da5380ba846 (patch)
tree272718fcff1cc7051d5aa17e68c1bd3f96e3edca /server_test.go
parent82d5ec96afadf1b8ba26ccdc2bc901a420c8be64 (diff)
Add tests for 500/404
Diffstat (limited to 'server_test.go')
-rw-r--r--server_test.go59
1 files changed, 37 insertions, 22 deletions
diff --git a/server_test.go b/server_test.go
index e322195..372a63b 100644
--- a/server_test.go
+++ b/server_test.go
@@ -1,14 +1,18 @@
package goxy
import (
+ "bytes"
"crypto/tls"
"crypto/x509"
+ "errors"
"io"
"io/ioutil"
"log"
"net/http"
"net/http/httptest"
"testing"
+
+ "golang.org/x/net/websocket"
)
type Cannary string
@@ -60,6 +64,9 @@ func get(uri string) (string, error) {
if err != nil {
return "", err
}
+ if resp.StatusCode != http.StatusOK {
+ return "", errors.New(resp.Status)
+ }
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
@@ -96,7 +103,6 @@ func (c Cannary) Equal(s string) bool {
func TestReverseProxy(t *testing.T) {
backServer := httptest.NewServer(cannary)
- defer backServer.Close()
t.Log("start", backServer.URL)
e := Entry{
@@ -108,19 +114,32 @@ func TestReverseProxy(t *testing.T) {
}
t.Log("add", e)
+ // normal connection
resp, err := get("http://" + wwwServer)
if err != nil {
t.Error(err)
}
-
if !cannary.Equal(resp) {
t.Errorf("got %q expected %q", resp, cannary)
}
+ // closed connection
+ backServer.Close()
+ resp, err = get("http://" + wwwServer)
+ if err == nil || err.Error() != "500 Internal Server Error" {
+ t.Errorf("got %q expected %v", err, http.StatusInternalServerError)
+ }
+
+ // removed route
if err := del(wwwServer); err != nil {
t.Error(err)
}
t.Log("del", wwwServer)
+
+ resp, err = get("http://" + wwwServer)
+ if err == nil || err.Error() != "404 Not Found" {
+ t.Errorf("got %q expected %v", err, http.StatusNotFound)
+ }
}
func TestReverseProxyTLS(t *testing.T) {
@@ -155,29 +174,23 @@ func TestReverseProxyTLS(t *testing.T) {
}
func TestWebsocketProxy(t *testing.T) {
- /*
- // Websocket echo server
- wsServer := httptest.NewServer(websocket.Handler(func(ws *websocket.Conn) {
- io.Copy(ws, ws)
- }))
- defer wsServer.Close()
- t.Log("start ws server @", wsServer.URL)
- */
-}
+ wsServer := httptest.NewServer(websocket.Handler(func(ws *websocket.Conn) {
+ io.Copy(ws, ws)
+ }))
+ defer wsServer.Close()
+ t.Log("start ws", wsServer.URL)
-/*
// Test WebSocket proxy
- e = Entry{
- Host: frontServer.URL,
+ e := Entry{
+ Host: "ws://" + wwwServer,
Upstream: wsServer.URL,
}
- if err := rpcClient.Call("GoXY.Add", e, nil); err != nil {
+ if err := add(e); err != nil {
t.Error(err)
}
+ t.Log("add", e)
- frontServer.Config.Handler = server.wwwServer.Handler
-
- ws, err := websocket.Dial("ws://"+frontURL.Host, "", "http://localhost")
+ ws, err := websocket.Dial("ws://"+wwwServer, "", "http://localhost")
if err != nil {
t.Error(err)
}
@@ -190,8 +203,10 @@ func TestWebsocketProxy(t *testing.T) {
t.Error(err)
}
if !bytes.Equal(msg, []byte(cannary)) {
- t.Error("got", string(msg), "expected", cannary)
+ t.Errorf("got %q expected %q", string(msg), cannary)
}
-
- rpcClient.Call("GoXY.Del", frontURL.Host, nil)
-*/
+ if err := del(tlsServer); err != nil {
+ t.Error(err)
+ }
+ t.Log("del", tlsServer)
+}