git.iko.soy/typeable/oauth2-proxy
on remove-gap-headers help sign in
66 lines 1.5 kB history raw
1package providers
3import (
4 "fmt"
5 "testing"
7 . "github.com/onsi/gomega"
8)
10func TestMakeAuhtorizationHeader(t *testing.T) {
11 testCases := []struct {
12 name string
13 prefix string
14 token string
15 extraHeaders map[string]string
16 }{
17 {
18 name: "With an empty prefix, token and no additional headers",
19 prefix: "",
20 token: "",
21 extraHeaders: nil,
22 },
23 {
24 name: "With a Bearer token type",
25 prefix: tokenTypeBearer,
26 token: "abcdef",
27 extraHeaders: nil,
28 },
29 {
30 name: "With a Token token type",
31 prefix: tokenTypeToken,
32 token: "123456",
33 extraHeaders: nil,
34 },
35 {
36 name: "With a Bearer token type and Accept application/json",
37 prefix: tokenTypeToken,
38 token: "abc",
39 extraHeaders: map[string]string{
40 acceptHeader: acceptApplicationJSON,
41 },
42 },
43 {
44 name: "With a Bearer token type and multiple headers",
45 prefix: tokenTypeToken,
46 token: "123",
47 extraHeaders: map[string]string{
48 acceptHeader: acceptApplicationJSON,
49 "foo": "bar",
50 "key": "value",
51 },
52 },
53 }
55 for _, tc := range testCases {
56 t.Run(tc.name, func(t *testing.T) {
57 g := NewWithT(t)
59 header := makeAuthorizationHeader(tc.prefix, tc.token, tc.extraHeaders)
60 g.Expect(header.Get("Authorization")).To(Equal(fmt.Sprintf("%s %s", tc.prefix, tc.token)))
61 for k, v := range tc.extraHeaders {
62 g.Expect(header.Get(k)).To(Equal(v))
63 }
64 })
65 }