if ($start < 0 || $start > $end) {
$this->responseStatus = 416;
$this->responseHeaders['Content-Range'] = sprintf('bytes */%s', $this->fileSize);
- } elseif ($end - $start < $this->fileSize - 1) {
+ } else {
$this->responseLength = $end < $this->fileSize ? $end - $start + 1 : -1;
$this->responseOffset = $start;
$this->responseStatus = 206;
$resp = $this->get($attachment->getUrl($isInline), ['Range' => 'bytes=0-2010']);
$resp->assertStreamedContent($content);
$resp->assertHeader('Content-Length', '2005');
- $resp->assertHeaderMissing('Content-Range');
- $resp->assertStatus(200);
+ $resp->assertHeader('Content-Range', 'bytes 0-2004/2005');
+ $resp->assertStatus(206);
// Range start before end
$resp = $this->get($attachment->getUrl($isInline), ['Range' => 'bytes=50-10']);
$resp->assertHeader('Content-Length', '2005');
$resp->assertHeader('Content-Range', 'bytes */2005');
$resp->assertStatus(416);
+
+ // Full range request
+ $resp = $this->get($attachment->getUrl($isInline), ['Range' => 'bytes=0-']);
+ $resp->assertStreamedContent($content);
+ $resp->assertHeader('Content-Length', '2005');
+ $resp->assertHeader('Content-Range', 'bytes 0-2004/2005');
+ $resp->assertStatus(206);
}
$this->files->deleteAllAttachmentFiles();