コード例 #1
0
 public function setUp()
 {
     parent::setUp();
     $project = aMockProject()->withId(34)->build();
     $this->tracker = aMockTracker()->withId(12)->withProject($project)->build();
     $this->user = aUser()->build();
     $this->hierarchy_factory = mock('Tracker_HierarchyFactory');
     $this->planning_factory = mock('PlanningFactory');
     $this->kanban_factory = mock('AgileDashboard_KanbanFactory');
     $this->hierarchy = mock('Tracker_Hierarchy');
     $this->tracker_factory = mock('TrackerFactory');
     $this->hierarchy_checker = new AgileDashboard_HierarchyChecker($this->planning_factory, $this->kanban_factory, $this->tracker_factory);
 }
コード例 #2
0
 public function itCanRenameProject()
 {
     $new_name = 'newone';
     stub($this->project_manager)->getProjectByUnixName($new_name)->returns(aMockProject()->withUnixName($new_name)->build());
     $this->gitExec->expectOnce('push');
     $this->assertTrue(is_file($this->_glAdmDir . '/conf/projects/legacy.conf'));
     $this->assertFalse(is_file($this->_glAdmDir . '/conf/projects/newone.conf'));
     $this->assertTrue($this->a_gitolite_driver->renameProject('legacy', $new_name));
     clearstatcache(true, $this->_glAdmDir . '/conf/projects/legacy.conf');
     $this->assertFalse(is_file($this->_glAdmDir . '/conf/projects/legacy.conf'));
     $this->assertTrue(is_file($this->_glAdmDir . '/conf/projects/newone.conf'));
     $this->assertIdentical(file_get_contents($this->_fixDir . '/perms/newone.conf'), file_get_contents($this->_glAdmDir . '/conf/projects/newone.conf'));
     $this->assertNoPattern('`\\ninclude "projects/legacy.conf"\\n`', $this->getGitoliteConf());
     $this->assertPattern('`\\ninclude "projects/newone.conf"\\n`', $this->getGitoliteConf());
     $this->assertEmptyGitStatus();
 }
コード例 #3
0
 public function setUp()
 {
     parent::setUp();
     $this->server = mock('Git_RemoteServer_GerritServer');
     $this->project = aMockProject()->withId($this->project_id)->withUnixName($this->project_unix_name)->isPublic()->build();
     $this->project_admins_gerrit_parent_name = 'grozilla/project_admins';
     $this->parent_project = aMockProject()->withId(104)->withUnixName('grozilla')->build();
     $this->parent_project_admins = aMockUGroup()->withId(ProjectUGroup::PROJECT_ADMIN)->withNormalizedName('project_admins')->build();
     $this->project_admins = aMockUGroup()->withId(ProjectUGroup::PROJECT_ADMIN)->withNormalizedName('project_admins')->build();
     $this->driver = mock('Git_Driver_Gerrit');
     stub($this->driver)->doesTheParentProjectExist()->returns(false);
     $driver_factory = stub('Git_Driver_Gerrit_GerritDriverFactory')->getDriver()->returns($this->driver);
     $this->ugroup_manager = mock('UGroupManager');
     stub($this->ugroup_manager)->getUGroups($this->project)->returns(array($this->project_admins));
     stub($this->ugroup_manager)->getUGroups($this->parent_project)->returns(array($this->parent_project_admins));
     $this->membership_manager = mock('Git_Driver_Gerrit_MembershipManager');
     stub($this->membership_manager)->createArrayOfGroupsForServer()->returns(array($this->project_admins, $this->parent_project_admins));
     $this->project_manager = mock('ProjectManager');
     $this->umbrella_manager = new Git_Driver_Gerrit_UmbrellaProjectManager($this->ugroup_manager, $this->project_manager, $this->membership_manager, $driver_factory);
 }
コード例 #4
0
 public function setUp()
 {
     parent::setUp();
     $this->project = aMockProject()->withId(102)->build();
 }
コード例 #5
0
 public function setUp()
 {
     parent::setUp();
     $this->remote_server_factory = mock('Git_RemoteServer_GerritServerFactory');
     $this->git_repository_factory = mock('GitRepositoryFactory');
     $this->logger = mock('Logger');
     $this->dao = mock('Git_Driver_Gerrit_MembershipDao');
     $this->user1 = mock('PFUser');
     $this->user2 = mock('PFUser');
     $this->membership_manager = partial_mock('Git_Driver_Gerrit_MembershipManager', array('addUGroupBinding', 'addUserToGroupWithoutFlush', 'doesGroupExistOnServer'), array($this->dao, $this->driver_factory, $this->gerrit_user_manager, $this->remote_server_factory, $this->logger, $this->ugroup_manager, $this->project_manager));
     stub($this->membership_manager)->doesGroupExistOnServer()->returns(true);
     $child_project = aMockProject()->withId(112)->build();
     stub($this->project_manager)->getChildProjects()->returns(array($child_project));
 }
コード例 #6
0
 function testSvnAccessFileShouldCallsvn_utils_read_svn_access_file_defaultsWithCaseSensitiveRepositoryName()
 {
     $project = aMockProject()->build();
     stub($project)->getSVNRootPath()->returns('/svnroot/mytestproject');
     $saf = partial_mock('SVNAccessFile', array('getPlatformBlock'));
     expect($saf)->getPlatformBlock('/svnroot/mytestproject')->once();
     $saf->parseGroupLines($project, '');
 }
コード例 #7
0
 function testGetMessageForUserParentListened()
 {
     $language = new MockBaseLanguage();
     $language->setReturnValue('getText', 'notif_modified_by', array('plugin_docman', 'notif_modified_by'));
     $language->setReturnValue('getText', 'notif_wiki_new_version', array('plugin_docman', 'notif_wiki_new_version', 'wiki'));
     $language->setReturnValue('getText', 'notif_something_happen', array('plugin_docman', 'notif_something_happen'));
     $language->setReturnValue('getText', 'notif_footer_message', array('plugin_docman', 'notif_footer_message'));
     $language->setReturnValue('getText', 'notif_footer_message_link', array('plugin_docman', 'notif_footer_message_link'));
     $project = aMockProject()->withId(101)->build();
     $feedback = new MockFeedback($this);
     $mail_builder = new MailBuilder(TemplateRendererFactory::build());
     $notificationsManager = new Docman_NotificationsManager_TestVersion();
     $notificationsManager->__construct($project, '/toto', $feedback, $mail_builder);
     $notificationsManager->setReturnValue('_getLanguageForUser', $language);
     $notificationsManager->_url = 'http://www.example.com/plugins/docman/';
     $user = mock('PFUser');
     $user->setReturnValue('getRealName', 'John Doe');
     $user->setReturnValue('getId', 2);
     $params['path'] = new MockDocman_Path();
     $params['path']->setReturnValue('get', 'Folder1/Folder2/File');
     $params['item'] = new MockDocman_Item();
     $params['item']->setReturnValue('getId', 10);
     $parentItem = new MockDocman_Item();
     $parentItem->setReturnValue('getId', 1);
     $notificationsManager->setReturnValue('getListeningUsers', array($user->getId() => $parentItem));
     $params['wiki_page'] = 'wiki';
     $params['url'] = 'http://www.example.com/plugins/docman/';
     $message1 = "Folder1/Folder2/File notif_modified_by John Doe.\nhttp://www.example.com/plugins/docman/&action=details&id=10\n\n\n--------------------------------------------------------------------\nnotif_footer_message\nnotif_footer_message_link\nhttp://www.example.com/plugins/docman/&action=details&section=notifications&id=1";
     $message2 = "Folder1/Folder2/File notif_modified_by John Doe.\nhttp://www.example.com/plugins/docman/&action=details&id=10\n\n\n--------------------------------------------------------------------\nnotif_footer_message\nnotif_footer_message_link\nhttp://www.example.com/plugins/docman/&action=details&section=notifications&id=1";
     $message3 = "notif_wiki_new_version John Doe.\nhttp://www.example.com/plugins/docman/\n\n\n--------------------------------------------------------------------\nnotif_footer_message\nnotif_footer_message_link\nhttp://www.example.com/plugins/docman/&action=details&section=notifications&id=1";
     $message4 = "notif_something_happen\n\n--------------------------------------------------------------------\nnotif_footer_message\nnotif_footer_message_link\nhttp://www.example.com/plugins/docman/&action=details&section=notifications&id=1";
     $this->assertEqual($message1, $notificationsManager->_getMessageForUser($user, 'modified', $params));
     $this->assertEqual($message2, $notificationsManager->_getMessageForUser($user, 'new_version', $params));
     $this->assertEqual($message3, $notificationsManager->_getMessageForUser($user, 'new_wiki_version', $params));
     $this->assertEqual($message4, $notificationsManager->_getMessageForUser($user, 'something happen', $params));
 }
コード例 #8
0
 /**
  *        A
  *        |-- B
  *        | +-+-----+
  *        | | `-- D |
  *        | +-------+ \
  *        `-- C        |
  *             <-------²
  *
  *        D is moved from B to C
  *
  * @param dr   d is readable 0|1
  * @param br   b is readable 0|1
  * @param cr   c is readable 0|1
  * @param lb   b is listened 0|1
  * @param lc   c is listened 0|1
  * @param ld   d is listened 0|1
  * @param res  expected result: item | from | from_wo_c | to | to_wo_b | none
  * @param msg  message to display if the test fail
  */
 function _runTest($dr, $br, $cr, $lb, $lc, $ld, $res, $msg = "%s")
 {
     $msg = "[{$dr}, {$br}, {$cr}, {$lb}, {$lc}, {$ld}, {$res}] " . $msg;
     $a =& new MockDocman_Item();
     $a->setReturnValue('getId', 'a');
     $a->setReturnValue('getParentId', 0);
     $b =& new MockDocman_Item();
     $b->setReturnValue('getId', 'b');
     $b->setReturnValue('getParentId', 'a');
     $c =& new MockDocman_Item();
     $c->setReturnValue('getId', 'c');
     $c->setReturnValue('getParentId', 'a');
     $d =& new MockDocman_Item();
     $d->setReturnValue('getId', 'd');
     $d->setReturnValue('getParentId', 'b');
     $group_id = 101;
     $project = aMockProject()->withId($group_id)->build();
     $user = mock('PFUser');
     $user->setReturnValue('getId', 'user');
     $listener = mock('PFUser');
     $listener->setReturnValue('getId', 'listener');
     $feedback =& new Feedback();
     $item_factory =& new MockDocman_ItemFactory();
     $item_factory->setReturnReference('getItemFromDb', $a, array($a->getId()));
     $item_factory->setReturnReference('getItemFromDb', $b, array($b->getId()));
     $item_factory->setReturnReference('getItemFromDb', $c, array($c->getId()));
     $item_factory->setReturnReference('getItemFromDb', $d, array($d->getId()));
     $user_manager =& new MockUserManager();
     $user_manager->setReturnReference('getUserById', $user, array($user->getId()));
     $user_manager->setReturnReference('getUserById', $listener, array($listener->getId()));
     $permissions_manager =& new MockDocman_PermissionsManager();
     $permissions_manager->setReturnValue('userCanRead', true, array(&$listener, $a->getId()));
     $permissions_manager->setReturnValue('userCanAccess', true, array(&$listener, $a->getId()));
     $permissions_manager->setReturnValue('userCanRead', $cr, array(&$listener, $c->getId()));
     $permissions_manager->setReturnValue('userCanAccess', $cr, array(&$listener, $c->getId()));
     $permissions_manager->setReturnValue('userCanRead', $br, array(&$listener, $b->getId()));
     $permissions_manager->setReturnValue('userCanAccess', $br, array(&$listener, $b->getId()));
     $permissions_manager->setReturnValue('userCanRead', $dr, array(&$listener, $d->getId()));
     $permissions_manager->setReturnValue('userCanAccess', $dr && $br, array(&$listener, $d->getId()));
     $dar_d =& new MockDataAccessResult();
     if ($ld) {
         $dar_d->setReturnValueAt(0, 'valid', true);
         $dar_d->setReturnValueAt(1, 'valid', false);
         $dar_d->setReturnValue('current', array('user_id' => $listener->getId(), 'object_id' => $d->getId()));
     } else {
         $dar_d->setReturnValue('valid', false);
     }
     $dar_c =& new MockDataAccessResult();
     if ($lc) {
         $dar_c->setReturnValueAt(0, 'valid', true);
         $dar_c->setReturnValueAt(1, 'valid', false);
         $dar_c->setReturnValue('current', array('user_id' => $listener->getId(), 'object_id' => $c->getId()));
     } else {
         $dar_c->setReturnValue('valid', false);
     }
     $dar_b =& new MockDataAccessResult();
     if ($lb) {
         $dar_b->setReturnValueAt(0, 'valid', true);
         $dar_b->setReturnValueAt(1, 'valid', false);
         $dar_b->setReturnValue('current', array('user_id' => $listener->getId(), 'object_id' => $b->getId()));
     } else {
         $dar_b->setReturnValue('valid', false);
     }
     $docman_path =& new MockDocman_Path();
     $dao =& new MockNotificationsDao();
     $dao->setReturnValue('searchUserIdByObjectIdAndType', $dar_d, array($d->getId(), 'plugin_docman'));
     $dao->setReturnValue('searchUserIdByObjectIdAndType', $dar_c, array($c->getId(), 'plugin_docman'));
     $dao->setReturnValue('searchUserIdByObjectIdAndType', $dar_b, array($b->getId(), 'plugin_docman'));
     $dnmm =& new Docman_NotificationsManager_MoveTestVersion();
     $dnmm->setReturnReference('_groupGetObject', $project);
     $dnmm->setReturnReference('_getItemFactory', $item_factory);
     $dnmm->setReturnReference('_getUserManager', $user_manager);
     $dnmm->setReturnReference('_getPermissionsManager', $permissions_manager);
     $dnmm->setReturnReference('_getDocmanPath', $docman_path);
     $dnmm->setReturnReference('_getDao', $dao);
     if ($res != 'none') {
         $dnmm->expectOnce('_buildMessage', false, $msg);
     } else {
         $dnmm->expectNever('_buildMessage', $msg);
     }
     $mail_builder = new MailBuilder(TemplateRendererFactory::build());
     //C'est parti
     $dnmm->__construct($project, 'my_url', $feedback, $mail_builder);
     $dnmm->somethingHappen('plugin_docman_event_move', array('group_id' => $group_id, 'item' => &$d, 'parent' => &$c, 'user' => &$user));
 }
コード例 #9
0
 public function itReturnsOnlyOneServerEvenWhenThereAreSeveral()
 {
     $parent = aMockProject()->withId(369)->build();
     $child = aMockProject()->withId(933)->build();
     stub($this->project_manager)->getChildProjects(369)->returns(array($child));
     stub($this->project_manager)->getChildProjects()->returns(array());
     stub($this->dao)->searchAllByProjectId(369)->returnsDar($this->dar_1);
     stub($this->dao)->searchAllByProjectId(933)->returnsDar($this->dar_1);
     $servers = $this->factory->getServersForProject($parent);
     $this->assertCount($servers, 1);
 }