Diffs
HTTP_Download_Mobile_EZget/trunk/test/HTTP_Download_Mobile_EZgetTest.php
@@ -57,11 +57,29 @@
'response' => HTTP_Download_Mobile_EZget::RESPONSE_UNKNOWN,
),
array(
+ 'filename' => 'dummy.jpg',
+ 'offset' => null,
+ 'count' => null,
+ 'response' => HTTP_Download_Mobile_EZget::RESPONSE_UNKNOWN,
+ ),
+ array(
'filename' => HTTP_DOWNLOAD_MOBILE_EZGET_DATA_DIR.'/picture.jpg',
'offset' => '0',
'count' => '0',
'response' => HTTP_Download_Mobile_EZget::RESPONSE_UNKNOWN,
),
+ array(
+ 'filename' => HTTP_DOWNLOAD_MOBILE_EZGET_DATA_DIR.'/picture.jpg',
+ 'offset' => '0',
+ 'count' => '120',
+ 'response' => HTTP_Download_Mobile_EZget::RESPONSE_UNKNOWN,
+ ),
+ array(
+ 'filename' => HTTP_DOWNLOAD_MOBILE_EZGET_DATA_DIR.'/picture.jpg',
+ 'offset' => 0,
+ 'count' => 120.3,
+ 'response' => HTTP_Download_Mobile_EZget::RESPONSE_UNKNOWN,
+ ),
);
foreach ($data as $value) {
$actual = $ezget->getResponseType($value['offset'], $value['count'], $value['filename']);
@@ -103,6 +121,12 @@
'response' => file_get_contents(HTTP_DOWNLOAD_MOBILE_EZGET_DATA_DIR.'/picture.jpg', 0, null, 0, 120),
),
array(
+ 'filename' => HTTP_DOWNLOAD_MOBILE_EZGET_DATA_DIR.'/picture.jpg',
+ 'offset' => '0',
+ 'count' => '120',
+ 'response' => file_get_contents(HTTP_DOWNLOAD_MOBILE_EZGET_DATA_DIR.'/picture.jpg', 0, null, 0, 120),
+ ),
+ array(
'filename' => 'dummy.jpg',
'offset' => 0,
'count' => 120,
@@ -139,12 +163,9 @@
}
}
- public function _testBaseic()
+ public function testBaseic()
{
try {
- $url = new Net_URL2('http://localhost/unittest/http_download_mobile_ezget/send.php');
- $url->setQueryVariable('name' ,'picture.jpg');
-
$filesize = filesize(HTTP_DOWNLOAD_MOBILE_EZGET_DATA_DIR.'/picture.jpg');
$response = null;
@@ -165,27 +186,42 @@
echo sprintf('offset = %6d, count = %6d', $offset, $count).PHP_EOL;
- $url->setQueryVariable('offset', $offset);
- $url->setQueryVariable('count' , $count);
- $request = new HTTP_Request2($url, HTTP_Request2::METHOD_GET);
- $response = $request->send();
+ $_REQUEST['name'] = 'picture.jpg';
+ $_REQUEST['offset'] = (string)$offset;
+ $_REQUEST['count'] = (string)$count;
+ $response = $this->_server();
- if (MIME_Type::stripParameters($response->getHeader('Content-type')) === 'text/x-hdml') {
+
+ if (MIME_Type::stripParameters($response['content-type']) === 'text/x-hdml') {
break;
} else {
- $this->assertEquals($count,
- $response->getHeader('Content-length'));
+ $len = strlen($response['body']);
+ $this->assertEquals($count, $len);
- $offset += $response->getHeader('Content-length');
+ $offset += $len;
}
} while (++$step < 10000);
$this->assertEquals('text/x-hdml',
- MIME_Type::stripParameters($response->getHeader('Content-type')));
+ MIME_Type::stripParameters($response['content-type']));
} catch (HTTP_Request2_Exception $e) {
$this->fail($e->getMessage());
}
}
+
+ private function _server()
+ {
+ require_once 'HTTP/Download.php';
+
+ $ezget = new HTTP_Download_Mobile_EZget();
+
+ $response = $ezget->setFilename(isset($_REQUEST['name']) ? HTTP_DOWNLOAD_MOBILE_EZGET_DATA_DIR.'/'.$_REQUEST['name'] : null)
+ ->setOffset(isset($_REQUEST['offset']) ? $_REQUEST['offset'] : null)
+ ->setCount(isset($_REQUEST['count']) ? $_REQUEST['count'] : null)
+ ->getResponse();
+
+ return $response;
+ }
}
HTTP_Download_Mobile_EZget/trunk/test/server.php
@@ -7,7 +7,7 @@
$ezget = new HTTP_Download_Mobile_EZget();
-$response = $ezget->setFilename(isset($_REQUEST['name']) ? $_REQUEST['name'] : null)
+$response = $ezget->setFilename(isset($_REQUEST['name']) ? HTTP_DOWNLOAD_MOBILE_EZGET_DATA_DIR.'/'.$_REQUEST['name'] : null)
->setOffset(isset($_REQUEST['offset']) ? $_REQUEST['offset'] : null)
->setCount(isset($_REQUEST['count']) ? $_REQUEST['count'] : null)
->getResponse();
HTTP_Download_Mobile_EZget/trunk/src/HTTP/Download/Mobile/EZget.php
@@ -43,6 +43,9 @@
*/
public function setOffset($offset)
{
+ if (preg_match('/\d+/', $offset)) {
+ $offset = (int)$offset;
+ }
$this->offset = $offset;
return $this;
@@ -53,6 +56,9 @@
*/
public function setCount($count)
{
+ if (preg_match('/\d+/', $count)) {
+ $count = (int)$count;
+ }
$this->count = $count;
return $this;
@@ -115,20 +121,24 @@
*/
public function getResponseType($offset, $count, $filename)
{
- if ($offset >= 0 && $count > 0) {
- if (file_exists($filename)) {
- $response_type = HTTP_Download_Mobile_EZget::RESPONSE_DOWNLOADING;
+ if (gettype($offset) !== 'integer' || gettype($count) !== 'integer') {
+ $response_type = HTTP_Download_Mobile_EZget::RESPONSE_UNKNOWN;
+ } else {
+ if ($offset >= 0 && $count > 0) {
+ if (file_exists($filename)) {
+ $response_type = HTTP_Download_Mobile_EZget::RESPONSE_DOWNLOADING;
+ } else {
+ $response_type = HTTP_Download_Mobile_EZget::RESPONSE_FILENOTFOUND;
+ }
+ } elseif ($offset === 0 && $count === 0) {
+ $response_type = HTTP_Download_Mobile_EZget::RESPONSE_DOWNLOADEMPTY;
+ } elseif ($offset === -1 && $count === -1) {
+ $response_type = HTTP_Download_Mobile_EZget::RESPONSE_COMPLETED;
+ } elseif ($offset === -1 && $count === -2) {
+ $response_type = HTTP_Download_Mobile_EZget::RESPONSE_FAILED;
} else {
- $response_type = HTTP_Download_Mobile_EZget::RESPONSE_FILENOTFOUND;
+ $response_type = HTTP_Download_Mobile_EZget::RESPONSE_UNKNOWN;
}
- } elseif ($offset === 0 && $count === 0) {
- $response_type = HTTP_Download_Mobile_EZget::RESPONSE_DOWNLOADEMPTY;
- } elseif ($offset === -1 && $count === -1) {
- $response_type = HTTP_Download_Mobile_EZget::RESPONSE_COMPLETED;
- } elseif ($offset === -1 && $count === -2) {
- $response_type = HTTP_Download_Mobile_EZget::RESPONSE_FAILED;
- } else {
- $response_type = HTTP_Download_Mobile_EZget::RESPONSE_UNKNOWN;
}
return $response_type;