github.com/docker/docker-ce@v17.12.1-ce-rc2+incompatible/components/cli/e2e/image/pull_test.go (about) 1 package image 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/docker/cli/e2e/internal/fixtures" 8 "github.com/gotestyourself/gotestyourself/golden" 9 "github.com/gotestyourself/gotestyourself/icmd" 10 ) 11 12 const registryPrefix = "registry:5000" 13 14 func TestPullWithContentTrust(t *testing.T) { 15 image := createMaskedTrustedRemoteImage(t, "trust", "latest") 16 17 result := icmd.RunCmd(icmd.Command("docker", "pull", image), fixtures.WithTrust, fixtures.WithNotary) 18 result.Assert(t, icmd.Success) 19 golden.Assert(t, result.Stderr(), "pull-with-content-trust-err.golden") 20 golden.Assert(t, result.Stdout(), "pull-with-content-trust.golden") 21 } 22 23 // createMaskedTrustedRemoteImage creates a remote image that is signed with 24 // content trust, then pushes a different untrusted image at the same tag. 25 func createMaskedTrustedRemoteImage(t *testing.T, repo, tag string) string { 26 image := createTrustedRemoteImage(t, repo, tag) 27 createNamedUnsignedImageFromBusyBox(t, image) 28 return image 29 } 30 31 func createTrustedRemoteImage(t *testing.T, repo, tag string) string { 32 image := fmt.Sprintf("%s/%s:%s", registryPrefix, repo, tag) 33 icmd.RunCommand("docker", "pull", fixtures.AlpineImage).Assert(t, icmd.Success) 34 icmd.RunCommand("docker", "tag", fixtures.AlpineImage, image).Assert(t, icmd.Success) 35 result := icmd.RunCmd( 36 icmd.Command("docker", "push", image), 37 fixtures.WithPassphrase("root_password", "repo_password"), fixtures.WithTrust, fixtures.WithNotary) 38 result.Assert(t, icmd.Success) 39 icmd.RunCommand("docker", "rmi", image).Assert(t, icmd.Success) 40 return image 41 } 42 43 func createNamedUnsignedImageFromBusyBox(t *testing.T, image string) { 44 icmd.RunCommand("docker", "pull", fixtures.BusyboxImage).Assert(t, icmd.Success) 45 icmd.RunCommand("docker", "tag", fixtures.BusyboxImage, image).Assert(t, icmd.Success) 46 icmd.RunCommand("docker", "push", image).Assert(t, icmd.Success) 47 icmd.RunCommand("docker", "rmi", image).Assert(t, icmd.Success) 48 }