summaryrefslogtreecommitdiff
path: root/internal/federation
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2022-03-21 19:46:51 +0100
committerLibravatar GitHub <noreply@github.com>2022-03-21 19:46:51 +0100
commit25cab0e1f4fdd89512088d0d02c4abd7b4d11773 (patch)
treed7c306610025eab45d2e3e204f492334c74ae370 /internal/federation
parentdon't error if content property is nil (#436) (diff)
downloadgotosocial-25cab0e1f4fdd89512088d0d02c4abd7b4d11773.tar.xz
[bugfix] Fix images not being processed correctly sometimes (#437)
* bump exif-terminator to latest version * add and test giant turnip from turnip.farm * don't error if content property is nil
Diffstat (limited to 'internal/federation')
-rw-r--r--internal/federation/dereferencing/dereferencer_test.go10
-rw-r--r--internal/federation/dereferencing/status_test.go47
2 files changed, 51 insertions, 6 deletions
diff --git a/internal/federation/dereferencing/dereferencer_test.go b/internal/federation/dereferencing/dereferencer_test.go
index fe66abce4..cabb3d6a8 100644
--- a/internal/federation/dereferencing/dereferencer_test.go
+++ b/internal/federation/dereferencing/dereferencer_test.go
@@ -50,17 +50,15 @@ type DereferencerStandardTestSuite struct {
dereferencer dereferencing.Dereferencer
}
-func (suite *DereferencerStandardTestSuite) SetupSuite() {
+func (suite *DereferencerStandardTestSuite) SetupTest() {
+ testrig.InitTestConfig()
+ testrig.InitTestLog()
+
suite.testAccounts = testrig.NewTestAccounts()
suite.testRemoteStatuses = testrig.NewTestFediStatuses()
suite.testRemotePeople = testrig.NewTestFediPeople()
suite.testRemoteGroups = testrig.NewTestFediGroups()
suite.testRemoteAttachments = testrig.NewTestFediAttachments("../../../testrig/media")
-}
-
-func (suite *DereferencerStandardTestSuite) SetupTest() {
- testrig.InitTestLog()
- testrig.InitTestConfig()
suite.db = testrig.NewTestDB()
suite.storage = testrig.NewTestStorage()
diff --git a/internal/federation/dereferencing/status_test.go b/internal/federation/dereferencing/status_test.go
index 89bcedd70..08363f580 100644
--- a/internal/federation/dereferencing/status_test.go
+++ b/internal/federation/dereferencing/status_test.go
@@ -131,6 +131,53 @@ func (suite *StatusTestSuite) TestDereferenceStatusWithMention() {
suite.False(m.Silent)
}
+func (suite *StatusTestSuite) TestDereferenceStatusWithImageAndNoContent() {
+ fetchingAccount := suite.testAccounts["local_account_1"]
+
+ statusURL := testrig.URLMustParse("https://turnip.farm/users/turniplover6969/statuses/70c53e54-3146-42d5-a630-83c8b6c7c042")
+ status, statusable, new, err := suite.dereferencer.GetRemoteStatus(context.Background(), fetchingAccount.Username, statusURL, false, false)
+ suite.NoError(err)
+ suite.NotNil(status)
+ suite.NotNil(statusable)
+ suite.True(new)
+
+ // status values should be set
+ suite.Equal("https://turnip.farm/users/turniplover6969/statuses/70c53e54-3146-42d5-a630-83c8b6c7c042", status.URI)
+ suite.Equal("https://turnip.farm/@turniplover6969/70c53e54-3146-42d5-a630-83c8b6c7c042", status.URL)
+ suite.Equal("", status.Content)
+ suite.Equal("https://turnip.farm/users/turniplover6969", status.AccountURI)
+ suite.False(status.Local)
+ suite.Empty(status.ContentWarning)
+ suite.Equal(gtsmodel.VisibilityPublic, status.Visibility)
+ suite.Equal(ap.ObjectNote, status.ActivityStreamsType)
+
+ // status should be in the database
+ dbStatus, err := suite.db.GetStatusByURI(context.Background(), status.URI)
+ suite.NoError(err)
+ suite.Equal(status.ID, dbStatus.ID)
+ suite.True(dbStatus.Federated)
+ suite.True(dbStatus.Boostable)
+ suite.True(dbStatus.Replyable)
+ suite.True(dbStatus.Likeable)
+
+ // account should be in the database now too
+ account, err := suite.db.GetAccountByURI(context.Background(), status.AccountURI)
+ suite.NoError(err)
+ suite.NotNil(account)
+ suite.True(account.Discoverable)
+ suite.Equal("https://turnip.farm/users/turniplover6969", account.URI)
+ suite.Equal("I just think they're neat", account.Note)
+ suite.Equal("Turnip Lover 6969", account.DisplayName)
+ suite.Equal("turniplover6969", account.Username)
+ suite.NotNil(account.PublicKey)
+ suite.Nil(account.PrivateKey)
+
+ // we should have an attachment in the database
+ a := &gtsmodel.MediaAttachment{}
+ err = suite.db.GetWhere(context.Background(), []db.Where{{Key: "status_id", Value: status.ID}}, a)
+ suite.NoError(err)
+}
+
func TestStatusTestSuite(t *testing.T) {
suite.Run(t, new(StatusTestSuite))
}