diff options
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> | 2016-09-07 03:58:33 +0200 |
---|---|---|
committer | Dan Villiom Podlaski Christiansen <danchr@gmail.com> | 2016-09-07 03:58:33 +0200 |
commit | d2750b650fb3600ef2cf7b7139998e1a71c7d5ef (patch) | |
tree | 7c7a018e29f0fcd293609bee8ae32a6b42c5c557 /tests/download | |
parent | 65921a78915e0c9bf494e8c780681522644abf7d (diff) | |
download | forums-d2750b650fb3600ef2cf7b7139998e1a71c7d5ef.tar forums-d2750b650fb3600ef2cf7b7139998e1a71c7d5ef.tar.gz forums-d2750b650fb3600ef2cf7b7139998e1a71c7d5ef.tar.bz2 forums-d2750b650fb3600ef2cf7b7139998e1a71c7d5ef.tar.xz forums-d2750b650fb3600ef2cf7b7139998e1a71c7d5ef.zip |
[ticket/14774] Support partial downloads of attachments
phpBB already had limited support for partial downloads, but only for
resuming downloads, disregarding any range ending before EOF.
WebKit on iOS and OS X uses partial downloads when fetching media
files. Previously, only MP3 attachments could play directly in the
browser, reported as a live stream, but with this change, all
supported media formats should render as expected.
Tested using cURL by verifying that partial downloads give exactly the
same results compared to Apache.
PHPBB3-14774
Diffstat (limited to 'tests/download')
-rw-r--r-- | tests/download/http_byte_range_test.php | 62 |
1 files changed, 55 insertions, 7 deletions
diff --git a/tests/download/http_byte_range_test.php b/tests/download/http_byte_range_test.php index f920299048..8975ec1799 100644 --- a/tests/download/http_byte_range_test.php +++ b/tests/download/http_byte_range_test.php @@ -45,24 +45,72 @@ class phpbb_download_http_byte_range_test extends phpbb_test_case public function parse_range_request_data() { return array( - // Does not read until the end of file. + // Valid request array( array('3-4'), 10, - false, + array( + 'byte_pos_start' => 3, + 'byte_pos_end' => 4, + 'bytes_requested' => 2, + 'bytes_total' => 10, + ), ), - // Valid request, handle second range. + // Get the beginning array( - array('0-0', '120-125'), - 125, + array('-5'), + 10, array( - 'byte_pos_start' => 120, - 'byte_pos_end' => 124, + 'byte_pos_start' => 0, + 'byte_pos_end' => 5, + 'bytes_requested' => 6, + 'bytes_total' => 10, + ), + ), + + // Get the end + array( + array('5-'), + 10, + array( + 'byte_pos_start' => 5, + 'byte_pos_end' => 9, 'bytes_requested' => 5, + 'bytes_total' => 10, + ), + ), + + // Overlong request + array( + array('3-20'), + 10, + array( + 'byte_pos_start' => 3, + 'byte_pos_end' => 9, + 'bytes_requested' => 7, + 'bytes_total' => 10, + ), + ), + + // Multiple, contiguous range + array( + array('10-20', '21-30'), + 125, + array( + 'byte_pos_start' => 10, + 'byte_pos_end' => 30, + 'bytes_requested' => 21, 'bytes_total' => 125, ) ), + + // We don't do multiple, non-contiguous range + array( + array('0-0', '120-125'), + 125, + false, + ), ); } } |