go-fed-activity/pub/util_test.go

77 lines
1.6 KiB
Go

package pub
import (
"testing"
)
func TestHeaderIsActivityPubMediaType(t *testing.T) {
tests := []struct {
name string
input string
expected bool
}{
{
"Mastodon Accept Header",
"application/activity+json, application/ld+json",
true,
},
{
"Plain Type",
"application/activity+json",
true,
},
{
"Missing Profile",
"application/ld+json",
false,
},
{
"With Profile",
"application/ld+json ; profile=https://www.w3.org/ns/activitystreams",
true,
},
{
"With Quoted Profile",
"application/ld+json ; profile=\"https://www.w3.org/ns/activitystreams\"",
true,
},
{
"With Profile (End Space)",
"application/ld+json; profile=https://www.w3.org/ns/activitystreams",
true,
},
{
"With Quoted Profile (End Space)",
"application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"",
true,
},
{
"With Profile (Begin Space)",
"application/ld+json ;profile=https://www.w3.org/ns/activitystreams",
true,
},
{
"With Quoted Profile (Begin Space)",
"application/ld+json ;profile=\"https://www.w3.org/ns/activitystreams\"",
true,
},
{
"With Profile (No Space)",
"application/ld+json;profile=https://www.w3.org/ns/activitystreams",
true,
},
{
"With Quoted Profile (No Space)",
"application/ld+json;profile=\"https://www.w3.org/ns/activitystreams\"",
true,
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
if actual := headerIsActivityPubMediaType(test.input); actual != test.expected {
t.Fatalf("expected %v, got %v", test.expected, actual)
}
})
}
}