public function testExecutes_ForkRepositories_ActionWithAListOfRepos()
 {
     $groupId = 101;
     $repo = new GitRepository();
     $repos = array($repo);
     $user = new User();
     $user->setId(42);
     $user->setUserName('Ben');
     $path = userRepoPath('Ben', 'toto');
     $project = new MockProject();
     $projectManager = new MockProjectManager();
     $projectManager->setReturnValue('getProject', $project, array($groupId));
     $factory = new MockGitRepositoryFactory();
     $factory->setReturnValue('getRepositoryById', $repo);
     $git = TestHelper::getPartialMock('Git', array('definePermittedActions', '_informAboutPendingEvents', 'addAction', 'addView', 'checkSynchronizerToken'));
     $git->setGroupId($groupId);
     $git->setProjectManager($projectManager);
     $git->expectAt(0, 'addAction', array('getProjectRepositoryList', array($groupId)));
     $git->expectAt(1, 'addAction', array('fork', array($repos, $project, $path, GitRepository::REPO_SCOPE_INDIVIDUAL, $user, $GLOBALS['HTML'], '/plugins/git/?group_id=101&user=42')));
     $request = new Codendi_Request(array('repos' => array('1001'), 'path' => 'toto'));
     $git->setFactory($factory);
     $git->_doDispatchForkRepositories($request, $user);
 }
Esempio n. 2
0
 function testUserRepoPath_ComplainsWhenUserTriesToByPathItsHomeDirectory()
 {
     $this->expectException('MalformedPathException');
     $this->assertEqual('u/nicolas/root', userRepoPath('nicolas', '/users/../root'));
 }
Esempio n. 3
0
 public function _doDispatchForkRepositories($request, $user)
 {
     $this->addAction('getProjectRepositoryList', array($this->groupId));
     $this->checkSynchronizerToken('/plugins/git/?group_id=' . (int) $this->groupId . '&action=fork_repositories');
     $repos_ids = array();
     $valid = new Valid_String('path');
     $valid->required();
     $path = '';
     if ($request->valid($valid)) {
         $path = trim($request->get('path'));
     }
     $path = userRepoPath($user->getUserName(), $path);
     $forkPermissions = $this->getForkPermissionsFromRequest($request);
     $valid = new Valid_String('repos');
     $valid->required();
     $repos_ids = explode(',', $request->get('repos'));
     $to_project = $this->projectManager->getProject($this->groupId);
     $repos = $this->getRepositoriesFromIds($repos_ids);
     $scope = GitRepository::REPO_SCOPE_INDIVIDUAL;
     $redirect_url = '/plugins/git/?group_id=' . (int) $this->groupId . '&user='******'fork', array($repos, $to_project, $path, $scope, $user, $GLOBALS['HTML'], $redirect_url, $forkPermissions));
 }