github.com/LazyboyChen7/engine@v17.12.1-ce-rc2+incompatible/integration-cli/docker_api_session_test.go (about) 1 package main 2 3 import ( 4 "net/http" 5 6 "github.com/docker/docker/integration-cli/checker" 7 "github.com/docker/docker/integration-cli/request" 8 "github.com/go-check/check" 9 ) 10 11 func (s *DockerSuite) TestSessionCreate(c *check.C) { 12 testRequires(c, ExperimentalDaemon) 13 14 res, body, err := request.Post("/session", func(r *http.Request) error { 15 r.Header.Set("X-Docker-Expose-Session-Uuid", "testsessioncreate") // so we don't block default name if something else is using it 16 r.Header.Set("Upgrade", "h2c") 17 return nil 18 }) 19 c.Assert(err, checker.IsNil) 20 c.Assert(res.StatusCode, checker.Equals, http.StatusSwitchingProtocols) 21 c.Assert(res.Header.Get("Upgrade"), checker.Equals, "h2c") 22 c.Assert(body.Close(), checker.IsNil) 23 } 24 25 func (s *DockerSuite) TestSessionCreateWithBadUpgrade(c *check.C) { 26 testRequires(c, ExperimentalDaemon) 27 28 res, body, err := request.Post("/session") 29 c.Assert(err, checker.IsNil) 30 c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest) 31 buf, err := request.ReadBody(body) 32 c.Assert(err, checker.IsNil) 33 34 out := string(buf) 35 c.Assert(out, checker.Contains, "no upgrade") 36 37 res, body, err = request.Post("/session", func(r *http.Request) error { 38 r.Header.Set("Upgrade", "foo") 39 return nil 40 }) 41 c.Assert(err, checker.IsNil) 42 c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest) 43 buf, err = request.ReadBody(body) 44 c.Assert(err, checker.IsNil) 45 46 out = string(buf) 47 c.Assert(out, checker.Contains, "not supported") 48 }