diff --git a/webserver/api.go b/webserver/api.go index 482a281..d12cb1d 100644 --- a/webserver/api.go +++ b/webserver/api.go @@ -9,6 +9,10 @@ import ( "github.com/jech/galene/stats" ) +func parseContentType(ctype string) string { + return strings.Trim(strings.Split(ctype, ";")[0], " ") +} + func apiHandler(w http.ResponseWriter, r *http.Request) { username, password, ok := r.BasicAuth() if !ok { diff --git a/webserver/webserver_test.go b/webserver/webserver_test.go index 007816c..dbcab15 100644 --- a/webserver/webserver_test.go +++ b/webserver/webserver_test.go @@ -124,6 +124,25 @@ func TestParseSplit(t *testing.T) { } } +func TestParseContentType(t *testing.T) { + a := []struct{ a, b string }{ + {"", ""}, + {"text/plain", "text/plain"}, + {"text/plain;charset=utf-8", "text/plain"}, + {"text/plain; charset=utf-8", "text/plain"}, + {"text/plain ; charset=utf-8", "text/plain"}, + } + + for _, ab := range a { + b := parseContentType(ab.a) + if b != ab.b { + t.Errorf("Content type %v, got %v, expected %v", + ab.a, b, ab.b, + ) + } + } +} + func TestParseBearerToken(t *testing.T) { a := []struct{ a, b string }{ {"", ""},