[bugfix] harden checks for remotes masquerading as local, and return correct local account redirects early (#3706)

This commit is contained in:
kim 2025-01-30 09:40:21 +00:00 committed by GitHub
commit 1ab960bf15
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 146 additions and 22 deletions

View file

@ -26,6 +26,7 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/filter/interaction"
"github.com/superseriousbusiness/gotosocial/internal/filter/visibility"
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
"github.com/superseriousbusiness/gotosocial/internal/media"
"github.com/superseriousbusiness/gotosocial/internal/state"
"github.com/superseriousbusiness/gotosocial/internal/storage"
"github.com/superseriousbusiness/gotosocial/internal/typeutils"
@ -34,10 +35,14 @@ import (
type DereferencerStandardTestSuite struct {
suite.Suite
db db.DB
storage *storage.Driver
state state.State
client *testrig.MockHTTPClient
db db.DB
storage *storage.Driver
state state.State
client *testrig.MockHTTPClient
converter *typeutils.Converter
visFilter *visibility.Filter
intFilter *interaction.Filter
media *media.Manager
testRemoteStatuses map[string]vocab.ActivityStreamsNote
testRemotePeople map[string]vocab.ActivityStreamsPerson
@ -67,12 +72,15 @@ func (suite *DereferencerStandardTestSuite) SetupTest() {
suite.db = testrig.NewTestDB(&suite.state)
converter := typeutils.NewConverter(&suite.state)
suite.converter = typeutils.NewConverter(&suite.state)
suite.visFilter = visibility.NewFilter(&suite.state)
suite.intFilter = interaction.NewFilter(&suite.state)
suite.media = testrig.NewTestMediaManager(&suite.state)
testrig.StartTimelines(
&suite.state,
visibility.NewFilter(&suite.state),
converter,
suite.visFilter,
suite.converter,
)
suite.client = testrig.NewMockHTTPClient(nil, "../../../testrig/media")
@ -81,19 +89,16 @@ func (suite *DereferencerStandardTestSuite) SetupTest() {
suite.state.AdminActions = admin.New(suite.state.DB, &suite.state.Workers)
suite.state.Storage = suite.storage
visFilter := visibility.NewFilter(&suite.state)
intFilter := interaction.NewFilter(&suite.state)
media := testrig.NewTestMediaManager(&suite.state)
suite.dereferencer = dereferencing.NewDereferencer(
&suite.state,
converter,
suite.converter,
testrig.NewTestTransportController(
&suite.state,
suite.client,
),
visFilter,
intFilter,
media,
suite.visFilter,
suite.intFilter,
suite.media,
)
testrig.StandardDBSetup(suite.db, nil)
}