Files
vulture/main_test.go

66 lines
1.2 KiB
Go

package main
import (
"io/ioutil"
"net/http"
"net/http/httptest"
"os"
"path"
"testing"
)
func TestInitialParams(t *testing.T) {
params := GetDefaultParams()
if params.Port != 8000 {
t.Error("wrong port")
}
if params.ServingAddress != "localhost" {
t.Error("wrong png dpi")
}
if len(params.MongoServers) != 1 {
t.Error("bad default number of mongo servers", len(params.MongoServers))
return
}
ms := params.MongoServers[0]
if ms.Name != "localhost" || ms.Url != "localhost:27017" {
t.Error("bad ms", ms)
}
}
func createMockStaticFile() (*os.File, error) {
f, err := ioutil.TempFile(STATIC_DIR, "go_testing")
if err != nil {
return nil, err
}
return f, ioutil.WriteFile(f.Name(), []byte("hello world"), 0600)
}
func TestServingStaticFiles(t *testing.T) {
ts := httptest.NewServer(createMuxRouter())
defer ts.Close()
f, err := createMockStaticFile()
if err != nil {
t.Error(err)
return
}
defer os.Remove(f.Name())
res, err := http.Get(ts.URL + "/" + path.Base(f.Name()))
if err != nil {
t.Error(err)
return
}
body, err := ioutil.ReadAll(res.Body)
res.Body.Close()
if err != nil {
t.Error(err)
return
}
if string(body) != "hello world" {
t.Error(f.Name())
}
}