From 2bafd7daf542d985ee76d9079a30a602cb7be827 Mon Sep 17 00:00:00 2001 From: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com> Date: Wed, 14 Feb 2024 11:13:38 +0000 Subject: [bugfix] add stricter checks during all stages of dereferencing remote AS objects (#2639) * add stricter checks during all stages of dereferencing remote AS objects * a comment --- internal/federation/dereferencing/status_test.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'internal/federation/dereferencing/status_test.go') diff --git a/internal/federation/dereferencing/status_test.go b/internal/federation/dereferencing/status_test.go index e9cdbcff5..2d0085cce 100644 --- a/internal/federation/dereferencing/status_test.go +++ b/internal/federation/dereferencing/status_test.go @@ -19,6 +19,7 @@ package dereferencing_test import ( "context" + "fmt" "testing" "github.com/stretchr/testify/suite" @@ -218,6 +219,28 @@ func (suite *StatusTestSuite) TestDereferenceStatusWithImageAndNoContent() { suite.NoError(err) } +func (suite *StatusTestSuite) TestDereferenceStatusWithNonMatchingURI() { + fetchingAccount := suite.testAccounts["local_account_1"] + + const ( + remoteURI = "https://turnip.farm/users/turniplover6969/statuses/70c53e54-3146-42d5-a630-83c8b6c7c042" + remoteAltURI = "https://turnip.farm/users/turniphater420/statuses/70c53e54-3146-42d5-a630-83c8b6c7c042" + ) + + // Create a copy of this remote account at alternative URI. + remoteStatus := suite.client.TestRemoteStatuses[remoteURI] + suite.client.TestRemoteStatuses[remoteAltURI] = remoteStatus + + // Attempt to fetch account at alternative URI, it should fail! + fetchedStatus, _, err := suite.dereferencer.GetStatusByURI( + context.Background(), + fetchingAccount.Username, + testrig.URLMustParse(remoteAltURI), + ) + suite.Equal(err.Error(), fmt.Sprintf("enrichStatus: dereferenced status uri %s does not match %s", remoteURI, remoteAltURI)) + suite.Nil(fetchedStatus) +} + func TestStatusTestSuite(t *testing.T) { suite.Run(t, new(StatusTestSuite)) } -- cgit v1.2.3