...
1
2
3 package secretservice
4
5 import (
6 "strings"
7 "testing"
8
9 "github.com/docker/docker-credential-helpers/credentials"
10 )
11
12 func TestSecretServiceHelper(t *testing.T) {
13 t.Skip("test requires gnome-keyring but travis CI doesn't have it")
14
15 creds := &credentials.Credentials{
16 ServerURL: "https://foobar.example.com:2376/v1",
17 Username: "foobar",
18 Secret: "foobarbaz",
19 }
20
21 helper := Secretservice{}
22
23
24 oldAuths, err := helper.List()
25 if err != nil {
26 t.Fatal(err)
27 }
28
29
30
31 for k, v := range oldAuths {
32 if strings.Compare(k, creds.ServerURL) == 0 && strings.Compare(v, creds.Username) == 0 {
33 if err := helper.Delete(creds.ServerURL); err != nil {
34 t.Fatal(err)
35 }
36 }
37 }
38
39
40 oldAuths, err = helper.List()
41 if err != nil {
42 t.Fatal(err)
43 }
44
45
46 if err := helper.Add(creds); err != nil {
47 t.Fatal(err)
48 }
49
50
51 username, secret, err := helper.Get(creds.ServerURL)
52 if err != nil {
53 t.Fatal(err)
54 }
55
56 if username != "foobar" {
57 t.Fatalf("expected %s, got %s\n", "foobar", username)
58 }
59
60 if secret != "foobarbaz" {
61 t.Fatalf("expected %s, got %s\n", "foobarbaz", secret)
62 }
63
64
65 newAuths, err := helper.List()
66 if err != nil || (len(newAuths)-len(oldAuths) != 1) {
67 t.Fatal(err)
68 }
69 oldAuths = newAuths
70
71
72 if err := helper.Delete(creds.ServerURL); err != nil {
73 t.Fatal(err)
74 }
75
76
77 newAuths, err = helper.List()
78 if err != nil || (len(oldAuths)-len(newAuths) != 1) {
79 t.Fatal(err)
80 }
81 }
82
83 func TestMissingCredentials(t *testing.T) {
84 t.Skip("test requires gnome-keyring but travis CI doesn't have it")
85
86 helper := Secretservice{}
87 _, _, err := helper.Get("https://adsfasdf.wrewerwer.com/asdfsdddd")
88 if !credentials.IsErrCredentialsNotFound(err) {
89 t.Fatalf("expected ErrCredentialsNotFound, got %v", err)
90 }
91 }
92
View as plain text