66 lines
1.4 KiB
Go
66 lines
1.4 KiB
Go
|
package domain_test
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"fmt"
|
||
|
"testing"
|
||
|
"time"
|
||
|
|
||
|
http "github.com/valyala/fasthttp"
|
||
|
|
||
|
"source.toby3d.me/website/indieauth/internal/domain"
|
||
|
)
|
||
|
|
||
|
func TestNewToken(t *testing.T) {
|
||
|
t.Parallel()
|
||
|
|
||
|
expResult := domain.TestToken(t)
|
||
|
opts := domain.NewTokenOptions{
|
||
|
Algorithm: "",
|
||
|
NonceLength: 0,
|
||
|
Issuer: expResult.ClientID,
|
||
|
Expiration: 1 * time.Hour,
|
||
|
Scope: expResult.Scope,
|
||
|
Subject: expResult.Me,
|
||
|
Secret: []byte("hackme"),
|
||
|
}
|
||
|
|
||
|
result, err := domain.NewToken(opts)
|
||
|
if err != nil {
|
||
|
t.Fatalf("%+v", err)
|
||
|
}
|
||
|
|
||
|
if fmt.Sprint(result.ClientID) != fmt.Sprint(expResult.ClientID) ||
|
||
|
fmt.Sprint(result.Me) != fmt.Sprint(expResult.Me) ||
|
||
|
fmt.Sprint(result.Scope) != fmt.Sprint(expResult.Scope) {
|
||
|
t.Errorf("NewToken(%+v) = %+v, want %+v", opts, result, expResult)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestToken_SetAuthHeader(t *testing.T) {
|
||
|
t.Parallel()
|
||
|
|
||
|
token := domain.TestToken(t)
|
||
|
expResult := []byte("Bearer " + token.AccessToken)
|
||
|
|
||
|
req := http.AcquireRequest()
|
||
|
defer http.ReleaseRequest(req)
|
||
|
token.SetAuthHeader(req)
|
||
|
|
||
|
result := req.Header.Peek(http.HeaderAuthorization)
|
||
|
if result == nil || !bytes.Equal(result, expResult) {
|
||
|
t.Errorf("SetAuthHeader(%+v) = %s, want %s", req, result, expResult)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestToken_String(t *testing.T) {
|
||
|
t.Parallel()
|
||
|
|
||
|
token := domain.TestToken(t)
|
||
|
expResult := "Bearer " + token.AccessToken
|
||
|
|
||
|
if result := token.String(); result != expResult {
|
||
|
t.Errorf("String() = %s, want %s", result, expResult)
|
||
|
}
|
||
|
}
|