plugin_test.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package common // import "github.com/docker/docker/integration/plugin/common"
  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 TestPluginInvalidJSON(t *testing.T) {
  10. defer setupTest(t)()
  11. endpoints := []string{"/plugins/foobar/set"}
  12. for _, ep := range endpoints {
  13. t.Run(ep, func(t *testing.T) {
  14. t.Parallel()
  15. res, body, err := request.Post(ep, request.RawString("{invalid json"), request.JSON)
  16. assert.NilError(t, err)
  17. assert.Equal(t, res.StatusCode, http.StatusBadRequest)
  18. buf, err := request.ReadBody(body)
  19. assert.NilError(t, err)
  20. assert.Check(t, is.Contains(string(buf), "invalid character 'i' looking for beginning of object key string"))
  21. res, body, err = request.Post(ep, request.JSON)
  22. assert.NilError(t, err)
  23. assert.Equal(t, res.StatusCode, http.StatusBadRequest)
  24. buf, err = request.ReadBody(body)
  25. assert.NilError(t, err)
  26. assert.Check(t, is.Contains(string(buf), "got EOF while reading request body"))
  27. })
  28. }
  29. }