diff options
author | 2021-09-14 12:23:56 +0200 | |
---|---|---|
committer | 2021-09-14 12:23:56 +0200 | |
commit | 2e5dcc2929d6e6b22f370bf1b83c54d03ac1cd43 (patch) | |
tree | 3d3ce087220f8eb120e9fb132731fd30987d9922 /internal/ap | |
parent | add ap logo to readme (#228) (diff) | |
download | gotosocial-2e5dcc2929d6e6b22f370bf1b83c54d03ac1cd43.tar.xz |
Fix mentions not notifying (#230)
* set default privacy for new accounts
* teshts
* found it
* tiny change
* aaaa
Diffstat (limited to 'internal/ap')
-rw-r--r-- | internal/ap/extract_test.go | 100 | ||||
-rw-r--r-- | internal/ap/extractattachments_test.go | 57 | ||||
-rw-r--r-- | internal/ap/extractmentions_test.go | 50 |
3 files changed, 163 insertions, 44 deletions
diff --git a/internal/ap/extract_test.go b/internal/ap/extract_test.go new file mode 100644 index 000000000..8753e8c24 --- /dev/null +++ b/internal/ap/extract_test.go @@ -0,0 +1,100 @@ +/* + GoToSocial + Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package ap_test + +import ( + "github.com/go-fed/activity/streams" + "github.com/go-fed/activity/streams/vocab" + "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/gotosocial/testrig" +) + +func document1() vocab.ActivityStreamsDocument { + d := streams.NewActivityStreamsDocument() + + dMediaType := streams.NewActivityStreamsMediaTypeProperty() + dMediaType.Set("image/jpeg") + d.SetActivityStreamsMediaType(dMediaType) + + dURL := streams.NewActivityStreamsUrlProperty() + dURL.AppendIRI(testrig.URLMustParse("https://s3-us-west-2.amazonaws.com/plushcity/media_attachments/files/106/867/380/219/163/828/original/88e8758c5f011439.jpg")) + d.SetActivityStreamsUrl(dURL) + + dName := streams.NewActivityStreamsNameProperty() + dName.AppendXMLSchemaString("It's a cute plushie.") + d.SetActivityStreamsName(dName) + + dBlurhash := streams.NewTootBlurhashProperty() + dBlurhash.Set("UxQ0EkRP_4tRxtRjWBt7%hozM_ayV@oLf6WB") + d.SetTootBlurhash(dBlurhash) + + return d +} + +func attachment1() vocab.ActivityStreamsAttachmentProperty { + a := streams.NewActivityStreamsAttachmentProperty() + a.AppendActivityStreamsDocument(document1()) + return a +} + +func noteWithMentions1() vocab.ActivityStreamsNote { + note := streams.NewActivityStreamsNote() + + tags := streams.NewActivityStreamsTagProperty() + + mention1 := streams.NewActivityStreamsMention() + + mention1Href := streams.NewActivityStreamsHrefProperty() + mention1Href.Set(testrig.URLMustParse("https://gts.superseriousbusiness.org/users/dumpsterqueer")) + mention1.SetActivityStreamsHref(mention1Href) + + mention1Name := streams.NewActivityStreamsNameProperty() + mention1Name.AppendXMLSchemaString("@dumpsterqueer@superseriousbusiness.org") + mention1.SetActivityStreamsName(mention1Name) + + mention2 := streams.NewActivityStreamsMention() + + mention2Href := streams.NewActivityStreamsHrefProperty() + mention2Href.Set(testrig.URLMustParse("https://gts.superseriousbusiness.org/users/f0x")) + mention2.SetActivityStreamsHref(mention2Href) + + mention2Name := streams.NewActivityStreamsNameProperty() + mention2Name.AppendXMLSchemaString("@f0x@superseriousbusiness.org") + mention2.SetActivityStreamsName(mention2Name) + + tags.AppendActivityStreamsMention(mention1) + tags.AppendActivityStreamsMention(mention2) + + note.SetActivityStreamsTag(tags) + + return note +} + +type ExtractTestSuite struct { + suite.Suite + document1 vocab.ActivityStreamsDocument + attachment1 vocab.ActivityStreamsAttachmentProperty + noteWithMentions1 vocab.ActivityStreamsNote +} + +func (suite *ExtractTestSuite) SetupTest() { + suite.document1 = document1() + suite.attachment1 = attachment1() + suite.noteWithMentions1 = noteWithMentions1() +} diff --git a/internal/ap/extractattachments_test.go b/internal/ap/extractattachments_test.go index ea396fae5..3be340cc5 100644 --- a/internal/ap/extractattachments_test.go +++ b/internal/ap/extractattachments_test.go @@ -22,47 +22,17 @@ import ( "testing" "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" "github.com/stretchr/testify/suite" "github.com/superseriousbusiness/gotosocial/internal/ap" - "github.com/superseriousbusiness/gotosocial/testrig" ) -func document1() vocab.ActivityStreamsDocument { - document1 := streams.NewActivityStreamsDocument() - - document1MediaType := streams.NewActivityStreamsMediaTypeProperty() - document1MediaType.Set("image/jpeg") - document1.SetActivityStreamsMediaType(document1MediaType) - - document1URL := streams.NewActivityStreamsUrlProperty() - document1URL.AppendIRI(testrig.URLMustParse("https://s3-us-west-2.amazonaws.com/plushcity/media_attachments/files/106/867/380/219/163/828/original/88e8758c5f011439.jpg")) - document1.SetActivityStreamsUrl(document1URL) - - document1Name := streams.NewActivityStreamsNameProperty() - document1Name.AppendXMLSchemaString("It's a cute plushie.") - document1.SetActivityStreamsName(document1Name) - - document1Blurhash := streams.NewTootBlurhashProperty() - document1Blurhash.Set("UxQ0EkRP_4tRxtRjWBt7%hozM_ayV@oLf6WB") - document1.SetTootBlurhash(document1Blurhash) - - return document1 +type ExtractAttachmentsTestSuite struct { + ExtractTestSuite } -func attachment1() vocab.ActivityStreamsAttachmentProperty { - attachment1 := streams.NewActivityStreamsAttachmentProperty() - attachment1.AppendActivityStreamsDocument(document1()) - return attachment1 -} - -type ExtractTestSuite struct { - suite.Suite -} - -func (suite *ExtractTestSuite) TestExtractAttachments() { +func (suite *ExtractAttachmentsTestSuite) TestExtractAttachments() { note := streams.NewActivityStreamsNote() - note.SetActivityStreamsAttachment(attachment1()) + note.SetActivityStreamsAttachment(suite.attachment1) attachments, err := ap.ExtractAttachments(note) suite.NoError(err) @@ -75,7 +45,7 @@ func (suite *ExtractTestSuite) TestExtractAttachments() { suite.Empty(attachment1.Blurhash) // atm we discard blurhashes and generate them ourselves during processing } -func (suite *ExtractTestSuite) TestExtractNoAttachments() { +func (suite *ExtractAttachmentsTestSuite) TestExtractNoAttachments() { note := streams.NewActivityStreamsNote() attachments, err := ap.ExtractAttachments(note) @@ -83,8 +53,8 @@ func (suite *ExtractTestSuite) TestExtractNoAttachments() { suite.Empty(attachments) } -func (suite *ExtractTestSuite) TestExtractAttachmentsMissingContentType() { - d1 := document1() +func (suite *ExtractAttachmentsTestSuite) TestExtractAttachmentsMissingContentType() { + d1 := suite.document1 d1.SetActivityStreamsMediaType(streams.NewActivityStreamsMediaTypeProperty()) a1 := streams.NewActivityStreamsAttachmentProperty() @@ -98,9 +68,8 @@ func (suite *ExtractTestSuite) TestExtractAttachmentsMissingContentType() { suite.Empty(attachments) } -func (suite *ExtractTestSuite) TestExtractAttachmentMissingContentType() { - - d1 := document1() +func (suite *ExtractAttachmentsTestSuite) TestExtractAttachmentMissingContentType() { + d1 := suite.document1 d1.SetActivityStreamsMediaType(streams.NewActivityStreamsMediaTypeProperty()) attachment, err := ap.ExtractAttachment(d1) @@ -108,8 +77,8 @@ func (suite *ExtractTestSuite) TestExtractAttachmentMissingContentType() { suite.Nil(attachment) } -func (suite *ExtractTestSuite) TestExtractAttachmentMissingURL() { - d1 := document1() +func (suite *ExtractAttachmentsTestSuite) TestExtractAttachmentMissingURL() { + d1 := suite.document1 d1.SetActivityStreamsUrl(streams.NewActivityStreamsUrlProperty()) attachment, err := ap.ExtractAttachment(d1) @@ -117,6 +86,6 @@ func (suite *ExtractTestSuite) TestExtractAttachmentMissingURL() { suite.Nil(attachment) } -func TestExtractTestSuite(t *testing.T) { - suite.Run(t, &ExtractTestSuite{}) +func TestExtractAttachmentsTestSuite(t *testing.T) { + suite.Run(t, &ExtractAttachmentsTestSuite{}) } diff --git a/internal/ap/extractmentions_test.go b/internal/ap/extractmentions_test.go new file mode 100644 index 000000000..03478465f --- /dev/null +++ b/internal/ap/extractmentions_test.go @@ -0,0 +1,50 @@ +/* + GoToSocial + Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package ap_test + +import ( + "testing" + + "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/gotosocial/internal/ap" +) + +type ExtractMentionsTestSuite struct { + ExtractTestSuite +} + +func (suite *ExtractMentionsTestSuite) TestExtractMentions() { + note := suite.noteWithMentions1 + + mentions, err := ap.ExtractMentions(note) + suite.NoError(err) + suite.Len(mentions, 2) + + m1 := mentions[0] + suite.Equal("@dumpsterqueer@superseriousbusiness.org", m1.NameString) + suite.Equal("https://gts.superseriousbusiness.org/users/dumpsterqueer", m1.TargetAccountURI) + + m2 := mentions[1] + suite.Equal("@f0x@superseriousbusiness.org", m2.NameString) + suite.Equal("https://gts.superseriousbusiness.org/users/f0x", m2.TargetAccountURI) +} + +func TestExtractMentionsTestSuite(t *testing.T) { + suite.Run(t, &ExtractMentionsTestSuite{}) +} |