@@ -297,11 +297,22 @@ func TestPackageContainer(t *testing.T) {
297
297
SetHeader ("Content-Range" , "1-10" )
298
298
MakeRequest (t , req , http .StatusRequestedRangeNotSatisfiable )
299
299
300
- contentRange := fmt .Sprintf ("0-%d" , len (blobContent )- 1 )
301
- req .SetHeader ("Content-Range" , contentRange )
300
+ // first patch without Content-Range
301
+ req = NewRequestWithBody (t , "PATCH" , setting .AppURL + uploadURL [1 :], bytes .NewReader (blobContent [:1 ])).
302
+ AddTokenAuth (userToken )
303
+ resp = MakeRequest (t , req , http .StatusAccepted )
304
+ assert .NotEmpty (t , resp .Header ().Get ("Location" ))
305
+ assert .Equal (t , "0-0" , resp .Header ().Get ("Range" ))
306
+
307
+ // then send remaining content with Content-Range
308
+ req = NewRequestWithBody (t , "PATCH" , setting .AppURL + uploadURL [1 :], bytes .NewReader (blobContent [1 :])).
309
+ SetHeader ("Content-Range" , fmt .Sprintf ("1-%d" , len (blobContent )- 1 )).
310
+ AddTokenAuth (userToken )
302
311
resp = MakeRequest (t , req , http .StatusAccepted )
303
312
313
+ contentRange := fmt .Sprintf ("0-%d" , len (blobContent )- 1 )
304
314
assert .Equal (t , uuid , resp .Header ().Get ("Docker-Upload-Uuid" ))
315
+ assert .NotEmpty (t , resp .Header ().Get ("Location" ))
305
316
assert .Equal (t , contentRange , resp .Header ().Get ("Range" ))
306
317
307
318
uploadURL = resp .Header ().Get ("Location" )
@@ -311,6 +322,7 @@ func TestPackageContainer(t *testing.T) {
311
322
resp = MakeRequest (t , req , http .StatusNoContent )
312
323
313
324
assert .Equal (t , uuid , resp .Header ().Get ("Docker-Upload-Uuid" ))
325
+ assert .Equal (t , uploadURL , resp .Header ().Get ("Location" ))
314
326
assert .Equal (t , contentRange , resp .Header ().Get ("Range" ))
315
327
316
328
pbu , err = packages_model .GetBlobUploadByID (db .DefaultContext , uuid )
0 commit comments