Merge pull request #45 from jpfuentes2/jf_use_json_content_type

command/agent: add content-type: application/json header to HTTP API
This commit is contained in:
Mitchell Hashimoto 2014-04-17 11:43:45 -07:00
commit 9e77555651
2 changed files with 29 additions and 0 deletions

View File

@ -125,6 +125,7 @@ func (s *HTTPServer) wrap(handler func(resp http.ResponseWriter, req *http.Reque
goto HAS_ERR
}
resp.Write(buf.Bytes())
resp.Header().Set("Content-Type", "application/json")
}
}
return f

View File

@ -8,6 +8,7 @@ import (
"io/ioutil"
"net/http"
"net/http/httptest"
"os"
"testing"
"time"
)
@ -39,6 +40,33 @@ func TestSetIndex(t *testing.T) {
}
}
func TestContentTypeIsJSON(t *testing.T) {
dir, srv := makeHTTPServer(t)
defer os.RemoveAll(dir)
defer srv.Shutdown()
defer srv.agent.Shutdown()
// Wait for a leader
time.Sleep(100 * time.Millisecond)
resp := httptest.NewRecorder()
handler := func(resp http.ResponseWriter, req *http.Request) (interface{}, error) {
// stub out a DirEntry so that it will be encoded as JSON
return &structs.DirEntry{Key: "key"}, nil
}
req, _ := http.NewRequest("GET", "/v1/kv/key", nil)
srv.wrap(handler)(resp, req)
contentType := resp.Header().Get("Content-Type")
if contentType != "application/json" {
t.Fatalf("Content-Type header was not 'application/json'")
}
}
func TestParseWait(t *testing.T) {
resp := httptest.NewRecorder()
var b structs.BlockingQuery