resize_test.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package container // import "github.com/docker/docker/integration/container"
  2. import (
  3. "net/http"
  4. "testing"
  5. "time"
  6. "github.com/docker/docker/api/types"
  7. "github.com/docker/docker/api/types/versions"
  8. "github.com/docker/docker/errdefs"
  9. "github.com/docker/docker/integration/internal/container"
  10. req "github.com/docker/docker/testutil/request"
  11. "gotest.tools/v3/assert"
  12. is "gotest.tools/v3/assert/cmp"
  13. "gotest.tools/v3/poll"
  14. "gotest.tools/v3/skip"
  15. )
  16. func TestResize(t *testing.T) {
  17. ctx := setupTest(t)
  18. apiClient := testEnv.APIClient()
  19. cID := container.Run(ctx, t, apiClient, container.WithTty(true))
  20. poll.WaitOn(t, container.IsInState(ctx, apiClient, cID, "running"), poll.WithDelay(100*time.Millisecond))
  21. err := apiClient.ContainerResize(ctx, cID, types.ResizeOptions{
  22. Height: 40,
  23. Width: 40,
  24. })
  25. assert.NilError(t, err)
  26. }
  27. func TestResizeWithInvalidSize(t *testing.T) {
  28. skip.If(t, versions.LessThan(testEnv.DaemonAPIVersion(), "1.32"), "broken in earlier versions")
  29. ctx := setupTest(t)
  30. apiClient := testEnv.APIClient()
  31. cID := container.Run(ctx, t, apiClient)
  32. poll.WaitOn(t, container.IsInState(ctx, apiClient, cID, "running"), poll.WithDelay(100*time.Millisecond))
  33. endpoint := "/containers/" + cID + "/resize?h=foo&w=bar"
  34. res, _, err := req.Post(ctx, endpoint)
  35. assert.NilError(t, err)
  36. assert.Check(t, is.DeepEqual(http.StatusBadRequest, res.StatusCode))
  37. }
  38. func TestResizeWhenContainerNotStarted(t *testing.T) {
  39. ctx := setupTest(t)
  40. apiClient := testEnv.APIClient()
  41. cID := container.Create(ctx, t, apiClient, container.WithCmd("echo"))
  42. err := apiClient.ContainerResize(ctx, cID, types.ResizeOptions{
  43. Height: 40,
  44. Width: 40,
  45. })
  46. assert.Check(t, is.ErrorType(err, errdefs.IsConflict))
  47. assert.Check(t, is.ErrorContains(err, "is not running"))
  48. }