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  }