ghostream/web/web_test.go

54 lines
1.5 KiB
Go

package web
import (
"net/http"
"testing"
"time"
)
// TestHTTPServe tries to serve a real HTTP server and load some pages
func TestHTTPServe(t *testing.T) {
// Load templates
if err := loadTemplates(); err != nil {
t.Errorf("Failed to load templates: %v", err)
}
go Serve(nil, nil, &Options{ListenAddress: "127.0.0.1:8081"})
// Sleep 1 second to ensure that the web server is running, to avoid fails because the request came too early
time.Sleep(1000000000)
// Test GET request
resp, err := http.Get("http://localhost:8081/")
if err != nil {
t.Error("Error while getting /:", err)
}
if resp.StatusCode != http.StatusOK {
t.Errorf("Viewer page returned %v != %v on GET", resp.StatusCode, http.StatusOK)
}
resp, err = http.Get("http://localhost:8081/demo")
if err != nil {
t.Error("Error while getting /demo:", err)
}
if resp.StatusCode != http.StatusOK {
t.Errorf("Viewer page returned %v != %v on GET", resp.StatusCode, http.StatusOK)
}
resp, err = http.Get("http://localhost:8081/static/js/viewer.js")
if err != nil {
t.Error("Error while getting /static/js/viewer/js:", err)
}
if resp.StatusCode != http.StatusOK {
t.Errorf("Viewer page returned %v != %v on GET", resp.StatusCode, http.StatusOK)
}
resp, err = http.Get("http://localhost:8081/_stats")
if err != nil {
t.Error("Error while getting /_stats:", err)
}
if resp.StatusCode != http.StatusOK {
t.Errorf("Viewer page returned %v != %v on GET", resp.StatusCode, http.StatusOK)
}
}