2021-04-11 19:53:22 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/ *  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   GoToSocial 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   Copyright  ( C )  2021  GoToSocial  Authors  admin @ gotosocial . org 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   This  program  is  free  software :  you  can  redistribute  it  and / or  modify 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   it  under  the  terms  of  the  GNU  Affero  General  Public  License  as  published  by 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   the  Free  Software  Foundation ,  either  version  3  of  the  License ,  or 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   ( at  your  option )  any  later  version . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   This  program  is  distributed  in  the  hope  that  it  will  be  useful , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   but  WITHOUT  ANY  WARRANTY ;  without  even  the  implied  warranty  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE .   See  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   GNU  Affero  General  Public  License  for  more  details . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   You  should  have  received  a  copy  of  the  GNU  Affero  General  Public  License 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   along  with  this  program .   If  not ,  see  < http : //www.gnu.org/licenses/>. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								* /  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-04-18 13:16:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								package  test  
						 
					
						
							
								
									
										
										
										
											2021-04-09 23:55:57 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"bytes" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"context" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"encoding/json" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"fmt" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"io/ioutil" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"net/http" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"net/http/httptest" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"testing" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"github.com/gin-gonic/gin" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"github.com/sirupsen/logrus" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"github.com/stretchr/testify/assert" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"github.com/stretchr/testify/suite" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"github.com/superseriousbusiness/gotosocial/internal/config" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"github.com/superseriousbusiness/gotosocial/internal/db" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"github.com/superseriousbusiness/gotosocial/internal/db/gtsmodel" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"github.com/superseriousbusiness/gotosocial/internal/mastotypes" 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-18 13:16:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									mediamodule  "github.com/superseriousbusiness/gotosocial/internal/apimodule/media" 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-09 23:55:57 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									mastomodel  "github.com/superseriousbusiness/gotosocial/internal/mastotypes/mastomodel" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"github.com/superseriousbusiness/gotosocial/internal/media" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"github.com/superseriousbusiness/gotosocial/internal/oauth" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"github.com/superseriousbusiness/gotosocial/internal/storage" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"github.com/superseriousbusiness/gotosocial/testrig" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								type  MediaCreateTestSuite  struct  {  
						 
					
						
							
								
									
										
										
										
											2021-04-10 18:50:28 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// standard suite interfaces 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-09 23:55:57 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									suite . Suite 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-10 18:50:28 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									config          * config . Config 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									db              db . DB 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									log             * logrus . Logger 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									storage         storage . Storage 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									mastoConverter  mastotypes . Converter 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									mediaHandler    media . MediaHandler 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									oauthServer     oauth . Server 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// standard suite models 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-09 23:55:57 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									testTokens        map [ string ] * oauth . Token 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									testClients       map [ string ] * oauth . Client 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									testApplications  map [ string ] * gtsmodel . Application 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									testUsers         map [ string ] * gtsmodel . User 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									testAccounts      map [ string ] * gtsmodel . Account 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-10 18:50:28 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									testAttachments   map [ string ] * gtsmodel . MediaAttachment 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// item being tested 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-18 13:16:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									mediaModule  * mediamodule . MediaModule 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-09 23:55:57 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/ *  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									TEST  INFRASTRUCTURE 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								* /  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func  ( suite  * MediaCreateTestSuite )  SetupSuite ( )  {  
						 
					
						
							
								
									
										
										
										
											2021-04-10 18:50:28 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// setup standard items 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-10 13:34:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . config  =  testrig . NewTestConfig ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-10 18:50:28 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . db  =  testrig . NewTestDB ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . log  =  testrig . NewTestLog ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . storage  =  testrig . NewTestStorage ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . mastoConverter  =  testrig . NewTestMastoConverter ( suite . db ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . mediaHandler  =  testrig . NewTestMediaHandler ( suite . db ,  suite . storage ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . oauthServer  =  testrig . NewTestOauthServer ( suite . db ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// setup module being tested 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-18 13:16:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . mediaModule  =  mediamodule . New ( suite . db ,  suite . mediaHandler ,  suite . mastoConverter ,  suite . config ,  suite . log ) . ( * mediamodule . MediaModule ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-09 23:55:57 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func  ( suite  * MediaCreateTestSuite )  TearDownSuite ( )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  err  :=  suite . db . Stop ( context . Background ( ) ) ;  err  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										logrus . Panicf ( "error closing db connection: %s" ,  err ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func  ( suite  * MediaCreateTestSuite )  SetupTest ( )  {  
						 
					
						
							
								
									
										
										
										
											2021-04-10 13:34:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									testrig . StandardDBSetup ( suite . db ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-18 13:16:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									testrig . StandardStorageSetup ( suite . storage ,  "../../../../testrig/media" ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-10 13:34:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . testTokens  =  testrig . NewTestTokens ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . testClients  =  testrig . NewTestClients ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . testApplications  =  testrig . NewTestApplications ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . testUsers  =  testrig . NewTestUsers ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . testAccounts  =  testrig . NewTestAccounts ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-10 18:50:28 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . testAttachments  =  testrig . NewTestAttachments ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-09 23:55:57 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func  ( suite  * MediaCreateTestSuite )  TearDownTest ( )  {  
						 
					
						
							
								
									
										
										
										
											2021-04-10 13:34:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									testrig . StandardDBTeardown ( suite . db ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-10 18:50:28 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									testrig . StandardStorageTeardown ( suite . storage ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-09 23:55:57 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/ *  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ACTUAL  TESTS 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								* /  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func  ( suite  * MediaCreateTestSuite )  TestStatusCreatePOSTImageHandlerSuccessful ( )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-04-10 18:50:28 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// set up the context for the request 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-09 23:55:57 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									t  :=  suite . testTokens [ "local_account_1" ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									oauthToken  :=  oauth . PGTokenToOauthToken ( t ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									recorder  :=  httptest . NewRecorder ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ctx ,  _  :=  gin . CreateTestContext ( recorder ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ctx . Set ( oauth . SessionAuthorizedApplication ,  suite . testApplications [ "application_1" ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ctx . Set ( oauth . SessionAuthorizedToken ,  oauthToken ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ctx . Set ( oauth . SessionAuthorizedUser ,  suite . testUsers [ "local_account_1" ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ctx . Set ( oauth . SessionAuthorizedAccount ,  suite . testAccounts [ "local_account_1" ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-10 18:50:28 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// see what's in storage *before* the request 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									storageKeysBeforeRequest ,  err  :=  suite . storage . ListKeys ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  err  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										panic ( err ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// create the request 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-18 13:16:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									buf ,  w ,  err  :=  testrig . CreateMultipartFormData ( "file" ,  "../../../../testrig/media/test-jpeg.jpg" ,  map [ string ] string { 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-09 23:55:57 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										"description" :  "this is a test image -- a cool background from somewhere" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										"focus" :        "-0.5,0.5" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  err  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										panic ( err ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-18 13:16:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ctx . Request  =  httptest . NewRequest ( http . MethodPost ,  fmt . Sprintf ( "http://localhost:8080/%s" ,  mediamodule . BasePath ) ,  bytes . NewReader ( buf . Bytes ( ) ) )  // the endpoint we're hitting 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-09 23:55:57 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ctx . Request . Header . Set ( "Content-Type" ,  w . FormDataContentType ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-10 18:50:28 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// do the actual request 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-18 13:16:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . mediaModule . MediaCreatePOSTHandler ( ctx ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-09 23:55:57 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-04-10 18:50:28 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// check what's in storage *after* the request 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									storageKeysAfterRequest ,  err  :=  suite . storage . ListKeys ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  err  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										panic ( err ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-04-09 23:55:57 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									// check response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . EqualValues ( http . StatusAccepted ,  recorder . Code ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									result  :=  recorder . Result ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									defer  result . Body . Close ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									b ,  err  :=  ioutil . ReadAll ( result . Body ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									assert . NoError ( suite . T ( ) ,  err ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fmt . Println ( string ( b ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									attachmentReply  :=  & mastomodel . Attachment { } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									err  =  json . Unmarshal ( b ,  attachmentReply ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									assert . NoError ( suite . T ( ) ,  err ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									assert . Equal ( suite . T ( ) ,  "this is a test image -- a cool background from somewhere" ,  attachmentReply . Description ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									assert . Equal ( suite . T ( ) ,  "image" ,  attachmentReply . Type ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									assert . EqualValues ( suite . T ( ) ,  mastomodel . MediaMeta { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Original :  mastomodel . MediaDimensions { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											Width :   1920 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											Height :  1080 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											Size :    "1920x1080" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											Aspect :  1.7777778 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Small :  mastomodel . MediaDimensions { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											Width :   256 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											Height :  144 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											Size :    "256x144" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											Aspect :  1.7777778 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Focus :  mastomodel . MediaFocus { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											X :  - 0.5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											Y :  0.5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ,  attachmentReply . Meta ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									assert . Equal ( suite . T ( ) ,  "LjCZnlvyRkRn_NvzRjWF?urqV@f9" ,  attachmentReply . Blurhash ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									assert . NotEmpty ( suite . T ( ) ,  attachmentReply . ID ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									assert . NotEmpty ( suite . T ( ) ,  attachmentReply . URL ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									assert . NotEmpty ( suite . T ( ) ,  attachmentReply . PreviewURL ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-11 19:53:22 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									assert . Equal ( suite . T ( ) ,  len ( storageKeysBeforeRequest ) + 2 ,  len ( storageKeysAfterRequest ) )  // 2 images should be added to storage: the original and the thumbnail 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-09 23:55:57 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func  TestMediaCreateTestSuite ( t  * testing . T )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Run ( t ,  new ( MediaCreateTestSuite ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}