2018-11-05 08:50:33 -05:00
|
|
|
package container // import "github.com/docker/docker/integration/container"
|
|
|
|
|
|
|
|
import (
|
|
|
|
"net/http"
|
|
|
|
"testing"
|
|
|
|
|
2019-08-29 16:52:40 -04:00
|
|
|
"github.com/docker/docker/testutil/request"
|
2020-02-07 08:39:24 -05:00
|
|
|
"gotest.tools/v3/assert"
|
|
|
|
is "gotest.tools/v3/assert/cmp"
|
2018-11-05 08:50:33 -05:00
|
|
|
)
|
|
|
|
|
|
|
|
func TestContainerInvalidJSON(t *testing.T) {
|
|
|
|
defer setupTest(t)()
|
|
|
|
|
|
|
|
endpoints := []string{
|
|
|
|
"/containers/foobar/copy",
|
|
|
|
"/containers/foobar/exec",
|
|
|
|
"/exec/foobar/start",
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, ep := range endpoints {
|
|
|
|
t.Run(ep, func(t *testing.T) {
|
|
|
|
t.Parallel()
|
|
|
|
|
|
|
|
res, body, err := request.Post(ep, request.RawString("{invalid json"), request.JSON)
|
|
|
|
assert.NilError(t, err)
|
|
|
|
assert.Equal(t, res.StatusCode, http.StatusBadRequest)
|
|
|
|
|
|
|
|
buf, err := request.ReadBody(body)
|
|
|
|
assert.NilError(t, err)
|
|
|
|
assert.Check(t, is.Contains(string(buf), "invalid character 'i' looking for beginning of object key string"))
|
|
|
|
|
|
|
|
res, body, err = request.Post(ep, request.JSON)
|
|
|
|
assert.NilError(t, err)
|
|
|
|
assert.Equal(t, res.StatusCode, http.StatusBadRequest)
|
|
|
|
|
|
|
|
buf, err = request.ReadBody(body)
|
|
|
|
assert.NilError(t, err)
|
|
|
|
assert.Check(t, is.Contains(string(buf), "got EOF while reading request body"))
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|