Add test for content length on 404

This commit is contained in:
Max Brosnahan 2015-11-05 17:59:24 -07:00
parent 7c7c49f786
commit dc5c38354f
2 changed files with 24 additions and 3 deletions

View File

@ -44,7 +44,7 @@ type httpTest struct {
ResHeader map[string]string
}
func (test *httpTest) Run(handler http.Handler, t *testing.T) {
func (test *httpTest) Run(handler http.Handler, t *testing.T) *httptest.ResponseRecorder {
t.Log(test.Name)
req, _ := http.NewRequest(test.Method, test.URL, test.ReqBody)
@ -77,6 +77,8 @@ func (test *httpTest) Run(handler http.Handler, t *testing.T) {
if test.ResBody != "" && string(w.Body.Bytes()) != test.ResBody {
t.Errorf("Expected '%s' as body (got '%s'", test.ResBody, string(w.Body.Bytes()))
}
return w
}
type methodOverrideStore struct {

View File

@ -3,6 +3,7 @@ package tusd
import (
"net/http"
"os"
"strconv"
"testing"
)
@ -46,14 +47,32 @@ func TestHead(t *testing.T) {
"Cache-Control": "no-store",
},
}).Run(handler, t)
}
(&httpTest{
func TestHead404(t *testing.T) {
handler, _ := NewHandler(Config{
BasePath: "https://buy.art/",
DataStore: headStore{},
})
resp := (&httpTest{
Name: "Non-existing file",
Method: "HEAD",
URL: "no",
ReqHeader: map[string]string{
"Tus-Resumable": "1.0.0",
},
Code: http.StatusNotFound,
Code: http.StatusNotFound,
ResBody: "",
}).Run(handler, t)
body := string(resp.Body.Bytes())
if body != "" {
t.Errorf("Expected body to be empty. Got: %v", body)
}
contentLength := resp.Header().Get("Content-Length")
if contentLength != strconv.Itoa(len(body)) {
t.Errorf("Expected content length header to match body length. Got: %v", contentLength)
}
}