| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // Copyright 2025 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- package httpauth
-
- import (
- "encoding/base64"
- "testing"
-
- "github.com/stretchr/testify/assert"
- )
-
- func TestParseAuthorizationHeader(t *testing.T) {
- type parsed = ParsedAuthorizationHeader
- type basic = BasicAuth
- type bearer = BearerToken
- cases := []struct {
- headerValue string
- expected parsed
- ok bool
- }{
- {"", parsed{}, false},
- {"?", parsed{}, false},
- {"foo", parsed{}, false},
- {"any value", parsed{}, false},
-
- {"Basic ?", parsed{}, false},
- {"Basic " + base64.StdEncoding.EncodeToString([]byte("foo")), parsed{}, false},
- {"Basic " + base64.StdEncoding.EncodeToString([]byte("foo:bar")), parsed{BasicAuth: &basic{"foo", "bar"}}, true},
- {"basic " + base64.StdEncoding.EncodeToString([]byte("foo:bar")), parsed{BasicAuth: &basic{"foo", "bar"}}, true},
-
- {"token value", parsed{BearerToken: &bearer{"value"}}, true},
- {"Token value", parsed{BearerToken: &bearer{"value"}}, true},
- {"bearer value", parsed{BearerToken: &bearer{"value"}}, true},
- {"Bearer value", parsed{BearerToken: &bearer{"value"}}, true},
- {"Bearer wrong value", parsed{}, false},
- }
- for _, c := range cases {
- ret, ok := ParseAuthorizationHeader(c.headerValue)
- assert.Equal(t, c.ok, ok, "header %q", c.headerValue)
- assert.Equal(t, c.expected, ret, "header %q", c.headerValue)
- }
- }
|