github.1git.de/docker/cli@v26.1.3+incompatible/e2e/plugin/trust_test.go (about) 1 package plugin 2 3 import ( 4 "context" 5 "fmt" 6 "testing" 7 8 "github.com/docker/cli/e2e/internal/fixtures" 9 "github.com/docker/cli/e2e/testutils" 10 "github.com/docker/cli/internal/test/environment" 11 "github.com/docker/docker/api/types/versions" 12 "gotest.tools/v3/icmd" 13 "gotest.tools/v3/skip" 14 ) 15 16 const registryPrefix = "registry:5000" 17 18 func TestInstallWithContentTrust(t *testing.T) { 19 // TODO(krissetto): remove this skip once the fix (see https://github.com/moby/moby/pull/47299) is deployed to moby versions < 25 20 skip.If(t, versions.LessThan(environment.DaemonAPIVersion(t), "1.44")) 21 skip.If(t, environment.SkipPluginTests()) 22 23 pluginName := fmt.Sprintf("%s/plugin-content-trust", registryPrefix) 24 25 dir := fixtures.SetupConfigFile(t) 26 defer dir.Remove() 27 28 ctx, cancel := context.WithCancel(context.Background()) 29 t.Cleanup(cancel) 30 31 pluginDir := testutils.SetupPlugin(t, ctx) 32 t.Cleanup(pluginDir.Remove) 33 34 icmd.RunCommand("docker", "plugin", "create", pluginName, pluginDir.Path()).Assert(t, icmd.Success) 35 result := icmd.RunCmd(icmd.Command("docker", "plugin", "push", pluginName), 36 fixtures.WithConfig(dir.Path()), 37 fixtures.WithTrust, 38 fixtures.WithNotary, 39 fixtures.WithPassphrase("foo", "bar"), 40 ) 41 result.Assert(t, icmd.Expected{ 42 Out: "Signing and pushing trust metadata", 43 }) 44 45 icmd.RunCommand("docker", "plugin", "rm", "-f", pluginName).Assert(t, icmd.Success) 46 47 result = icmd.RunCmd(icmd.Command("docker", "plugin", "install", "--grant-all-permissions", pluginName), 48 fixtures.WithConfig(dir.Path()), 49 fixtures.WithTrust, 50 fixtures.WithNotary, 51 ) 52 result.Assert(t, icmd.Expected{ 53 Out: fmt.Sprintf("Installed plugin %s", pluginName), 54 }) 55 } 56 57 func TestInstallWithContentTrustUntrusted(t *testing.T) { 58 skip.If(t, environment.SkipPluginTests()) 59 60 dir := fixtures.SetupConfigFile(t) 61 defer dir.Remove() 62 63 result := icmd.RunCmd(icmd.Command("docker", "plugin", "install", "--grant-all-permissions", "tiborvass/sample-volume-plugin:latest"), 64 fixtures.WithConfig(dir.Path()), 65 fixtures.WithTrust, 66 fixtures.WithNotary, 67 ) 68 result.Assert(t, icmd.Expected{ 69 ExitCode: 1, 70 Err: "Error: remote trust data does not exist", 71 }) 72 }