function testStoreEventsDoNotOverrideUsers()
 {
     $listeningUsers = new ArrayIterator(array(array('user_id' => 1, 'object_id' => 1), array('user_id' => 2, 'object_id' => 1), array('user_id' => 3, 'object_id' => 1)));
     $user1 = mock('PFUser');
     $user1->setReturnValue('getId', 1);
     $user2 = mock('PFUser');
     $user2->setReturnValue('getId', 2);
     $user3 = mock('PFUser');
     $user3->setReturnValue('getId', 3);
     $um = new MockUserManager();
     $um->setReturnValueAt(0, 'getUserById', $user1);
     $um->setReturnValueAt(1, 'getUserById', $user2);
     $um->setReturnValueAt(2, 'getUserById', $user3);
     $dpm = new MockDocman_PermissionsManager();
     $dpm->setReturnValue('userCanRead', true);
     $dpm->setReturnValue('userCanAccess', true);
     $item = new MockDocman_Item();
     $item->setReturnValue('getId', 1);
     $params = array('item' => $item);
     $nm = new Docman_NotificationsManager_DeleteTestVersion();
     $nm->setReturnValue('_getListeningUsers', $listeningUsers);
     $nm->setReturnValue('_getUserManager', $um);
     $nm->setReturnValue('_getPermissionsManager', $dpm);
     $nm->_listeners = array();
     $nm->_storeEvents(1, 'removed', $params);
     $this->assertEqual($user1, $nm->_listeners[1]['user']);
     $this->assertEqual($user2, $nm->_listeners[2]['user']);
     $this->assertEqual($user3, $nm->_listeners[3]['user']);
 }
 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'));
     $notificationsManager = new Docman_NotificationsManager_TestVersion();
     $notificationsManager->setReturnValue('_getLanguageForUser', $language);
     $notificationsManager->_url = 'http://www.example.com/plugins/docman/';
     $user = new MockUser();
     $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));
 }
 /**
  * Testing when the folder have childrens
  */
 function testGetChildSuccess()
 {
     $webDAVDocmanFolder = new WebDAVDocmanFolderTestVersion3($this);
     $item = new MockDocman_Item();
     $item->setReturnValue('getTitle', 'SomeName');
     $folder = new WebDAVDocmanFolderTestVersion3($this);
     $folder->setReturnValue('getItem', $item);
     $docmanItemFactory = new MockDocman_ItemFactory();
     $docmanItemFactory->setReturnValue('getChildrenFromParent', array($item));
     $utils = new MockWebDAVUtils();
     $docmanPermissionManager = new MockDocman_PermissionsManager();
     $docmanPermissionManager->setReturnValue('userCanAccess', true);
     $utils->setReturnValue('getDocmanPermissionsManager', $docmanPermissionManager);
     $utils->setReturnValue('getDocmanItemFactory', $docmanItemFactory);
     $utils->setReturnValue('retrieveName', 'SomeName');
     $webDAVDocmanFolder->setReturnValue('getUtils', $utils);
     $webDAVDocmanFolder->setReturnValue('getWebDAVDocmanFolder', $folder);
     $this->assertEqual($webDAVDocmanFolder->getChild('SomeName'), $folder);
 }
Beispiel #4
0
 function testMoveDocmanNoWriteOnDestination()
 {
     $tree = new TestTreeTestVersion();
     $utils = new MockWebDAVUtils();
     $utils->setReturnValue('isWriteEnabled', true);
     $tree->setReturnValue('getUtils', $utils);
     $destination = new TestFolder();
     $tree->setReturnValue('getNodeForPath', $destination, array('destination'));
     $source = new TestFolder();
     $tree->setReturnValue('getNodeForPath', $source, array('source'));
     $sourceItem = new MockDocman_Item();
     $sourceItem->setReturnValue('getGroupId', 1);
     $source->setItem($sourceItem);
     $destinationItem = new MockDocman_Item();
     $destinationItem->setReturnValue('getGroupId', 1);
     $destination->setItem($destinationItem);
     $dpm = new MockDocman_PermissionsManager();
     $dpm->setReturnValue('userCanAccess', true);
     $dpm->setReturnValue('userCanWrite', false);
     $utils->setReturnValue('getDocmanPermissionsManager', $dpm);
     $dpm->expectNever('currentUserCanWriteSubItems');
     $this->expectException('Sabre_DAV_Exception_MethodNotAllowed');
     $tree->move('source', 'destination/item');
 }
 function testItemWithoutValueButWatermarkedValueDefined()
 {
     // No love for item
     $loveFactory = new MockDocman_MetadataListOfValuesElementFactory($this);
     // empty array because no value found
     $ai = new MockArrayIterator($this);
     $ai->setReturnValue('rewind', true);
     $ai->setReturnValue('valid', false);
     $loveFactory->setReturnValue('getLoveValuesForItem', $ai);
     //
     // But watermarked values is defined
     $dwmv = new MockDocmanWatermark_MetadataValue($this);
     $dwmv->setReturnValue('getWatermark', 1);
     $dwmv->setReturnValue('getValueId', 107);
     $ai = new MockArrayIterator($this);
     $ai->setReturnValue('rewind', true);
     $ai->setReturnValueAt(0, 'valid', true);
     $ai->setReturnValue('current', $dwmv);
     $ai->setReturnValueAt(1, 'valid', false);
     $dwmvf = new MockDocmanWatermark_MetadataValueFactory($this);
     $dwmvf->setReturnValue('getMetadataValuesIterator', $ai);
     // Setup class
     $dwmf = new DocmanWatermark_MetadataFactoryTestMetadataValueRetrieval($this);
     $dwmf->setReturnValue('getDocman_MetadataListOfValuesElementFactory', $loveFactory);
     $dwmf->setReturnValue('getDocmanWatermark_MetadataValueFactory', $dwmvf);
     // Parameters & Run
     $item = new MockDocman_Item($this);
     $item->setReturnValue('getId', 1789);
     $md = new MockDocman_Metadata($this);
     $md->setReturnValue('getId', 1871);
     $this->assertNull($dwmf->_getWatermarkingValues($item, $md));
 }