github.com/mika/distribution@v2.2.2-0.20160108133430-a75790e3d8e0+incompatible/registry/client/auth/authchallenge_test.go (about) 1 package auth 2 3 import ( 4 "net/http" 5 "testing" 6 ) 7 8 func TestAuthChallengeParse(t *testing.T) { 9 header := http.Header{} 10 header.Add("WWW-Authenticate", `Bearer realm="https://auth.example.com/token",service="registry.example.com",other=fun,slashed="he\"\l\lo"`) 11 12 challenges := parseAuthHeader(header) 13 if len(challenges) != 1 { 14 t.Fatalf("Unexpected number of auth challenges: %d, expected 1", len(challenges)) 15 } 16 challenge := challenges[0] 17 18 if expected := "bearer"; challenge.Scheme != expected { 19 t.Fatalf("Unexpected scheme: %s, expected: %s", challenge.Scheme, expected) 20 } 21 22 if expected := "https://auth.example.com/token"; challenge.Parameters["realm"] != expected { 23 t.Fatalf("Unexpected param: %s, expected: %s", challenge.Parameters["realm"], expected) 24 } 25 26 if expected := "registry.example.com"; challenge.Parameters["service"] != expected { 27 t.Fatalf("Unexpected param: %s, expected: %s", challenge.Parameters["service"], expected) 28 } 29 30 if expected := "fun"; challenge.Parameters["other"] != expected { 31 t.Fatalf("Unexpected param: %s, expected: %s", challenge.Parameters["other"], expected) 32 } 33 34 if expected := "he\"llo"; challenge.Parameters["slashed"] != expected { 35 t.Fatalf("Unexpected param: %s, expected: %s", challenge.Parameters["slashed"], expected) 36 } 37 38 }