aboutsummaryrefslogtreecommitdiffstats
path: root/tests/download
diff options
context:
space:
mode:
Diffstat (limited to 'tests/download')
-rw-r--r--tests/download/all_tests.php40
-rw-r--r--tests/download/http_byte_range.php62
2 files changed, 102 insertions, 0 deletions
diff --git a/tests/download/all_tests.php b/tests/download/all_tests.php
new file mode 100644
index 0000000000..21305a887c
--- /dev/null
+++ b/tests/download/all_tests.php
@@ -0,0 +1,40 @@
+<?php
+/**
+*
+* @package testing
+* @copyright (c) 2010 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+if (!defined('PHPUnit_MAIN_METHOD'))
+{
+ define('PHPUnit_MAIN_METHOD', 'phpbb_download_all_tests::main');
+}
+
+require_once 'test_framework/framework.php';
+require_once 'PHPUnit/TextUI/TestRunner.php';
+
+require_once 'download/http_byte_range.php';
+
+class phpbb_download_all_tests
+{
+ public static function main()
+ {
+ PHPUnit_TextUI_TestRunner::run(self::suite());
+ }
+
+ public static function suite()
+ {
+ $suite = new PHPUnit_Framework_TestSuite('phpBB Download Tests');
+
+ $suite->addTestSuite('phpbb_download_http_byte_range_test');
+
+ return $suite;
+ }
+}
+
+if (PHPUnit_MAIN_METHOD == 'phpbb_download_all_tests::main')
+{
+ phpbb_regex_all_tests::main();
+}
diff --git a/tests/download/http_byte_range.php b/tests/download/http_byte_range.php
new file mode 100644
index 0000000000..cc42dee353
--- /dev/null
+++ b/tests/download/http_byte_range.php
@@ -0,0 +1,62 @@
+<?php
+/**
+*
+* @package testing
+* @copyright (c) 2010 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+require_once 'test_framework/framework.php';
+require_once '../phpBB/includes/functions_download.php';
+
+class phpbb_download_http_byte_range_test extends phpbb_test_case
+{
+ public function test_find_range_request()
+ {
+ // Missing 'bytes=' prefix
+ $_SERVER['HTTP_RANGE'] = 'bztes=';
+ $this->assertEquals(false, phpbb_find_range_request());
+ unset($_SERVER['HTTP_RANGE']);
+
+ $_ENV['HTTP_RANGE'] = 'bztes=';
+ $this->assertEquals(false, phpbb_find_range_request());
+ unset($_ENV['HTTP_RANGE']);
+
+ $_SERVER['HTTP_RANGE'] = 'bytes=0-0,123-125';
+ $this->assertEquals(array('0-0', '123-125'), phpbb_find_range_request());
+ unset($_SERVER['HTTP_RANGE']);
+ }
+
+ /**
+ * @dataProvider parse_range_request_data()
+ */
+ public function test_parse_range_request($request_array, $filesize, $expected)
+ {
+ $this->assertEquals($expected, phpbb_parse_range_request($request_array, $filesize));
+ }
+
+ public function parse_range_request_data()
+ {
+ return array(
+ // Does not read until the end of file.
+ array(
+ array('3-4'),
+ 10,
+ false,
+ ),
+
+ // Valid request, handle second range.
+ array(
+ array('0-0', '120-125'),
+ 125,
+ array(
+ 'byte_pos_start' => 120,
+ 'byte_pos_end' => 124,
+ 'bytes_requested' => 5,
+ 'bytes_total' => 125,
+ )
+ ),
+ );
+ }
+}