powered by nequal
Home » HTTP_Download_Mobile_EZget » Timeline » 1679

Changeset 1679 -- 2010-02-27 21:23:42

Author
okonomi
Comment
型チェックをちゃんとする

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;