/**
  * Goes through the array of files and processes them accordingly.
  * The result is an array of the appropiate Resource class that has been
  * created using the ResourceFactory class.
  *
  * @return An array of Upload objects that have already been moved to a safer
  * location.
  */
 function process($destinationFolder)
 {
     // first, check if the upload feature is available
     $config =& Config::getConfig();
     if (!$config->getValue("uploads_enabled")) {
         return FILE_UPLOADS_NOT_ENABLED;
     }
     // array used to store the files that have already been saved
     $uploads = array();
     if ($destinationFolder[strlen($destinationFolder - 1)] != "/") {
         $destinationFolder .= "/";
     }
     foreach ($this->_files as $file) {
         $upload = new FileUpload($file);
         $fileName = $upload->getFileName();
         if ($this->my_move_uploaded_file($upload->getTmpName(), $destinationFolder . $fileName)) {
             $upload->setFolder($destinationFolder);
             $upload->setError(0);
         } else {
             $upload->setError(1);
         }
         array_push($uploads, $upload);
     }
     return $uploads;
 }
 public function testCantMoveWithError()
 {
     $samplePath = realpath(__DIR__ . '/Sample') . '/upload.txt';
     $targetPath = realpath(__DIR__ . '/Sample') . '/upload_moved.txt';
     if (!file_exists($samplePath) || filesize($samplePath) == 0) {
         $this->markTestSkipped('Sample upload file could not be read correctly: ' . $samplePath);
         return;
     }
     if (file_exists($targetPath)) {
         if (!unlink($targetPath)) {
             $this->markTestSkipped('Moved upload file remains from old test and could not be removed');
             return;
         }
     }
     $file = new FileUpload();
     $file->setTemporaryPath($samplePath);
     $file->setError(UPLOAD_ERR_CANT_WRITE);
     $this->assertFalse($file->saveTo($targetPath));
     $this->assertFileNotExists($targetPath);
 }