@@ -297,11 +297,22 @@ func TestPackageContainer(t *testing.T) {
297297 SetHeader ("Content-Range" , "1-10" )
298298 MakeRequest (t , req , http .StatusRequestedRangeNotSatisfiable )
299299
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 )
302311 resp = MakeRequest (t , req , http .StatusAccepted )
303312
313+ contentRange := fmt .Sprintf ("0-%d" , len (blobContent )- 1 )
304314 assert .Equal (t , uuid , resp .Header ().Get ("Docker-Upload-Uuid" ))
315+ assert .NotEmpty (t , resp .Header ().Get ("Location" ))
305316 assert .Equal (t , contentRange , resp .Header ().Get ("Range" ))
306317
307318 uploadURL = resp .Header ().Get ("Location" )
@@ -311,6 +322,7 @@ func TestPackageContainer(t *testing.T) {
311322 resp = MakeRequest (t , req , http .StatusNoContent )
312323
313324 assert .Equal (t , uuid , resp .Header ().Get ("Docker-Upload-Uuid" ))
325+ assert .Equal (t , uploadURL , resp .Header ().Get ("Location" ))
314326 assert .Equal (t , contentRange , resp .Header ().Get ("Range" ))
315327
316328 pbu , err = packages_model .GetBlobUploadByID (db .DefaultContext , uuid )
0 commit comments