123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- package inbox
- import (
- "net/url"
- "testing"
- "github.com/go-fed/activity/streams"
- "github.com/go-fed/activity/streams/vocab"
- "github.com/owncast/owncast/activitypub/apmodels"
- "github.com/owncast/owncast/activitypub/persistence"
- "github.com/owncast/owncast/core/data"
- )
- func makeFakePerson() vocab.ActivityStreamsPerson {
- iri, _ := url.Parse("https://freedom.eagle/user/mrfoo")
- name := "Mr Foo"
- username := "foodawg"
- inbox, _ := url.Parse("https://fake.fediverse.server/user/mrfoo/inbox")
- userAvatarURL, _ := url.Parse("https://fake.fediverse.server/user/mrfoo/avatar.png")
- person := streams.NewActivityStreamsPerson()
- id := streams.NewJSONLDIdProperty()
- id.Set(iri)
- person.SetJSONLDId(id)
- nameProperty := streams.NewActivityStreamsNameProperty()
- nameProperty.AppendXMLSchemaString(name)
- person.SetActivityStreamsName(nameProperty)
- preferredUsernameProperty := streams.NewActivityStreamsPreferredUsernameProperty()
- preferredUsernameProperty.SetXMLSchemaString(username)
- person.SetActivityStreamsPreferredUsername(preferredUsernameProperty)
- inboxProp := streams.NewActivityStreamsInboxProperty()
- inboxProp.SetIRI(inbox)
- person.SetActivityStreamsInbox(inboxProp)
- image := streams.NewActivityStreamsImage()
- imgProp := streams.NewActivityStreamsUrlProperty()
- imgProp.AppendIRI(userAvatarURL)
- image.SetActivityStreamsUrl(imgProp)
- icon := streams.NewActivityStreamsIconProperty()
- icon.AppendActivityStreamsImage(image)
- person.SetActivityStreamsIcon(icon)
- return person
- }
- func TestMain(m *testing.M) {
- data.SetupPersistence(":memory:")
- data.SetServerURL("https://my.cool.site.biz")
- persistence.Setup(data.GetDatastore())
- m.Run()
- }
- func TestBlockedDomains(t *testing.T) {
- person := makeFakePerson()
- data.SetBlockedFederatedDomains([]string{"freedom.eagle", "guns.life"})
- if len(data.GetBlockedFederatedDomains()) != 2 {
- t.Error("Blocked federated domains is not set correctly")
- }
- for _, domain := range data.GetBlockedFederatedDomains() {
- if domain == person.GetJSONLDId().GetIRI().Host {
- return
- }
- }
- t.Error("Failed to catch blocked domain")
- }
- func TestBlockedActors(t *testing.T) {
- person := makeFakePerson()
- fakeRequest := streams.NewActivityStreamsFollow()
- persistence.AddFollow(apmodels.ActivityPubActor{
- ActorIri: person.GetJSONLDId().GetIRI(),
- Inbox: person.GetJSONLDId().GetIRI(),
- FollowRequestIri: person.GetJSONLDId().GetIRI(),
- RequestObject: fakeRequest,
- }, false)
- persistence.BlockOrRejectFollower(person.GetJSONLDId().GetIRI().String())
- blocked, err := isBlockedActor(person.GetJSONLDId().GetIRI())
- if err != nil {
- t.Error(err)
- return
- }
- if !blocked {
- t.Error("Failed to block actor")
- }
- failedBlockIRI, _ := url.Parse("https://freedom.eagle/user/mrbar")
- failedBlock, err := isBlockedActor(failedBlockIRI)
- if failedBlock {
- t.Error("Invalid blocking of unblocked actor IRI")
- }
- }
|