"bytes"
"encoding/json"
"io"
+ "mime/multipart"
"net/http"
"net/http/httptest"
"net/url"
- "git.curoverse.com/arvados.git/sdk/go/arvadostest"
+ "git.arvados.org/arvados.git/sdk/go/arvadostest"
check "gopkg.in/check.v1"
)
}
if tr.json {
req.Header.Set("Content-Type", "application/json")
- } else {
+ } else if tr.header.Get("Content-Type") == "" {
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
}
for k, v := range tr.header {
func (s *RouterSuite) TestAttrsInBody(c *check.C) {
attrs := map[string]interface{}{"foo": "bar"}
+
+ multipartBody := new(bytes.Buffer)
+ multipartWriter := multipart.NewWriter(multipartBody)
+ multipartWriter.WriteField("attrs", `{"foo":"bar"}`)
+ multipartWriter.Close()
+
for _, tr := range []testReq{
{attrsKey: "model_name", json: true, attrs: attrs},
{attrsKey: "model_name", json: true, attrs: attrs, jsonAttrsTop: true},
{attrsKey: "model_name", json: true, attrs: attrs, jsonAttrsTop: true, jsonStringParam: true},
{attrsKey: "model_name", json: true, attrs: attrs, jsonAttrsTop: false, jsonStringParam: true},
+ {body: multipartBody, header: http.Header{"Content-Type": []string{multipartWriter.FormDataContentType()}}},
} {
c.Logf("tr: %#v", tr)
req := tr.Request()