package handlers_test import ( "encoding/json" "net/http" "net/http/httptest" "net/url" "strings" "testing" "otaupdate/handlers" "github.com/fiskerinc/cloud-services/pkg/httphandlers" "github.com/fiskerinc/cloud-services/pkg/testhelper" ) const headerContentType = "Content-Type" var swaggerHandler http.HandlerFunc func init() { handlers.InitSwaggerDoc() swaggerHandler = httphandlers.GetSwaggerHandler() } func TestHandleSwaggerRedirect(t *testing.T) { req, _ := http.NewRequest("GET", "http://example.com/api", nil) req.RequestURI = req.URL.Path recorder := httptest.NewRecorder() swaggerHandler(recorder, req) validateSwaggerRedirect(t, recorder) } func TestHandleSwagger(t *testing.T) { req, _ := http.NewRequest("GET", "http://example.com/api/", nil) req.RequestURI = req.URL.Path recorder := httptest.NewRecorder() swaggerHandler(recorder, req) validateSwaggerRedirect(t, recorder) } func TestHandleSwaggerJSON(t *testing.T) { contentType := "application/json; charset=utf-8" req, _ := http.NewRequest("GET", "http://example.com/api/doc.json", nil) req.RequestURI = req.URL.Path recorder := httptest.NewRecorder() swaggerHandler(recorder, req) headers := recorder.Result().Header if headers.Get(headerContentType) != contentType { t.Errorf(testhelper.TestErrorTemplate, headerContentType, contentType, headers.Get(headerContentType)) } var data map[string]interface{} err := json.Unmarshal(recorder.Body.Bytes(), &data) if err != nil { t.Error(err) } } func TestHandleSwaggerHTML(t *testing.T) { contentType := "text/html; charset=utf-8" htmlTitle := "