Test_Extractor_FromAuthHeader_RFC_Compliance() — fiber Function Reference
Architecture documentation for the Test_Extractor_FromAuthHeader_RFC_Compliance() function in extractors_test.go from the fiber codebase.
Entity Profile
Dependency Diagram
graph TD 8e64589d_e6fd_482b_4428_ba4229919fde["Test_Extractor_FromAuthHeader_RFC_Compliance()"] cf5e296e_8db5_6f84_b05a_9c0cac6f83e7["extractors_test.go"] 8e64589d_e6fd_482b_4428_ba4229919fde -->|defined in| cf5e296e_8db5_6f84_b05a_9c0cac6f83e7 style 8e64589d_e6fd_482b_4428_ba4229919fde fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
extractors/extractors_test.go lines 479–576
func Test_Extractor_FromAuthHeader_RFC_Compliance(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
header string
expectedToken string
description string
shouldFail bool
}{
{
name: "tab_after_scheme",
header: "Bearer\ttoken",
shouldFail: true,
description: "tab character after scheme should be rejected - RFC specifies 1*SP, not tabs",
},
{
name: "single_space_after_scheme",
header: "Bearer token",
shouldFail: false,
expectedToken: "token",
description: "single space after scheme should be accepted - standard format",
},
{
name: "multiple_spaces_after_scheme",
header: "Bearer token",
shouldFail: true,
description: "multiple spaces after scheme rejected for simplicity - single space is standard",
},
{
name: "mixed_whitespace_after_scheme",
header: "Bearer \t \ttoken",
shouldFail: true,
description: "mixed whitespace after scheme should be rejected - RFC specifies 1*SP, not tabs",
},
{
name: "no_whitespace_after_scheme",
header: "Bearertoken",
shouldFail: true,
description: "no whitespace after scheme should fail",
},
{
name: "header_too_short",
header: "Bearer",
shouldFail: true,
description: "header too short for scheme + space + token",
},
{
name: "only_whitespace_after_scheme",
header: "Bearer \t ",
shouldFail: true,
description: "only whitespace after scheme should fail",
},
{
name: "case_insensitive_scheme",
header: "BEARER token",
shouldFail: false,
expectedToken: "token",
description: "case-insensitive scheme matching should work",
},
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
app := fiber.New()
ctx := app.AcquireCtx(&fasthttp.RequestCtx{})
t.Cleanup(func() { app.ReleaseCtx(ctx) })
ctx.Request().Header.Set(fiber.HeaderAuthorization, tc.header)
token, err := FromAuthHeader("Bearer").Extract(ctx)
if tc.shouldFail {
require.Error(t, err, "Expected error for %s", tc.description)
require.ErrorIs(t, err, ErrNotFound)
require.Empty(t, token)
} else {
require.NoError(t, err, "Expected no error for %s", tc.description)
require.Equal(t, tc.expectedToken, token)
}
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does Test_Extractor_FromAuthHeader_RFC_Compliance() do?
Test_Extractor_FromAuthHeader_RFC_Compliance() is a function in the fiber codebase, defined in extractors/extractors_test.go.
Where is Test_Extractor_FromAuthHeader_RFC_Compliance() defined?
Test_Extractor_FromAuthHeader_RFC_Compliance() is defined in extractors/extractors_test.go at line 479.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free