function testStripLightForibdden() { $p = new Codendi_HTMLPurifierTestVersion2($this); $rm = new MockReferenceManager(); $val = 'bugtest #123'; $rm->setReturnValue('insertReferences', $val); $p->setReturnValue('getReferenceManager', $rm); $this->assertEqual('', $p->purify('<script>alert(1);</script>', CODENDI_PURIFIER_LIGHT)); $this->assertEqual('Bolded', $p->purify('<s>Bolded</s>', CODENDI_PURIFIER_LIGHT)); $this->assertEqual($val, $p->purify('bugtest #123', CODENDI_PURIFIER_LIGHT, 102)); $this->assertEqual('', $p->purify('<form name="test" method="post" action="?"><input type="submit" /></form>', CODENDI_PURIFIER_LIGHT)); $this->assertEqual('<a href="ftp://test.com">ftp://test.com</a>', $p->purify('ftp://test.com', CODENDI_PURIFIER_LIGHT)); $this->anchorJsInjection(CODENDI_PURIFIER_LIGHT); }
function testCreateNewChangesetWithoutNotification() { $email = null; //not anonymous user $comment = ''; $this->response->expectCallCount('addFeedback', 0); $comment_dao = new MockTracker_Artifact_Changeset_CommentDao(); stub($comment_dao)->createNewVersion()->returns(true); $comment_dao->expectCallCount('createNewVersion', 1); $dao = new MockTracker_Artifact_ChangesetDao(); $dao->setReturnValueAt(0, 'create', 1001, array(66, 1234, null, $_SERVER['REQUEST_TIME'])); $dao->setReturnValueAt(1, 'create', 1002, array(66, 1234, null, $_SERVER['REQUEST_TIME'])); $dao->expectCallCount('create', 1); $user = mock('PFUser'); $user->setReturnValue('getId', 1234); $user->setReturnValue('isAnonymous', false); $tracker = new MockTracker(); $tracker->setReturnValue('getGroupId', 666); $tracker->setReturnValue('getItemName', 'foobar'); $tracker->setReturnValue('getFormElements', array()); $factory = new MockTracker_FormElementFactory(); $field1 = new MockTracker_FormElement_Field(); $field1->setReturnValue('getId', 101); $field1->setReturnValue('isValid', true); $field1->setReturnValue('isValidRegardingRequiredProperty', true); $field1->setReturnValue('userCanUpdate', true); $field1->setReturnValue('saveNewChangeset', 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('isValidRegardingRequiredProperty', true); $field2->setReturnValue('userCanUpdate', true); $field2->setReturnValue('saveNewChangeset', true); $field2->expectOnce('saveNewChangeset'); $field3 = new MockTracker_FormElement_Field(); $field3->setReturnValue('getId', 103); $field3->setReturnValue('isValid', true); $field3->setReturnValue('isValidRegardingRequiredProperty', true); $field3->setReturnValue('saveNewChangeset', true); $field3->expectOnce('saveNewChangeset'); $field3->setReturnValue('userCanUpdate', true); $factory->setReturnValue('getUsedFields', array($field1, $field2, $field3)); $factory->setReturnValue('getAllFormElementsForTracker', array()); $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)); $changeset->setReturnValue('getValues', array()); $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); stub($art_factory)->save()->returns(true); $art_factory->expectOnce('save'); $workflow = new MockWorkflow(); $workflow->expectCallCount('before', 2); $workflow->setReturnValue('validate', true); $artifact->setReturnValue('getWorkflow', $workflow); // Valid $fields_data = array(102 => '123'); $artifact->createNewChangeset($fields_data, $comment, $user, false); // Not valid $fields_data = array(102 => '456'); $this->expectException('Tracker_Exception'); $artifact->createNewChangeset($fields_data, $comment, $user); }
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)); }
/** * Given I have 3 plugin_tracker_artifact references in the template project * - bug * - issue * - task * And 'bug' correspond to 'Bug' tracker * And 'task' correspond to 'Task' tracker * And 'issue' was created by hand by the admin * And 'Bug' tracker is instanciated for new project * And 'Task' tracker is not instanciated for new project * * Then 'issue' reference is created * And 'bug' reference is not created (it's up to tracker creation to create the reference) * And 'task' reference is not created (it's up to tracker creation to create the reference) * */ public function testDuplicateCopyReferences() { $source_project_id = 100; $destinatnion_project_id = 120; $u_group_mapping = array(); $tm = TestHelper::getPartialMock('TrackerManager', array('getTrackerFactory', 'getReferenceManager')); $tf = new MockTrackerFactory(); $tf->expectOnce('duplicate'); $tm->setReturnValue('getTrackerFactory', $tf); $r1 = new Reference(101, 'bug', 'desc', '/plugins/tracker/?aid=$1&group_id=$group_id', 'P', 'plugin_tracker', 'plugin_tracker_artifact', 1, 100); $r2 = new Reference(102, 'issue', 'desc', '/plugins/tracker/?aid=$1&group_id=$group_id', 'P', 'plugin_tracker', 'plugin_tracker_artifact', 1, 100); $r3 = new Reference(103, 'task', 'desc', '/plugins/tracker/?aid=$1&group_id=$group_id', 'P', 'plugin_tracker', 'plugin_tracker_artifact', 1, 100); $rm = new MockReferenceManager(); $rm->expectOnce('getReferencesByGroupId', array($source_project_id)); $rm->setReturnValue('getReferencesByGroupId', array($r1, $r2, $r3)); $tm->setReturnValue('getReferenceManager', $rm); $t1 = new MockTracker(); $t1->setReturnValue('getItemName', 'bug'); $t1->setReturnValue('mustBeInstantiatedForNewProjects', true); $t2 = new MockTracker(); $t2->setReturnValue('getItemName', 'task'); $t2->setReturnValue('mustBeInstantiatedForNewProjects', false); $tf->setReturnValue('getTrackersByGroupId', array($t1, $t2), $source_project_id); $rm->expectOnce('createReference', array($r2)); $tm->duplicate($source_project_id, $destinatnion_project_id, $u_group_mapping); }