versia-go/pkg/versia/crypto/federation_headers_test.go

33 lines
855 B
Go

package versiacrypto
import (
"net/http"
"net/url"
"testing"
"github.com/stretchr/testify/assert"
)
func TestFederationHeaders_String(t *testing.T) {
one := SignatureData{
RequestMethod: "POST",
Nonce: "1234567890",
URL: &url.URL{Scheme: "https", Host: "bob.com", Path: "/users/bob", RawQuery: "z=foo&a=bar"},
Digest: SHA256([]byte("hello")),
}
assert.Equal(t, "post /users/bob?z=foo&a=bar 1234567890 LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=", one.String())
}
func TestFederationHeaders_Headers(t *testing.T) {
headers, err := ExtractFederationHeaders(http.Header{
"X-Signed-By": []string{"instance"},
"X-Nonce": []string{"11"},
"X-Signature": []string{"Cg=="},
})
assert.NoError(t, err)
assert.Nil(t, headers.SignedBy, "the SignedBy field should be nil when the signer is the instance")
}