| package plugin // import "github.com/docker/docker/plugin" | |
| import ( | |
| "testing" | |
| "github.com/docker/docker/api/types" | |
| ) | |
| func TestValidatePrivileges(t *testing.T) { | |
| testData := map[string]struct { | |
| requiredPrivileges types.PluginPrivileges | |
| privileges types.PluginPrivileges | |
| result bool | |
| }{ | |
| "diff-len": { | |
| requiredPrivileges: []types.PluginPrivilege{ | |
| {Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "ghi"}}, | |
| }, | |
| privileges: []types.PluginPrivilege{ | |
| {Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "ghi"}}, | |
| {Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "789"}}, | |
| }, | |
| result: false, | |
| }, | |
| "diff-value": { | |
| requiredPrivileges: []types.PluginPrivilege{ | |
| {Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "GHI"}}, | |
| {Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "***"}}, | |
| }, | |
| privileges: []types.PluginPrivilege{ | |
| {Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "ghi"}}, | |
| {Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "789"}}, | |
| }, | |
| result: false, | |
| }, | |
| "diff-order-but-same-value": { | |
| requiredPrivileges: []types.PluginPrivilege{ | |
| {Name: "Privilege1", Description: "Description", Value: []string{"abc", "def", "GHI"}}, | |
| {Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "789"}}, | |
| }, | |
| privileges: []types.PluginPrivilege{ | |
| {Name: "Privilege2", Description: "Description", Value: []string{"123", "456", "789"}}, | |
| {Name: "Privilege1", Description: "Description", Value: []string{"GHI", "abc", "def"}}, | |
| }, | |
| result: true, | |
| }, | |
| } | |
| for key, data := range testData { | |
| err := validatePrivileges(data.requiredPrivileges, data.privileges) | |
| if (err == nil) != data.result { | |
| t.Fatalf("Test item %s expected result to be %t, got %t", key, data.result, (err == nil)) | |
| } | |
| } | |
| } |