public function testIsFileRequired()
 {
     // When uninitialized, files should not be required.
     $type = new ContributionType();
     $this->assertFalse($type->isFileRequired());
     $type->file_permissions = ContributionType::FILE_PERMISSION_ALLOWED;
     $this->assertFalse($type->isFileRequired());
     $type->file_permissions = ContributionType::FILE_PERMISSION_REQUIRED;
     $this->assertTrue($type->isFileRequired());
     $type->file_permissions = ContributionType::FILE_PERMISSION_DISALLOWED;
     $this->assertFalse($type->isFileRequired());
 }
 /**
  * Deals with files specified on the contribution form.
  *
  * @param ContributionType $contributionType Type of contribution.
  * @return array File upload array.
  */
 protected function _processFileUpload($contributionType)
 {
     if ($contributionType->isFileAllowed()) {
         $options = array();
         if ($contributionType->isFileRequired()) {
             $options['ignoreNoFile'] = false;
         } else {
             $options['ignoreNoFile'] = true;
         }
         $fileMetadata = array('file_transfer_type' => 'Upload', 'files' => 'contributed_file', 'file_ingest_options' => $options);
         // Add the whitelists for uploaded files
         $fileValidation = new ContributionFileValidation();
         $fileValidation->enableFilter();
         return $fileMetadata;
     }
     return array();
 }