github.com/itscaro/cli@v0.0.0-20190705081621-c9db0fe93829/e2e/trust/sign_test.go (about) 1 package trust 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/docker/cli/e2e/internal/fixtures" 8 "github.com/docker/cli/internal/test/environment" 9 "gotest.tools/assert" 10 is "gotest.tools/assert/cmp" 11 "gotest.tools/fs" 12 "gotest.tools/icmd" 13 "gotest.tools/skip" 14 ) 15 16 const ( 17 localImage = "registry:5000/signlocal:v1" 18 signImage = "registry:5000/sign:v1" 19 ) 20 21 func TestSignLocalImage(t *testing.T) { 22 skip.If(t, environment.RemoteDaemon()) 23 24 dir := fixtures.SetupConfigFile(t) 25 defer dir.Remove() 26 icmd.RunCmd(icmd.Command("docker", "pull", fixtures.AlpineImage)).Assert(t, icmd.Success) 27 icmd.RunCommand("docker", "tag", fixtures.AlpineImage, signImage).Assert(t, icmd.Success) 28 result := icmd.RunCmd( 29 icmd.Command("docker", "trust", "sign", signImage), 30 fixtures.WithPassphrase("root_password", "repo_password"), 31 fixtures.WithConfig(dir.Path()), fixtures.WithNotary) 32 result.Assert(t, icmd.Success) 33 assert.Check(t, is.Contains(result.Stdout(), fmt.Sprintf("v1: digest: sha256:%s", fixtures.AlpineSha))) 34 35 } 36 37 func TestSignWithLocalFlag(t *testing.T) { 38 skip.If(t, environment.RemoteDaemon()) 39 40 dir := fixtures.SetupConfigFile(t) 41 defer dir.Remove() 42 setupTrustedImageForOverwrite(t, dir) 43 result := icmd.RunCmd( 44 icmd.Command("docker", "trust", "sign", "--local", localImage), 45 fixtures.WithPassphrase("root_password", "repo_password"), 46 fixtures.WithConfig(dir.Path()), fixtures.WithNotary) 47 result.Assert(t, icmd.Success) 48 assert.Check(t, is.Contains(result.Stdout(), fmt.Sprintf("v1: digest: sha256:%s", fixtures.BusyboxSha))) 49 } 50 51 func setupTrustedImageForOverwrite(t *testing.T, dir fs.Dir) { 52 icmd.RunCmd(icmd.Command("docker", "pull", fixtures.AlpineImage)).Assert(t, icmd.Success) 53 icmd.RunCommand("docker", "tag", fixtures.AlpineImage, localImage).Assert(t, icmd.Success) 54 result := icmd.RunCmd( 55 icmd.Command("docker", "-D", "trust", "sign", localImage), 56 fixtures.WithPassphrase("root_password", "repo_password"), 57 fixtures.WithConfig(dir.Path()), fixtures.WithNotary) 58 result.Assert(t, icmd.Success) 59 assert.Check(t, is.Contains(result.Stdout(), fmt.Sprintf("v1: digest: sha256:%s", fixtures.AlpineSha))) 60 icmd.RunCmd(icmd.Command("docker", "pull", fixtures.BusyboxImage)).Assert(t, icmd.Success) 61 icmd.RunCommand("docker", "tag", fixtures.BusyboxImage, localImage).Assert(t, icmd.Success) 62 }