function testCreateFileDbEntryMovedFile() { // Create toto.txt in the release directory mkdir($GLOBALS['ftp_frs_dir_prefix'] . '/prj/p123_r456'); touch($GLOBALS['ftp_frs_dir_prefix'] . '/prj/p123_r456/toto.txt'); touch($GLOBALS['ftp_incoming_dir'] . '/toto.txt'); $p = new MockProject(); $p->setReturnValue('getUnixName', 'prj'); $r = new FRSRelease(); $r->setReleaseID(456); $r->setPackageID(123); $r->setProject($p); $f = new FRSFile(); $f->setFileName('toto.txt'); $f->setRelease($r); $f->setFileLocation($GLOBALS['ftp_frs_dir_prefix'] . '/prj/p123_r456'); $ff = new FRSFileFactoryTestCreateFiles(); $ff->setReturnValue('moveFileForge', True); $ff->setReturnValue('create', False); try { $ff->createFile($f, ~FRSFileFactory::COMPUTE_MD5); } catch (Exception $e) { $this->assertIsA($e, 'FRSFileDbException'); } //Cleanup unlink($GLOBALS['ftp_frs_dir_prefix'] . '/prj/p123_r456/toto.txt'); unlink($GLOBALS['ftp_incoming_dir'] . '/toto.txt'); rmdir($GLOBALS['ftp_frs_dir_prefix'] . '/prj/p123_r456'); }
private function importRelease(Project $project, FRSPackage $package, SimpleXMLElement $xml_rel, $extraction_path) { $user = $this->user_finder->getUser($xml_rel->user); $attrs = $xml_rel->attributes(); $release = new FRSRelease(); $release->setProject($project); $release->setReleaseDate(strtotime($attrs['time'])); $release->setName((string) $attrs['name']); $release->setStatusID(FRSRelease::STATUS_ACTIVE); $release->setPackageID($package->getPackageID()); $release->setNotes((string) $xml_rel->notes); $release->setChanges((string) $xml_rel->changes); $release->setPreformatted($attrs['preformatted'] == '1' || $attrs['preformatted'] == 'true'); $release->setReleasedBy($user->getId()); $release->setReleaseID($this->release_factory->create($release->toArray())); $read_perms = array(); foreach ($xml_rel->{'read-access'} as $perm) { $ugroup_name = (string) $perm->ugroup; $ugroup = $this->getUGroupManager()->getUGroupByName($project, $ugroup_name); $read_perms[] = $ugroup->getId(); } $this->getPermissionsManager()->savePermissions($project, $release->getReleaseID(), FRSRelease::PERM_READ, $read_perms); foreach ($xml_rel->xpath('file') as $xml_file) { $this->importFile($project, $release, $user, $xml_file, $extraction_path); } }