mirror of
https://github.com/docker/docker-credential-helpers.git
synced 2026-06-13 16:01:28 +05:30
osxkeychain: list: return full server URIs
Commit4cdcdc2changed the format of `list` output. Before that commit, the json keys were containing full URIs (scheme://host/path[:port]), but afterward, the keys were only containing the path component. With this commit, the `list` operation now returns full URIs (fixing the regression), and also fixes the malformed URIs issue when a port is specified (introduced by19ec1c3, and affecting >=v0.4.2,<v0.9.0). Signed-off-by: Albin Kerouanton <albinker@gmail.com>
This commit is contained in:
@@ -15,11 +15,6 @@ func TestOSXKeychainHelper(t *testing.T) {
|
||||
Username: "foobar",
|
||||
Secret: "foobarbaz",
|
||||
}
|
||||
creds1 := &credentials.Credentials{
|
||||
ServerURL: "https://foobar.example.com:2376/v2",
|
||||
Username: "foobarbaz",
|
||||
Secret: "foobar",
|
||||
}
|
||||
helper := Osxkeychain{}
|
||||
if err := helper.Add(creds); err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -43,19 +38,49 @@ func TestOSXKeychainHelper(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
helper.Add(creds1)
|
||||
defer helper.Delete(creds1.ServerURL)
|
||||
newauths, err := helper.List()
|
||||
if len(newauths)-len(auths) != 1 {
|
||||
if err == nil {
|
||||
t.Fatalf("Error: len(newauths): %d, len(auths): %d", len(newauths), len(auths))
|
||||
}
|
||||
t.Fatalf("Error: len(newauths): %d, len(auths): %d\n Error= %v", len(newauths), len(auths), err)
|
||||
if _, ok := auths[creds.ServerURL]; !ok {
|
||||
t.Fatalf("server %s not found in list, got: %+v", creds.ServerURL, auths)
|
||||
}
|
||||
|
||||
// Insert another token and check if it is in the list
|
||||
creds1 := &credentials.Credentials{
|
||||
ServerURL: "https://foobar.example.com:2376/v2",
|
||||
Username: "foobarbaz",
|
||||
Secret: "foobar",
|
||||
}
|
||||
helper.Add(creds1)
|
||||
defer helper.Delete(creds1.ServerURL)
|
||||
|
||||
auths, err = helper.List()
|
||||
if err != nil {
|
||||
t.Fatalf("operation List failed: %+v", err)
|
||||
}
|
||||
|
||||
if _, ok := auths[creds.ServerURL]; !ok {
|
||||
t.Fatalf("server %s not found in list, got: %+v", creds.ServerURL, auths)
|
||||
}
|
||||
if _, ok := auths[creds1.ServerURL]; !ok {
|
||||
t.Fatalf("server %s not found in list, got: %+v", creds1.ServerURL, auths)
|
||||
}
|
||||
|
||||
// Delete the 1st token inserted
|
||||
if err := helper.Delete(creds.ServerURL); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
auths, err = helper.List()
|
||||
if err != nil {
|
||||
t.Fatalf("operation List failed: %+v", err)
|
||||
}
|
||||
|
||||
// First token should have been deleted
|
||||
if _, ok := auths[creds.ServerURL]; ok {
|
||||
t.Fatalf("server %s was not deleted, got: %+v", creds.ServerURL, auths)
|
||||
}
|
||||
// Second token should still be there
|
||||
if _, ok := auths[creds1.ServerURL]; !ok {
|
||||
t.Fatalf("server %s not found in list, got: %+v", creds1.ServerURL, auths)
|
||||
}
|
||||
}
|
||||
|
||||
// TestOSXKeychainHelperRetrieveAliases verifies that secrets can be accessed
|
||||
|
||||
Reference in New Issue
Block a user