@@ -142,6 +142,27 @@ public void GetUploadData_TagsString()
142142 Assert . Equal ( "tag1,tag2" , actualTags ) ;
143143 }
144144
145+ [ Fact ]
146+ public void GetUploadData_Generic ( )
147+ {
148+ var fileName = Guid . NewGuid ( ) . ToString ( ) ;
149+ var imagekit = new ServerImagekit ( GOOD_PUBLICKEY , GOOD_PRIVATEKEY , GOOD_URLENDPOINT )
150+ . FileName ( fileName )
151+ . Folder ( "/test/" )
152+ . isPrivateFile ( true )
153+ . UseUniqueFileName ( false )
154+ . CustomCoordinates ( "10,10,100,100" )
155+ . ResponseFields ( "tags,customCoordinates,isPrivateFile" )
156+ . Tags ( "tag1,tag2" ) ;
157+ var data = imagekit . getUploadData ( ) ;
158+ Assert . True ( data . TryGetValue ( "responseFields" , out string respFields ) , "ResponseFields upload data not found" ) ;
159+ Assert . True ( data . TryGetValue ( "useUniqueFileName" , out string uniqueParam ) , "UseUniqueFileName upload not found" ) ;
160+ Assert . True ( data . TryGetValue ( "folder" , out string folder ) , "folder upload not found" ) ;
161+ Assert . Equal ( "tags,customCoordinates,isPrivateFile" , respFields ) ;
162+ Assert . Equal ( "false" , uniqueParam ) ;
163+ Assert . Equal ( "/test/" , folder ) ;
164+ }
165+
145166 [ Fact ]
146167 public void GetUploadData_TagsArray ( )
147168 {
@@ -154,6 +175,51 @@ public void GetUploadData_TagsArray()
154175 Assert . Equal ( "tag1,tag2" , actualTags ) ;
155176 }
156177
178+ [ Fact ]
179+ public void GetUploadData_MissingFileName_Exception ( )
180+ {
181+ var imagekit = new ServerImagekit ( GOOD_PUBLICKEY , GOOD_PRIVATEKEY , GOOD_URLENDPOINT )
182+ . Tags ( "tag1" ) ;
183+ var ex = Assert . Throws < ArgumentException > ( ( ) => imagekit . getUploadData ( ) ) ;
184+ Assert . Equal ( errorMessages . MISSING_UPLOAD_FILENAME_PARAMETER , ex . Message ) ;
185+ }
186+
187+ [ Fact ]
188+ public void ListFiles ( )
189+ {
190+ var fileId = Guid . NewGuid ( ) . ToString ( ) ;
191+ var responseObj = TestHelpers . ListAPIResponseFaker . Generate ( ) ;
192+ var httpResponse = new HttpResponseMessage
193+ {
194+ StatusCode = HttpStatusCode . OK ,
195+ Content = new StringContent ( JsonConvert . SerializeObject ( responseObj ) )
196+ } ;
197+ var httpClient = TestHelpers . GetTestHttpClient ( httpResponse ) ;
198+ Util . Utils . SetHttpClient ( httpClient ) ;
199+
200+ var imagekit = new ServerImagekit ( GOOD_PUBLICKEY , GOOD_PRIVATEKEY , GOOD_URLENDPOINT ) ;
201+ var response = imagekit . ListFiles ( ) ;
202+ Assert . Equal ( responseObj . StatusCode , response [ 0 ] . StatusCode ) ;
203+ }
204+
205+ [ Fact ]
206+ public async void DeleteApi_Response ( )
207+ {
208+ var fileId = Guid . NewGuid ( ) . ToString ( ) ;
209+ var responseObj = TestHelpers . DeleteAPIResponseFaker . Generate ( ) ;
210+ var httpResponse = new HttpResponseMessage
211+ {
212+ StatusCode = HttpStatusCode . OK ,
213+ Content = new StringContent ( JsonConvert . SerializeObject ( responseObj ) )
214+ } ;
215+ var httpClient = TestHelpers . GetTestHttpClient ( httpResponse ) ;
216+ Util . Utils . SetHttpClient ( httpClient ) ;
217+
218+ var imagekit = new ServerImagekit ( GOOD_PUBLICKEY , GOOD_PRIVATEKEY , GOOD_URLENDPOINT ) ;
219+ var response = await imagekit . DeleteFileAsync ( fileId ) ;
220+ Assert . Equal ( responseObj . StatusCode , response . StatusCode ) ;
221+ }
222+
157223 [ Theory ]
158224 [ InlineData ( null ) ]
159225 [ InlineData ( "null" ) ]
@@ -256,6 +322,19 @@ public void IsLocalPathTest(string path, bool expected)
256322 Assert . Equal ( expected , Util . Utils . IsLocalPath ( path ) ) ;
257323 }
258324
325+ [ Theory ]
326+ [ InlineData ( "https://example.com/test.jpg" , true ) ]
327+ [ InlineData ( "http://example.com/" , true ) ]
328+ [ InlineData ( "ftp://example.com" , false ) ]
329+ [ InlineData ( @"C:\test\test 1.jpg" , false ) ]
330+ [ InlineData ( @"C:\test\test.jpg" , false ) ]
331+ [ InlineData ( @"\\test.com\test.jpg" , false ) ]
332+ [ InlineData ( "http:\\ mysite\t est.xml" , false ) ]
333+ public void IsValidURITest ( string url , bool expected )
334+ {
335+ Assert . Equal ( expected , Util . Utils . IsValidURI ( url ) ) ;
336+ }
337+
259338 [ Fact ]
260339 public void Url_WithoutUrl_Source ( )
261340 {
@@ -288,6 +367,22 @@ public void Url_Signed()
288367 Assert . Equal ( "https://ik.imagekit.io/test_url_endpoint/default-image.jpg?ik-s=d0f5c0d0c92c0072068b45d3d5a73ab6e306dbf8" , imageURL ) ;
289368 }
290369
370+ [ Fact ]
371+ public void Url_Signed_Timestamp ( )
372+ {
373+ string imageURL = imagekit . Url ( new Transformation ( ) ) . Path ( SAMPLE_PATH ) . Signed ( true ) . ExpireSeconds ( 300 ) . Generate ( ) ;
374+ Assert . Contains ( "https://ik.imagekit.io/test_url_endpoint/default-image.jpg?ik-t=" , imageURL ) ;
375+ }
376+
377+ [ Fact ]
378+ public void Url_Signed_Without_priavteKey ( )
379+ {
380+ ClientImagekit imagekit1 = new ClientImagekit ( GOOD_PUBLICKEY , URLENDPOINT )
381+ . Path ( SAMPLE_PATH ) . Signed ( true ) . ExpireSeconds ( 300 ) ;
382+ var ex = Assert . Throws < ArgumentNullException > ( ( ) => imagekit1 . Url ( new Transformation ( ) ) . Path ( SAMPLE_PATH ) . Signed ( true ) . ExpireSeconds ( 300 ) . Generate ( ) ) ;
383+ Assert . Equal ( errorMessages . PRIVATE_KEY_MISSING , ex . ParamName ) ;
384+ }
385+
291386 [ Fact ]
292387 public void Url_WithPath_Transformation ( )
293388 {
@@ -302,6 +397,13 @@ public void Url_WithSRC_Transform()
302397 Assert . Equal ( URLENDPOINT + "/default-image.jpg?tr=h-300%2Cw-400" , imageURL ) ;
303398 }
304399
400+ [ Fact ]
401+ public void Url_WithSRC_Param_Transform ( )
402+ {
403+ string imageURL = imagekit . Url ( new Transformation ( ) . Height ( 300 ) . Width ( 400 ) ) . Src ( SAMPLE_SRC_URL + "?a=test" ) . Generate ( ) ;
404+ Assert . Equal ( URLENDPOINT + "/default-image.jpg?a=test&tr=h-300%2Cw-400" , imageURL ) ;
405+ }
406+
305407 [ Fact ]
306408 public void Url_WithPath_Multiple_LeadingSlash ( )
307409 {
0 commit comments