mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 04:48:25 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// 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)
 | 
						|
	}
 | 
						|
}
 |