Browse code

Migrates session tests in integration-cli to api tests

This fix migrates session tests in integration-cli to
api tests in integration.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>

Yong Tang authored on 2018/02/12 08:14:39
Showing 3 changed files
1 1
deleted file mode 100644
... ...
@@ -1,48 +0,0 @@
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
-}
49 1
new file mode 100644
... ...
@@ -0,0 +1,33 @@
0
+package session // import "github.com/docker/docker/integration/session"
1
+
2
+import (
3
+	"fmt"
4
+	"os"
5
+	"testing"
6
+
7
+	"github.com/docker/docker/internal/test/environment"
8
+)
9
+
10
+var testEnv *environment.Execution
11
+
12
+func TestMain(m *testing.M) {
13
+	var err error
14
+	testEnv, err = environment.New()
15
+	if err != nil {
16
+		fmt.Println(err)
17
+		os.Exit(1)
18
+	}
19
+	err = environment.EnsureFrozenImagesLinux(testEnv)
20
+	if err != nil {
21
+		fmt.Println(err)
22
+		os.Exit(1)
23
+	}
24
+
25
+	testEnv.Print()
26
+	os.Exit(m.Run())
27
+}
28
+
29
+func setupTest(t *testing.T) func() {
30
+	environment.ProtectAll(t, testEnv)
31
+	return func() { testEnv.Clean(t) }
32
+}
0 33
new file mode 100644
... ...
@@ -0,0 +1,48 @@
0
+package session // import "github.com/docker/docker/integration/session"
1
+
2
+import (
3
+	"net/http"
4
+	"testing"
5
+
6
+	req "github.com/docker/docker/integration-cli/request"
7
+	"github.com/gotestyourself/gotestyourself/skip"
8
+	"github.com/stretchr/testify/assert"
9
+	"github.com/stretchr/testify/require"
10
+)
11
+
12
+func TestSessionCreate(t *testing.T) {
13
+	skip.If(t, !testEnv.DaemonInfo.ExperimentalBuild)
14
+
15
+	defer setupTest(t)()
16
+
17
+	res, body, err := req.Post("/session", func(r *http.Request) error {
18
+		r.Header.Set("X-Docker-Expose-Session-Uuid", "testsessioncreate") // so we don't block default name if something else is using it
19
+		r.Header.Set("Upgrade", "h2c")
20
+		return nil
21
+	})
22
+	require.NoError(t, err)
23
+	require.NoError(t, body.Close())
24
+	assert.Equal(t, res.StatusCode, http.StatusSwitchingProtocols)
25
+	assert.Equal(t, res.Header.Get("Upgrade"), "h2c")
26
+}
27
+
28
+func TestSessionCreateWithBadUpgrade(t *testing.T) {
29
+	skip.If(t, !testEnv.DaemonInfo.ExperimentalBuild)
30
+
31
+	res, body, err := req.Post("/session")
32
+	require.NoError(t, err)
33
+	assert.Equal(t, res.StatusCode, http.StatusBadRequest)
34
+	buf, err := req.ReadBody(body)
35
+	require.NoError(t, err)
36
+	assert.Contains(t, string(buf), "no upgrade")
37
+
38
+	res, body, err = req.Post("/session", func(r *http.Request) error {
39
+		r.Header.Set("Upgrade", "foo")
40
+		return nil
41
+	})
42
+	require.NoError(t, err)
43
+	assert.Equal(t, res.StatusCode, http.StatusBadRequest)
44
+	buf, err = req.ReadBody(body)
45
+	require.NoError(t, err)
46
+	assert.Contains(t, string(buf), "not supported")
47
+}