diff --git a/module/search/test/lib/tao.class.php b/module/search/test/lib/tao.class.php index 22ef88c066..c59f78da95 100644 --- a/module/search/test/lib/tao.class.php +++ b/module/search/test/lib/tao.class.php @@ -171,4 +171,23 @@ class searchTaoTest extends baseTest if(dao::isError()) return dao::getError(); return $result; } + + /** + * Test checkRelatedObjectPriv method. + * + * @param string $objectType + * @param string $table + * @param array $results + * @param array $objectIdList + * @param string $products + * @param string $executions + * @access public + * @return array + */ + public function checkRelatedObjectPrivTest(string $objectType, string $table, array $results, array $objectIdList, string $products, string $executions): array + { + $result = $this->invokeArgs('checkRelatedObjectPriv', [$objectType, $table, $results, $objectIdList, $products, $executions]); + if(dao::isError()) return dao::getError(); + return $result; + } } diff --git a/module/search/test/tao/checkrelatedobjectpriv.php b/module/search/test/tao/checkrelatedobjectpriv.php new file mode 100755 index 0000000000..87114e7792 --- /dev/null +++ b/module/search/test/tao/checkrelatedobjectpriv.php @@ -0,0 +1,91 @@ +#!/usr/bin/env php +id->range('1-10'); +$bug->title->range('Bug 1,Bug 2,Bug 3,Bug 4,Bug 5,Bug 6,Bug 7,Bug 8,Bug 9,Bug 10'); +$bug->product->range('1-10'); +$bug->gen(10); + +$task = zenData('task'); +$task->id->range('1-10'); +$task->name->range('Task 1,Task 2,Task 3,Task 4,Task 5,Task 6,Task 7,Task 8,Task 9,Task 10'); +$task->execution->range('1-10'); +$task->gen(10); + +$effort = zenData('effort'); +$effort->id->range('1-5'); +$effort->product->range(',1,,2,3,'); +$effort->execution->range('1,2,3,4,5'); +$effort->gen(5); + +$story = zenData('story'); +$story->id->range('1-10'); +$story->title->range('Story 1,Story 2,Story 3,Story 4,Story 5,Story 6,Story 7,Story 8,Story 9,Story 10'); +$story->product->range('1-10'); +$story->gen(10); + +su('admin'); + +$searchTest = new searchTaoTest(); + +$results1 = array(1 => (object)array('id' => 1, 'objectID' => 1, 'objectType' => 'bug', 'title' => 'Test Bug 1')); +$objectIdList1 = array(1 => 1); +$products1 = '1,2,3,4,5'; +$executions1 = '1,2,3,4,5'; +r($searchTest->checkRelatedObjectPrivTest('bug', TABLE_BUG, $results1, $objectIdList1, $products1, $executions1)) && p('1:objectID') && e('1'); + +$results2 = array(1 => (object)array('id' => 1, 'objectID' => 2, 'objectType' => 'bug', 'title' => 'Test Bug 2')); +$objectIdList2 = array(2 => 1); +$products2 = '1,3,4,5'; +$executions2 = '1,2,3,4,5'; +r(count($searchTest->checkRelatedObjectPrivTest('bug', TABLE_BUG, $results2, $objectIdList2, $products2, $executions2))) && p() && e('0'); + +$results3 = array(1 => (object)array('id' => 1, 'objectID' => 1, 'objectType' => 'task', 'title' => 'Test Task 1')); +$objectIdList3 = array(1 => 1); +$products3 = '1,2,3,4,5'; +$executions3 = '1,2,3,4,5'; +r($searchTest->checkRelatedObjectPrivTest('task', TABLE_TASK, $results3, $objectIdList3, $products3, $executions3)) && p('1:objectID') && e('1'); + +$results4 = array(1 => (object)array('id' => 1, 'objectID' => 3, 'objectType' => 'task', 'title' => 'Test Task 3')); +$objectIdList4 = array(3 => 1); +$products4 = '1,2,3,4,5'; +$executions4 = '1,2,4,5'; +r(count($searchTest->checkRelatedObjectPrivTest('task', TABLE_TASK, $results4, $objectIdList4, $products4, $executions4))) && p() && e('0'); + +$results5 = array(1 => (object)array('id' => 1, 'objectID' => 1, 'objectType' => 'effort', 'title' => 'Test Effort 1')); +$objectIdList5 = array(1 => 1); +$products5 = '1,2,3,4,5'; +$executions5 = '1,2,3,4,5'; +r($searchTest->checkRelatedObjectPrivTest('effort', TABLE_EFFORT, $results5, $objectIdList5, $products5, $executions5)) && p('1:objectID') && e('1'); + +$results6 = array(); +$objectIdList6 = array(); +$products6 = '1,2,3,4,5'; +$executions6 = '1,2,3,4,5'; +r(count($searchTest->checkRelatedObjectPrivTest('bug', TABLE_BUG, $results6, $objectIdList6, $products6, $executions6))) && p() && e('0'); + +$results7 = array(1 => (object)array('id' => 1, 'objectID' => 1, 'objectType' => 'project', 'title' => 'Test Project 1')); +$objectIdList7 = array(1 => 1); +$products7 = '1,2,3,4,5'; +$executions7 = '1,2,3,4,5'; +r($searchTest->checkRelatedObjectPrivTest('project', TABLE_PROJECT, $results7, $objectIdList7, $products7, $executions7)) && p('1:objectID') && e('1'); \ No newline at end of file