示例#1
0
文件: CurlTest.php 项目: Joal01/fof
 /**
  * @covers  FOF30\Download\Adapter\Curl::getFileSize
  *
  * @dataProvider    FOF30\Tests\Download\Adapter\CurlDataprovider::getTestGetFileSize
  *
  * @param array $config
  * @param array $test
  */
 public function testGetFileSize(array $config, array $test)
 {
     FakeCurl::setUp($config);
     $adapter = new Curl();
     $ret = $adapter->getFileSize($test['url']);
     $this->assertEquals($test['retSize'], $ret, $test['message']);
 }
示例#2
0
 /**
  * @covers  FOF30\Download\Download::importFromUrl
  *
  * @dataProvider    FOF30\Tests\Download\DownloadDataprovider::getTestImportFromUrl
  *
  * @param array $config
  * @param array $params
  * @param array $test
  */
 public function testImportFromUrl(array $config, array $params, array $test)
 {
     // Set up the FakeCurl simulator
     FakeCurl::setUp($config);
     // Get the download class
     $download = new Download(static::$container);
     $download->setAdapter('curl');
     // Initialise
     $loopAllowed = $test['loop'];
     // Get the output file name
     $platformDirs = static::$container->platform->getPlatformBaseDirs();
     $tmpDir = $platformDirs['tmp'];
     $localFilename = $tmpDir . '/test.dat';
     // Set up the download parameters
     $params['localFilename'] = $localFilename;
     #$params['maxExecTime'] = $test['loop'] ? 10000 : 0;
     $params['maxExecTime'] = 0;
     if (isset($test['localfile'])) {
         if (empty($test['localfile'])) {
             unset($params['localFilename']);
         } else {
             $params['localFilename'] = $test['localfile'];
         }
     }
     // Remove the local filename if it's still there
     @unlink($localFilename);
     do {
         $ret = $download->importFromURL($params);
         if ($loopAllowed) {
             $loopAllowed = !($ret['frag'] == -1 || $ret['error']);
         }
         $params = array_merge($params, $ret);
         if (isset($params['localFilename']) && !empty($params['localFilename'])) {
             $localFilename = $params['localFilename'];
         }
     } while ($loopAllowed);
     foreach ($test['expect'] as $k => $v) {
         // Validate expected parameters
         $this->assertEquals($v, $ret[$k], $test['message'] . " (returned {$k} does not match)");
     }
     // Check the return size
     if (!$test['expect']['error']) {
         $fileSize = @filesize($localFilename);
         $this->assertEquals($test['retSize'], $fileSize, $test['message'] . " (size doesn't match {$test['retSize']})");
     }
     // Remove the local filename if it's still there
     @unlink($localFilename);
 }