finger/main_test.go
2023-09-18 01:36:29 -03:00

61 lines
1.1 KiB
Go

package main_test
import (
"context"
"fmt"
"net/http"
"net/http/httptest"
"testing"
finger "git.maronato.dev/maronato/finger"
)
func BenchmarkGetWebfinger(b *testing.B) {
ctx := context.Background()
cfg := &finger.Config{}
l := finger.NewLogger(cfg)
ctx = finger.WithLogger(ctx, l)
resource := "acct:user@example.com"
webmap := finger.WebFingerMap{
resource: {
Subject: resource,
Links: []finger.Link{
{
Rel: "http://webfinger.net/rel/avatar",
Href: "https://example.com/avatar.png",
},
},
Properties: map[string]string{
"example": "value",
},
},
"acct:other": {
Subject: "acct:other",
Links: []finger.Link{
{
Rel: "http://webfinger.net/rel/avatar",
Href: "https://example.com/avatar.png",
},
},
Properties: map[string]string{
"example": "value",
},
},
}
handler := finger.WebfingerHandler(&finger.Config{}, webmap)
r, _ := http.NewRequestWithContext(
ctx,
http.MethodGet,
fmt.Sprintf("/.well-known/webfinger?resource=%s", resource),
http.NoBody,
)
for i := 0; i < b.N; i++ {
w := httptest.NewRecorder()
handler.ServeHTTP(w, r)
}
}