MCPcopy
hub / github.com/labstack/echo / TestValuesFromHeader

Function TestValuesFromHeader

middleware/extractor_test.go:129–257  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

127}
128
129func TestValuesFromHeader(t *testing.T) {
130 exampleRequest := func(req *http.Request) {
131 req.Header.Set(echo.HeaderAuthorization, "basic dXNlcjpwYXNzd29yZA==")
132 }
133
134 var testCases = []struct {
135 name string
136 givenRequest func(req *http.Request)
137 whenName string
138 whenValuePrefix string
139 whenLimit uint
140 expectValues []string
141 expectError string
142 }{
143 {
144 name: "ok, single value",
145 givenRequest: exampleRequest,
146 whenName: echo.HeaderAuthorization,
147 whenValuePrefix: "basic ",
148 expectValues: []string{"dXNlcjpwYXNzd29yZA=="},
149 },
150 {
151 name: "ok, single value, case insensitive",
152 givenRequest: exampleRequest,
153 whenName: echo.HeaderAuthorization,
154 whenValuePrefix: "Basic ",
155 expectValues: []string{"dXNlcjpwYXNzd29yZA=="},
156 },
157 {
158 name: "ok, multiple value",
159 givenRequest: func(req *http.Request) {
160 req.Header.Set(echo.HeaderAuthorization, "basic dXNlcjpwYXNzd29yZA==")
161 req.Header.Add(echo.HeaderAuthorization, "basic dGVzdDp0ZXN0")
162 },
163 whenName: echo.HeaderAuthorization,
164 whenValuePrefix: "basic ",
165 whenLimit: 2,
166 expectValues: []string{"dXNlcjpwYXNzd29yZA==", "dGVzdDp0ZXN0"},
167 },
168 {
169 name: "ok, empty prefix",
170 givenRequest: exampleRequest,
171 whenName: echo.HeaderAuthorization,
172 whenValuePrefix: "",
173 expectValues: []string{"basic dXNlcjpwYXNzd29yZA=="},
174 },
175 {
176 name: "nok, no matching due different prefix",
177 givenRequest: func(req *http.Request) {
178 req.Header.Set(echo.HeaderAuthorization, "basic dXNlcjpwYXNzd29yZA==")
179 req.Header.Add(echo.HeaderAuthorization, "basic dGVzdDp0ZXN0")
180 },
181 whenName: echo.HeaderAuthorization,
182 whenValuePrefix: "Bearer ",
183 expectError: errHeaderExtractorValueInvalid.Error(),
184 },
185 {
186 name: "nok, no matching due different prefix",

Callers

nothing calls this directly

Calls 5

valuesFromHeaderFunction · 0.85
SetMethod · 0.80
NewContextMethod · 0.80
AddMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…