76d8bfdff4
This field was added in f0e5b3d7d8
to
account for older versions of the engine (Docker EE LTS versions), which
did not yet provide the OSType field in Docker info, and had to be manually
set using the TEST_OSTYPE env-var.
This patch removes the field in favor of the equivalent in DaemonInfo. It's
more verbose, but also less ambiguous what information we're using (i.e.,
the platform the daemon is running on, not the local platform).
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
61 lines
1.9 KiB
Go
61 lines
1.9 KiB
Go
package session // import "github.com/docker/docker/integration/session"
|
|
|
|
import (
|
|
"net/http"
|
|
"testing"
|
|
|
|
"github.com/docker/docker/api/types/versions"
|
|
req "github.com/docker/docker/testutil/request"
|
|
"gotest.tools/v3/assert"
|
|
is "gotest.tools/v3/assert/cmp"
|
|
"gotest.tools/v3/skip"
|
|
)
|
|
|
|
func TestSessionCreate(t *testing.T) {
|
|
skip.If(t, testEnv.DaemonInfo.OSType == "windows", "FIXME")
|
|
skip.If(t, versions.LessThan(testEnv.DaemonAPIVersion(), "1.39"), "experimental in older versions")
|
|
|
|
defer setupTest(t)()
|
|
daemonHost := req.DaemonHost()
|
|
|
|
res, body, err := req.Post("/session",
|
|
req.Host(daemonHost),
|
|
req.With(func(r *http.Request) error {
|
|
r.Header.Set("X-Docker-Expose-Session-Uuid", "testsessioncreate") // so we don't block default name if something else is using it
|
|
r.Header.Set("Upgrade", "h2c")
|
|
return nil
|
|
}),
|
|
)
|
|
assert.NilError(t, err)
|
|
assert.NilError(t, body.Close())
|
|
assert.Check(t, is.DeepEqual(res.StatusCode, http.StatusSwitchingProtocols))
|
|
assert.Check(t, is.Equal(res.Header.Get("Upgrade"), "h2c"))
|
|
}
|
|
|
|
func TestSessionCreateWithBadUpgrade(t *testing.T) {
|
|
skip.If(t, testEnv.DaemonInfo.OSType == "windows", "FIXME")
|
|
skip.If(t, versions.LessThan(testEnv.DaemonAPIVersion(), "1.39"), "experimental in older versions")
|
|
|
|
defer setupTest(t)()
|
|
daemonHost := req.DaemonHost()
|
|
|
|
res, body, err := req.Post("/session", req.Host(daemonHost))
|
|
assert.NilError(t, err)
|
|
assert.Check(t, is.DeepEqual(res.StatusCode, http.StatusBadRequest))
|
|
buf, err := req.ReadBody(body)
|
|
assert.NilError(t, err)
|
|
assert.Check(t, is.Contains(string(buf), "no upgrade"))
|
|
|
|
res, body, err = req.Post("/session",
|
|
req.Host(daemonHost),
|
|
req.With(func(r *http.Request) error {
|
|
r.Header.Set("Upgrade", "foo")
|
|
return nil
|
|
}),
|
|
)
|
|
assert.NilError(t, err)
|
|
assert.Check(t, is.DeepEqual(res.StatusCode, http.StatusBadRequest))
|
|
buf, err = req.ReadBody(body)
|
|
assert.NilError(t, err)
|
|
assert.Check(t, is.Contains(string(buf), "not supported"))
|
|
}
|