Fix mentions not notifying (#230)

* set default privacy for new accounts

* teshts

* found it

* tiny change

* aaaa
This commit is contained in:
tobi
2021-09-14 12:23:56 +02:00
committed by GitHub
parent e0f36278a0
commit 2e5dcc2929
16 changed files with 630 additions and 422 deletions

100
internal/ap/extract_test.go Normal file
View File

@@ -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()
}

View File

@@ -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{})
}

View File

@@ -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{})
}