...
1 package global
2
3 import (
4 "net/http"
5 "net/http/httptest"
6 "strings"
7 "testing"
8
9 "github.com/docker/cli/internal/test/environment"
10 "gotest.tools/v3/assert"
11 "gotest.tools/v3/icmd"
12 "gotest.tools/v3/skip"
13 )
14
15 func TestTLSVerify(t *testing.T) {
16
17 skip.If(t, environment.RemoteDaemon())
18
19 icmd.RunCmd(icmd.Command("docker", "ps")).Assert(t, icmd.Success)
20
21
22
23 result := icmd.RunCmd(icmd.Command("docker", "--tlsverify=false", "ps"))
24 result.Assert(t, icmd.Expected{ExitCode: 1, Err: "unable to resolve docker endpoint:"})
25
26 result = icmd.RunCmd(icmd.Command("docker", "--tlsverify=true", "ps"))
27 result.Assert(t, icmd.Expected{ExitCode: 1, Err: "ca.pem"})
28 }
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 func TestTCPSchemeUsesHTTPProxyEnv(t *testing.T) {
47 const responseJSON = `{"Version": "99.99.9", "ApiVersion": "1.41", "MinAPIVersion": "1.12"}`
48 var received string
49 proxyServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
50 received = r.Host
51 w.Header().Set("Content-Type", "application/json")
52 _, _ = w.Write([]byte(responseJSON))
53 }))
54 defer proxyServer.Close()
55
56
57
58
59 result := icmd.RunCmd(
60 icmd.Command("docker", "version", "--format", "{{ .Server.Version }}"),
61 icmd.WithEnv("HTTP_PROXY="+proxyServer.URL, "DOCKER_HOST=tcp://docker.acme.example.com:2376"),
62 )
63
64 result.Assert(t, icmd.Success)
65 assert.Equal(t, strings.TrimSpace(result.Stdout()), "99.99.9")
66 assert.Equal(t, received, "docker.acme.example.com:2376")
67 }
68
View as plain text