...

Source file src/github.com/docker/docker-credential-helpers/secretservice/secretservice_test.go

Documentation: github.com/docker/docker-credential-helpers/secretservice

     1  //go:build linux && cgo
     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  	// Check how many docker credentials we have when starting the test
    24  	oldAuths, err := helper.List()
    25  	if err != nil {
    26  		t.Fatal(err)
    27  	}
    28  
    29  	// If any docker credentials with the tests values we are providing, we
    30  	// remove them as they probably come from a previous failed test
    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  	// Check again how many docker credentials we have when starting the test
    40  	oldAuths, err = helper.List()
    41  	if err != nil {
    42  		t.Fatal(err)
    43  	}
    44  
    45  	// Add new credentials
    46  	if err := helper.Add(creds); err != nil {
    47  		t.Fatal(err)
    48  	}
    49  
    50  	// Verify that it is inside the secret service store
    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  	// We should have one more credential than before adding
    65  	newAuths, err := helper.List()
    66  	if err != nil || (len(newAuths)-len(oldAuths) != 1) {
    67  		t.Fatal(err)
    68  	}
    69  	oldAuths = newAuths
    70  
    71  	// Deleting the credentials associated to current server url should succeed
    72  	if err := helper.Delete(creds.ServerURL); err != nil {
    73  		t.Fatal(err)
    74  	}
    75  
    76  	// We should have one less credential than before deleting
    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