From a15cbf1ba0ba1e5606b091ac55f03322e8d0e858 Mon Sep 17 00:00:00 2001 From: Vishwaraj Anand Date: Sun, 3 Mar 2024 12:54:30 +0000 Subject: [PATCH] fix(Core): pass total_bytes in ResumableUploader --- Core/src/Upload/ResumableUploader.php | 2 +- .../Unit/Upload/ResumableUploaderTest.php | 27 ++++++++++++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/Core/src/Upload/ResumableUploader.php b/Core/src/Upload/ResumableUploader.php index 6e61546fe8df..b871747cefa4 100644 --- a/Core/src/Upload/ResumableUploader.php +++ b/Core/src/Upload/ResumableUploader.php @@ -264,7 +264,7 @@ protected function getStatusResponse() $request = new Request( 'PUT', $this->resumeUri, - ['Content-Range' => 'bytes */*'] + ['Content-Range' => 'bytes */' . $this->data->getSize()] ); return $this->requestWrapper->send($request, $this->requestOptions); diff --git a/Core/tests/Unit/Upload/ResumableUploaderTest.php b/Core/tests/Unit/Upload/ResumableUploaderTest.php index 7b0a5251a5b7..988f52263070 100644 --- a/Core/tests/Unit/Upload/ResumableUploaderTest.php +++ b/Core/tests/Unit/Upload/ResumableUploaderTest.php @@ -124,23 +124,44 @@ public function testGetResumeUri() $this->assertEquals($resumeUri, $uploader->getResumeUri()); } - public function testResumesUpload() + public function testResumeUploadReturnsIfAlreadySuccessful() { $response = new Response(200, [], $this->successBody); - $statusResponse = new Response(200, ['Range' => 'bytes 0-2']); $this->requestWrapper->send( Argument::type(RequestInterface::class), Argument::type('array') )->willReturn($response); + $uploader = new ResumableUploader( + $this->requestWrapper->reveal(), + $this->stream, + 'http://www.example.com' + ); + + $this->assertEquals( + json_decode($this->successBody, true), + $uploader->resume('http://some-resume-uri.example.com') + ); + } + + public function testResumesFailedUpload() + { + $response = new Response(200, [], $this->successBody); + $statusResponse = new Response(200, ['Range' => 'bytes 0-2']); + $this->requestWrapper->send( Argument::that(function ($request) { - return $request->getHeaderLine('Content-Range') === 'bytes */*'; + return $request->getHeaderLine('Content-Range') === 'bytes */4'; }), Argument::type('array') )->willReturn($statusResponse); + $this->requestWrapper->send( + Argument::type(RequestInterface::class), + Argument::type('array') + )->willReturn($response); + $uploader = new ResumableUploader( $this->requestWrapper->reveal(), $this->stream,