container_test.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package container // import "github.com/docker/docker/integration/container"
  2. import (
  3. "net/http"
  4. "testing"
  5. "github.com/docker/docker/internal/test/request"
  6. "gotest.tools/assert"
  7. is "gotest.tools/assert/cmp"
  8. )
  9. func TestContainerInvalidJSON(t *testing.T) {
  10. defer setupTest(t)()
  11. endpoints := []string{
  12. "/containers/foobar/copy",
  13. "/containers/foobar/exec",
  14. "/exec/foobar/start",
  15. }
  16. for _, ep := range endpoints {
  17. t.Run(ep, func(t *testing.T) {
  18. t.Parallel()
  19. res, body, err := request.Post(ep, request.RawString("{invalid json"), request.JSON)
  20. assert.NilError(t, err)
  21. assert.Equal(t, res.StatusCode, http.StatusBadRequest)
  22. buf, err := request.ReadBody(body)
  23. assert.NilError(t, err)
  24. assert.Check(t, is.Contains(string(buf), "invalid character 'i' looking for beginning of object key string"))
  25. res, body, err = request.Post(ep, request.JSON)
  26. assert.NilError(t, err)
  27. assert.Equal(t, res.StatusCode, http.StatusBadRequest)
  28. buf, err = request.ReadBody(body)
  29. assert.NilError(t, err)
  30. assert.Check(t, is.Contains(string(buf), "got EOF while reading request body"))
  31. })
  32. }
  33. }