...

Source file src/github.com/docker/docker-credential-helpers/pass/pass_test.go

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

     1  //go:build !windows
     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