function testCreateNewChangesetWithoutNotification() { $email = null; //not anonymous user $comment = ''; $this->response->expectCallCount('addFeedback', 1); $comment_dao = new MockTracker_Artifact_Changeset_CommentDao(); $comment_dao->expectCallCount('createNewVersion', 1); $dao = new MockTracker_Artifact_ChangesetDao(); $dao->setReturnValueAt(0, 'create', 1001, array(66, 1234, null)); $dao->setReturnValueAt(1, 'create', 1002, array(66, 1234, null)); $dao->expectCallCount('create', 1); $user = new MockUser(); $user->setReturnValue('getId', 1234); $user->setReturnValue('isAnonymous', false); $tracker = new MockTracker(); $tracker->setReturnValue('getGroupId', 666); $tracker->setReturnValue('getItemName', 'foobar'); $factory = new MockTracker_FormElementFactory(); $rules_manager = new MockTracker_RulesManager(); $rules_manager->setReturnValue('validate', true); $tracker->setReturnReference('getRulesManager', $rules_manager); $field1 = new MockTracker_FormElement_Field(); $field1->setReturnValue('getId', 101); $field1->setReturnValue('isValid', true); $field1->setReturnValue('userCanUpdate', true); $field1->expectOnce('saveNewChangeset'); $field2 = new MockTracker_FormElement_Field(); $field2->setReturnValue('getId', 102); $field2->setReturnValue('isValid', true, array('*', '123')); $field2->setReturnValue('isValid', false, array('*', '456')); $field2->setReturnValue('userCanUpdate', true); $field2->expectOnce('saveNewChangeset'); $field3 = new MockTracker_FormElement_Field(); $field3->setReturnValue('getId', 103); $field3->setReturnValue('isValid', true); $field3->expectOnce('saveNewChangeset'); $field3->setReturnValue('userCanUpdate', true); $factory->setReturnValue('getUsedFields', array($field1, $field2, $field3)); $new_changeset = new MockTracker_Artifact_Changeset(); $new_changeset->expectNever('notify', array()); $changeset = new MockTracker_Artifact_Changeset(); $changeset->setReturnValue('hasChanges', true); $changeset_value1 = new MockTracker_Artifact_ChangesetValue(); $changeset_value2 = new MockTracker_Artifact_ChangesetValue(); $changeset_value3 = new MockTracker_Artifact_ChangesetValue(); $changeset->setReturnReference('getValue', $changeset_value1, array($field1)); $changeset->setReturnReference('getValue', $changeset_value2, array($field2)); $changeset->setReturnReference('getValue', $changeset_value3, array($field3)); $reference_manager = new MockReferenceManager(); $reference_manager->expect('extractCrossRef', array($comment, 66, 'plugin_tracker_artifact', 666, $user->getId(), 'foobar')); $art_factory = new MockTracker_ArtifactFactory(); $artifact = new Tracker_ArtifactTestVersion(); $artifact->setReturnReference('getChangesetDao', $dao); $artifact->setReturnReference('getChangesetCommentDao', $comment_dao); $artifact->setReturnReference('getFormElementFactory', $factory); $artifact->setReturnReference('getTracker', $tracker); $artifact->setReturnValue('getId', 66); $artifact->setReturnReference('getLastChangeset', $changeset); $artifact->setReturnReference('getChangeset', $new_changeset); $artifact->setReturnReference('getReferenceManager', $reference_manager); $artifact->setReturnReference('getArtifactFactory', $art_factory); $art_factory->expectOnce('save'); $workflow = new MockWorkflow(); $workflow->expectOnce('before'); $artifact->setReturnValue('getWorkflow', $workflow); // Valid $fields_data = array(102 => '123'); $artifact->createNewChangeset($fields_data, $comment, $user, $email, false); // Not valid $fields_data = array(102 => '456'); $artifact->createNewChangeset($fields_data, $comment, $user, $email, false); }
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§ion=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§ion=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§ion=notifications&id=1"; $message4 = "notif_something_happen\n\n--------------------------------------------------------------------\nnotif_footer_message\nnotif_footer_message_link\nhttp://www.example.com/plugins/docman/&action=details§ion=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)); }
function _PageList_Column_top3recs($params) { global $request; $active_user = $request->getUser(); if (is_string($active_user)) { //FIXME: try to find the bug at test.php which sets request->_user and ->_group trigger_error("request->getUser => string: {$active_user}", E_USER_WARNING); $active_user = new MockUser($active_user, true); } // No, I don't know exactly why, but this needs to be a reference for // the memoization in pearson_similarity and mean_rating to work $this->_active_ratings_user = new RatingsUser($active_user->getId()); $this->_PageList_Column($params[0], $params[1], $params[2]); if (!empty($params[3])) { $this->_pagelist =& $params[3]; $this->_dimension = $this->_pagelist->getOption('dimension'); $this->_users = $this->_pagelist->getOption('users'); } }