this seems okay
This commit is contained in:
@@ -2,25 +2,17 @@ package server
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"local/s2sa/s2sa/logg"
|
||||
"local/s2sa/s2sa/server/router"
|
||||
"local/s2sa/s2sa/services"
|
||||
"local/s2sa/s2sa/storage"
|
||||
"local/rproxy3/storage"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestServerStart(t *testing.T) {
|
||||
server, _, _ := mockServer()
|
||||
server := mockServer()
|
||||
|
||||
checked := false
|
||||
if err := server.Add("/hello/world", func(_ http.ResponseWriter, _ *http.Request) {
|
||||
checked = true
|
||||
}); err != nil {
|
||||
if err := server.Route("world", "http://hello.localhost"+server.addr); err != nil {
|
||||
t.Fatalf("cannot add route: %v", err)
|
||||
}
|
||||
|
||||
@@ -30,58 +22,35 @@ func TestServerStart(t *testing.T) {
|
||||
}
|
||||
}()
|
||||
|
||||
if resp, err := http.Get("http://localhost" + server.addr + "/hello/world"); err != nil {
|
||||
r, _ := http.NewRequest("GET", "http://world.localhost"+server.addr, nil)
|
||||
if _, err := (&http.Client{}).Do(r); err != nil {
|
||||
t.Errorf("failed to get: %v", err)
|
||||
} else if resp.StatusCode != 200 {
|
||||
t.Errorf("wrong status: %v", resp.StatusCode)
|
||||
} else if !checked {
|
||||
t.Errorf("didnt hit handler")
|
||||
}
|
||||
}
|
||||
|
||||
func mockServer() (*Server, string, string) {
|
||||
f, _ := os.Open(os.DevNull)
|
||||
logg.ConfigFile(f)
|
||||
func mockServer() *Server {
|
||||
portServer := httptest.NewServer(nil)
|
||||
port := strings.Split(portServer.URL, ":")[2]
|
||||
portServer.Close()
|
||||
s := &Server{
|
||||
router: router.New(),
|
||||
db: services.New(storage.NewMap()),
|
||||
authdb: services.New(storage.NewMap()),
|
||||
addr: ":" + port,
|
||||
db: storage.NewMap(),
|
||||
addr: ":" + port,
|
||||
}
|
||||
s.authdb.Register(serverNS)
|
||||
if err := s.Routes(); err != nil {
|
||||
panic(fmt.Sprintf("cannot initiate server routes; %v", err))
|
||||
}
|
||||
|
||||
defaultName := "name"
|
||||
if err := s.db.Register(defaultName); err != nil {
|
||||
panic(fmt.Sprintf("cannot register: %v", err))
|
||||
}
|
||||
token, err := s.db.New("name", "to")
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("cannot generate: %v", err))
|
||||
}
|
||||
defaultAccessor := token.Accessor
|
||||
return s, defaultName, defaultAccessor
|
||||
return s
|
||||
}
|
||||
|
||||
func TestServerAdd(t *testing.T) {
|
||||
server, _, _ := mockServer()
|
||||
path := "/hello/world"
|
||||
if err := server.Add(path, echoHTTP); err != nil {
|
||||
t.Fatalf("cannot add path: %v", err)
|
||||
func TestServerRoute(t *testing.T) {
|
||||
server := mockServer()
|
||||
if err := server.Route("world", "http://hello.localhost"+server.addr); err != nil {
|
||||
t.Fatalf("cannot add route: %v", err)
|
||||
}
|
||||
w := httptest.NewRecorder()
|
||||
r, _ := http.NewRequest("GET", path, nil)
|
||||
r, _ := http.NewRequest("GET", "http://world.localhost"+server.addr, nil)
|
||||
server.ServeHTTP(w, r)
|
||||
b, err := ioutil.ReadAll(w.Body)
|
||||
if err != nil {
|
||||
t.Fatalf("cannot read body: %v", err)
|
||||
}
|
||||
if string(b) != path {
|
||||
t.Errorf("cannot hit endpoint: %s", b)
|
||||
if w.Code != 502 {
|
||||
t.Fatalf("cannot proxy from 'world' to 'hello', status %v", w.Code)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user