...
1
2
3 package pass
4
5 import (
6 "strings"
7 "testing"
8
9 "github.com/docker/docker-credential-helpers/credentials"
10 )
11
12 func TestPassHelper(t *testing.T) {
13 creds := &credentials.Credentials{
14 ServerURL: "https://foobar.example.com:2376/v1",
15 Username: "nothing",
16 Secret: "isthebestmeshuggahalbum",
17 }
18
19 helper := Pass{}
20 if err := helper.checkInitialized(); err != nil {
21 t.Error(err)
22 }
23
24 if err := helper.Add(creds); err != nil {
25 t.Error(err)
26 }
27
28 u, s, err := helper.Get(creds.ServerURL)
29 if err != nil {
30 t.Error(err)
31 }
32 if u != creds.Username {
33 t.Errorf("invalid username %s", u)
34 }
35 if s != creds.Secret {
36 t.Errorf("invalid secret: %s", s)
37 }
38
39 if err := helper.Delete(creds.ServerURL); err != nil {
40 t.Error(err)
41 }
42 if _, _, err := helper.Get(creds.ServerURL); !credentials.IsErrCredentialsNotFound(err) {
43 t.Errorf("expected credentials not found, actual: %v", err)
44 }
45 }
46
47 func TestPassHelperCheckInit(t *testing.T) {
48 helper := Pass{}
49 if v := helper.CheckInitialized(); !v {
50 t.Errorf("expected true, actual: %v", v)
51 }
52 }
53
54 func TestPassHelperList(t *testing.T) {
55 creds := []*credentials.Credentials{
56 {
57 ServerURL: "https://foobar.example.com:2376/v1",
58 Username: "foo",
59 Secret: "isthebestmeshuggahalbum",
60 },
61 {
62 ServerURL: "https://foobar.example.com:2375/v1",
63 Username: "bar",
64 Secret: "isthebestmeshuggahalbum",
65 },
66 }
67
68 helper := Pass{}
69 if err := helper.checkInitialized(); err != nil {
70 t.Error(err)
71 }
72
73 for _, cred := range creds {
74 if err := helper.Add(cred); err != nil {
75 t.Error(err)
76 }
77 }
78
79 credsList, err := helper.List()
80 if err != nil {
81 t.Error(err)
82 }
83 for server, username := range credsList {
84 if !(strings.HasSuffix(server, "2376/v1") || strings.HasSuffix(server, "2375/v1")) {
85 t.Errorf("invalid url: %s", server)
86 }
87 if !(username == "foo" || username == "bar") {
88 t.Errorf("invalid username: %v", username)
89 }
90
91 u, s, err := helper.Get(server)
92 if err != nil {
93 t.Error(err)
94 }
95 if u != username {
96 t.Errorf("invalid username %s", u)
97 }
98 if s != "isthebestmeshuggahalbum" {
99 t.Errorf("invalid secret: %s", s)
100 }
101
102 if err := helper.Delete(server); err != nil {
103 t.Error(err)
104 }
105 if _, _, err := helper.Get(server); !credentials.IsErrCredentialsNotFound(err) {
106 t.Errorf("expected credentials not found, actual: %v", err)
107 }
108 }
109
110 credsList, err = helper.List()
111 if err != nil {
112 t.Error(err)
113 }
114 if len(credsList) != 0 {
115 t.Error("didn't delete all creds?")
116 }
117 }
118
119 func TestMissingCred(t *testing.T) {
120 helper := Pass{}
121 if _, _, err := helper.Get("garbage"); !credentials.IsErrCredentialsNotFound(err) {
122 t.Errorf("expected credentials not found, actual: %v", err)
123 }
124 }
125
View as plain text