diff options
Diffstat (limited to 'internal/federation/dereferencing')
| -rw-r--r-- | internal/federation/dereferencing/media_test.go | 57 | 
1 files changed, 56 insertions, 1 deletions
| diff --git a/internal/federation/dereferencing/media_test.go b/internal/federation/dereferencing/media_test.go index 8fb28d196..1f076f62c 100644 --- a/internal/federation/dereferencing/media_test.go +++ b/internal/federation/dereferencing/media_test.go @@ -21,6 +21,7 @@ package dereferencing_test  import (  	"context"  	"testing" +	"time"  	"github.com/stretchr/testify/suite"  	"github.com/superseriousbusiness/gotosocial/internal/gtsmodel" @@ -31,7 +32,7 @@ type AttachmentTestSuite struct {  	DereferencerStandardTestSuite  } -func (suite *AttachmentTestSuite) TestDereferenceAttachmentOK() { +func (suite *AttachmentTestSuite) TestDereferenceAttachmentBlocking() {  	ctx := context.Background()  	fetchingAccount := suite.testAccounts["local_account_1"] @@ -51,6 +52,7 @@ func (suite *AttachmentTestSuite) TestDereferenceAttachmentOK() {  	})  	suite.NoError(err) +	// make a blocking call to load the attachment from the in-process media   	attachment, err := media.LoadAttachment(ctx)  	suite.NoError(err) @@ -104,6 +106,59 @@ func (suite *AttachmentTestSuite) TestDereferenceAttachmentOK() {  	suite.NotEmpty(dbAttachment.Type)  } +func (suite *AttachmentTestSuite) TestDereferenceAttachmentAsync() { +	ctx := context.Background() + +	fetchingAccount := suite.testAccounts["local_account_1"] + +	attachmentOwner := "01FENS9F666SEQ6TYQWEEY78GM" +	attachmentStatus := "01FENS9NTTVNEX1YZV7GB63MT8" +	attachmentContentType := "image/jpeg" +	attachmentURL := "https://s3-us-west-2.amazonaws.com/plushcity/media_attachments/files/106/867/380/219/163/828/original/88e8758c5f011439.jpg" +	attachmentDescription := "It's a cute plushie." +	attachmentBlurhash := "LwP?p=aK_4%N%MRjWXt7%hozM_a}" + +	media, err := suite.dereferencer.GetRemoteMedia(ctx, fetchingAccount.Username, attachmentOwner, attachmentURL, &media.AdditionalInfo{ +		StatusID:    &attachmentStatus, +		RemoteURL:   &attachmentURL, +		Description: &attachmentDescription, +		Blurhash:    &attachmentBlurhash, +	}) +	suite.NoError(err) +	attachmentID := media.AttachmentID() + +	// wait 5 seconds to let the image process in the background +	// it probably won't really take this long but hey let's be sure +	time.Sleep(5 * time.Second) + +	// now get the attachment from the database +	attachment, err := suite.db.GetAttachmentByID(ctx, attachmentID) +	suite.NoError(err) + +	suite.NotNil(attachment) + +	suite.Equal(attachmentOwner, attachment.AccountID) +	suite.Equal(attachmentStatus, attachment.StatusID) +	suite.Equal(attachmentURL, attachment.RemoteURL) +	suite.NotEmpty(attachment.URL) +	suite.NotEmpty(attachment.Blurhash) +	suite.NotEmpty(attachment.ID) +	suite.NotEmpty(attachment.CreatedAt) +	suite.NotEmpty(attachment.UpdatedAt) +	suite.Equal(1.336546184738956, attachment.FileMeta.Original.Aspect) +	suite.Equal(2071680, attachment.FileMeta.Original.Size) +	suite.Equal(1245, attachment.FileMeta.Original.Height) +	suite.Equal(1664, attachment.FileMeta.Original.Width) +	suite.Equal(attachmentBlurhash, attachment.Blurhash) +	suite.Equal(gtsmodel.ProcessingStatusProcessed, attachment.Processing) +	suite.NotEmpty(attachment.File.Path) +	suite.Equal(attachmentContentType, attachment.File.ContentType) +	suite.Equal(attachmentDescription, attachment.Description) + +	suite.NotEmpty(attachment.Thumbnail.Path) +	suite.NotEmpty(attachment.Type) +} +  func TestAttachmentTestSuite(t *testing.T) {  	suite.Run(t, new(AttachmentTestSuite))  } | 
