public function testRenameSVNRepository() { $project = new MockProject($this); $project->setReturnValue('getUnixNameMixedCase', 'TestProj'); $project->setReturnValue('getSVNRootPath', $GLOBALS['svn_prefix'] . '/TestProj'); $project->setReturnValue('isSVNTracked', false); $project->setReturnValue('getMembersUserNames', array()); $pm = new MockProjectManager(); $pm->setReturnReference('getProject', $project, array(142)); $ugdao = new MockUGroupDao(); $ugdao->setReturnValue('searchByGroupId', array()); $this->backend->setReturnValue('getProjectManager', $pm); $this->backend->setReturnValue('getUGroupDao', $ugdao); $this->backend->createProjectSVN(142); $this->assertEqual($this->backend->renameSVNRepository($project, "foobar"), true); $this->assertTrue(is_dir($GLOBALS['svn_prefix'] . "/foobar"), "SVN dir should be renamed"); // Cleanup $this->backend->recurseDeleteInDir($GLOBALS['svn_prefix'] . "/foobar"); rmdir($GLOBALS['svn_prefix'] . "/foobar"); }
/** * @return BackendCVS */ function GivenACVSRepositoryWithWrongOwnership($project, $cvsdir) { $pm = new MockProjectManager(); $pm->setReturnReference('getProject', $project, array(1)); $backend = TestHelper::getPartialMock('BackendCVS', array('getProjectManager', 'system', 'chown', 'chgrp', 'chmod', 'getHTTPUserUID', 'log')); $backend->setReturnValue('getProjectManager', $pm); touch($cvsdir . '/CVSROOT/loginfo'); touch($cvsdir . '/CVSROOT/commitinfo'); touch($cvsdir . '/CVSROOT/config'); //fake the fact that the repo has wrong ownership $stat = stat($cvsdir . '/CVSROOT/loginfo'); $project->setReturnValue('getUnixGID', $stat['gid'] + 1); $backend->setReturnValue('getHTTPUserUID', $stat['uid']); return $backend; }
/** * testproject -> projecttest */ public function testRenameProjectHomeDirectoryLowerCase() { $project = new MockProject($this); $project->setReturnValue('getUnixName', 'testproject', array(false)); $project->setReturnValue('getUnixName', 'testproject', array(true)); $pm = new MockProjectManager(); $pm->setReturnReference('getProject', $project, array(142)); $backend = new BackendTestVersion($this); $backend->setReturnValue('getProjectManager', $pm); $backend->createProjectHome(142); $this->assertEqual($backend->renameProjectHomeDirectory($project, "projecttest"), true); $this->assertFalse(file_exists($GLOBALS['grpdir_prefix'] . "/testproject"), "Old project home should no longer exists"); $this->assertTrue(is_dir($GLOBALS['grpdir_prefix'] . "/projecttest"), "Project home should be renamed"); // Cleanup $backend->recurseDeleteInDir($GLOBALS['grpdir_prefix'] . "/projecttest"); rmdir($GLOBALS['grpdir_prefix'] . "/projecttest"); rmdir($GLOBALS['ftp_anon_dir_prefix'] . "/testproject"); rmdir($GLOBALS['ftp_frs_dir_prefix'] . "/testproject"); }
public function testImpossibleToCreateTrackerWithAlreadyUsedShortName() { $tracker_factory = new TrackerFactoryTestVersion2(); $dao = new MockTrackerDao(); $dao->setReturnValue('duplicate', 999); $tracker_factory->setReturnReference('getDao', $dao); $project = new MockProject(); $project->setReturnValue('isError', false); $pm = new MockProjectManager(); $pm->setReturnReference('getProject', $project, array(456)); $tracker_factory->setReturnReference('getProjectManager', $pm); $rm = new MockReferenceManager(); $rm->setReturnValue('_isKeywordExists', false, array("MyNewTracker", 123)); // keyword is not alreay used $tracker_factory->setReturnReference('getReferenceManager', $rm); $tracker = new MockTracker(); $tracker_factory->setReturnReference('getTrackerById', $tracker, array(999)); $tracker_factory->setReturnValue('isNameExists', false, array("My New Tracker", 123)); // name is not already used $tracker_factory->setReturnValue('isShortNameExists', true, array("MyNewTracker", 123)); // shortname is already used // check that an error is returned if we try to create a tracker // with a name (not shortname) already used $project_id = 123; $group_id_template = 456; $id_template = 789; $name = 'My New Tracker'; $description = 'My New Tracker to manage my brand new artifacts'; $itemname = 'MyNewTracker'; $this->assertFalse($tracker_factory->create($project_id, $group_id_template, $id_template, $name, $description, $itemname)); }