@@ -11,46 +11,33 @@ import (
1111)
1212
1313func  TestParseAuthorizationHeader (t  * testing.T ) {
14- 	t .Run ("Basic" , func (t  * testing.T ) {
15- 		cases  :=  []struct  {
16- 			headerValue  string 
17- 			user , pass   string 
18- 			ok           bool 
19- 		}{
20- 			{"" , "" , "" , false },
21- 			{"?" , "" , "" , false },
22- 			{"foo" , "" , "" , false },
23- 			{"Basic ?" , "" , "" , false },
24- 			{"Basic "  +  base64 .StdEncoding .EncodeToString ([]byte ("foo" )), "" , "" , false },
25- 			{"Basic "  +  base64 .StdEncoding .EncodeToString ([]byte ("foo:bar" )), "foo" , "bar" , true },
26- 			{"basic "  +  base64 .StdEncoding .EncodeToString ([]byte ("foo:bar" )), "foo" , "bar" , true },
27- 		}
28- 		for  _ , c  :=  range  cases  {
29- 			user , pass , ok  :=  ParseAuthorizationHeaderBasic (c .headerValue )
30- 			assert .Equal (t , c .ok , ok , "header %q" , c .headerValue )
31- 			assert .Equal (t , c .user , user , "header %q" , c .headerValue )
32- 			assert .Equal (t , c .pass , pass , "header %q" , c .headerValue )
33- 		}
34- 	})
35- 	t .Run ("BearerToken" , func (t  * testing.T ) {
36- 		cases  :=  []struct  {
37- 			headerValue  string 
38- 			expected     string 
39- 			ok           bool 
40- 		}{
41- 			{"" , "" , false },
42- 			{"?" , "" , false },
43- 			{"any value" , "" , false },
44- 			{"token value" , "value" , true },
45- 			{"Token value" , "value" , true },
46- 			{"bearer value" , "value" , true },
47- 			{"Bearer value" , "value" , true },
48- 			{"Bearer wrong value" , "" , false },
49- 		}
50- 		for  _ , c  :=  range  cases  {
51- 			token , ok  :=  ParseAuthorizationHeaderBearerToken (c .headerValue )
52- 			assert .Equal (t , c .ok , ok , "header %q" , c .headerValue )
53- 			assert .Equal (t , c .expected , token , "header %q" , c .headerValue )
54- 		}
55- 	})
14+ 	type  parsed  =  ParsedAuthorizationHeader 
15+ 	type  basic  =  BasicAuth 
16+ 	type  bearer  =  BearerToken 
17+ 	cases  :=  []struct  {
18+ 		headerValue  string 
19+ 		expected     parsed 
20+ 		ok           bool 
21+ 	}{
22+ 		{"" , parsed {}, false },
23+ 		{"?" , parsed {}, false },
24+ 		{"foo" , parsed {}, false },
25+ 		{"any value" , parsed {}, false },
26+ 
27+ 		{"Basic ?" , parsed {}, false },
28+ 		{"Basic "  +  base64 .StdEncoding .EncodeToString ([]byte ("foo" )), parsed {}, false },
29+ 		{"Basic "  +  base64 .StdEncoding .EncodeToString ([]byte ("foo:bar" )), parsed {BasicAuth : & basic {"foo" , "bar" }}, true },
30+ 		{"basic "  +  base64 .StdEncoding .EncodeToString ([]byte ("foo:bar" )), parsed {BasicAuth : & basic {"foo" , "bar" }}, true },
31+ 
32+ 		{"token value" , parsed {BearerToken : & bearer {"value" }}, true },
33+ 		{"Token value" , parsed {BearerToken : & bearer {"value" }}, true },
34+ 		{"bearer value" , parsed {BearerToken : & bearer {"value" }}, true },
35+ 		{"Bearer value" , parsed {BearerToken : & bearer {"value" }}, true },
36+ 		{"Bearer wrong value" , parsed {}, false },
37+ 	}
38+ 	for  _ , c  :=  range  cases  {
39+ 		ret , ok  :=  ParseAuthorizationHeader (c .headerValue )
40+ 		assert .Equal (t , c .ok , ok , "header %q" , c .headerValue )
41+ 		assert .Equal (t , c .expected , ret , "header %q" , c .headerValue )
42+ 	}
5643}
0 commit comments