diff options
| author | 2025-06-19 15:10:41 +0200 | |
|---|---|---|
| committer | 2025-06-19 15:10:41 +0200 | |
| commit | bfc8c31e5f80bd7e405ad407d58597a92a1e85fd (patch) | |
| tree | 53645d0ddfdd32469f36eaa649b31be14d8018c3 /internal/federation/dereferencing/account_test.go | |
| parent | [bugfix] delete interaction requests when deleting account (#4278) (diff) | |
| download | gotosocial-bfc8c31e5f80bd7e405ad407d58597a92a1e85fd.tar.xz | |
[feature] Support incoming avatar/header descriptions (#4275)
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
# Description
Follow-up to #4270
Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/3450
## Checklist
- [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md).
- [ ] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat.
- [x] I/we have not leveraged AI to create the proposed changes.
- [x] I/we have performed a self-review of added code.
- [x] I/we have written code that is legible and maintainable by others.
- [x] I/we have commented the added code, particularly in hard-to-understand areas.
- [ ] I/we have made any necessary changes to documentation.
- [x] I/we have added tests that cover new code.
- [x] I/we have run tests and they pass locally with the changes.
- [x] I/we have run `go fmt ./...` and `golangci-lint run`.
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4275
Co-authored-by: nicole mikołajczyk <git@mkljczk.pl>
Co-committed-by: nicole mikołajczyk <git@mkljczk.pl>
Diffstat (limited to 'internal/federation/dereferencing/account_test.go')
| -rw-r--r-- | internal/federation/dereferencing/account_test.go | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/internal/federation/dereferencing/account_test.go b/internal/federation/dereferencing/account_test.go index 518f3e89f..0cb23f18d 100644 --- a/internal/federation/dereferencing/account_test.go +++ b/internal/federation/dereferencing/account_test.go @@ -28,6 +28,7 @@ import ( "io" "net/http" "net/url" + "strings" "testing" "time" @@ -473,6 +474,49 @@ func (suite *AccountTestSuite) TestRefreshFederatedRemoteAccountWithKeyChange() suite.True(updatedAcc.PublicKey.Equal(fetchingAcc.PublicKey)) } +func (suite *AccountTestSuite) TestDereferenceRemoteAccountWithAvatarDescription() { + ctx, cncl := context.WithCancel(suite.T().Context()) + defer cncl() + + fetchingAcc := suite.testAccounts["local_account_1"] + remoteURI := "https://shrimpnet.example.org/users/shrimp" + description := "me scrolling fedi on a laptop, there's a monster ultra white and another fedi user on my right." + + // Fetch the remote account to load into the database. + remoteAcc, _, err := suite.dereferencer.GetAccountByURI(ctx, + fetchingAcc.Username, + testrig.URLMustParse(remoteURI), + false, + ) + suite.NoError(err) + suite.NotNil(remoteAcc) + + suite.Equal(remoteAcc.AvatarMediaAttachment.Description, description) + + remotePerson := suite.client.TestRemotePeople[remoteURI] + + description = strings.TrimSuffix(description, ".") + + icon := remotePerson.GetActivityStreamsIcon() + image := icon.Begin().GetActivityStreamsImage() + nameProp := streams.NewActivityStreamsNameProperty() + nameProp.AppendXMLSchemaString(description) + image.SetActivityStreamsName(nameProp) + icon.SetActivityStreamsImage(0, image) + remotePerson.SetActivityStreamsIcon(icon) + + updatedAcc, apAcc, err := suite.dereferencer.RefreshAccount(ctx, + fetchingAcc.Username, + remoteAcc, + remotePerson, + nil, + ) + + suite.NoError(err) + suite.NotNil(apAcc) + suite.Equal(updatedAcc.AvatarMediaAttachment.Description, description) +} + func TestAccountTestSuite(t *testing.T) { suite.Run(t, new(AccountTestSuite)) } |
