+ [misc] Add unit tests for searchTao::checkProjectPriv() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-11-07 10:30:58 +08:00
co-authored by Claude
parent d74c86c2af
commit 0d80233cd4
2 changed files with 86 additions and 0 deletions
+15
View File
@@ -156,4 +156,19 @@ class searchTaoTest extends baseTest
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test checkProjectPriv method.
*
* @param array $results
* @param array $objectIdList
* @access public
* @return array
*/
public function checkProjectPrivTest(array $results, array $objectIdList): array
{
$result = $this->invokeArgs('checkProjectPriv', [$results, $objectIdList]);
if(dao::isError()) return dao::getError();
return $result;
}
}
+71
View File
@@ -0,0 +1,71 @@
#!/usr/bin/env php
<?php
/**
title=测试 searchTao::checkProjectPriv();
timeout=0
cid=0
- 执行searchTest模块的checkProjectPrivTest方法,参数是$results, $objectIdList @3
- 执行searchTest模块的checkProjectPrivTest方法,参数是$results, $objectIdList @2
- 执行searchTest模块的checkProjectPrivTest方法,参数是$results, $objectIdList @0
- 执行searchTest模块的checkProjectPrivTest方法,参数是$results, $objectIdList @0
- 执行searchTest模块的checkProjectPrivTest方法,参数是$results, $objectIdList @2
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/tao.class.php';
global $tester, $app;
su('admin');
$searchTest = new searchTaoTest();
// 准备测试数据
$result1 = new stdclass();
$result1->id = 1;
$result1->objectType = 'project';
$result1->objectID = 101;
$result2 = new stdclass();
$result2->id = 2;
$result2->objectType = 'project';
$result2->objectID = 102;
$result3 = new stdclass();
$result3->id = 3;
$result3->objectType = 'project';
$result3->objectID = 103;
// 测试步骤1: 用户有权限访问所有项目
$results = array(1 => $result1, 2 => $result2, 3 => $result3);
$objectIdList = array(101 => 1, 102 => 2, 103 => 3);
$app->user->view = new stdclass();
$app->user->view->projects = '101,102,103';
r(count($searchTest->checkProjectPrivTest($results, $objectIdList))) && p() && e('3');
// 测试步骤2: 用户有权限访问部分项目(项目1和2)
$results = array(1 => $result1, 2 => $result2, 3 => $result3);
$objectIdList = array(101 => 1, 102 => 2, 103 => 3);
$app->user->view->projects = '101,102';
r(count($searchTest->checkProjectPrivTest($results, $objectIdList))) && p() && e('2');
// 测试步骤3: 用户没有任何项目权限
$results = array(1 => $result1, 2 => $result2, 3 => $result3);
$objectIdList = array(101 => 1, 102 => 2, 103 => 3);
$app->user->view->projects = '';
r(count($searchTest->checkProjectPrivTest($results, $objectIdList))) && p() && e('0');
// 测试步骤4: 空的结果数组
$results = array();
$objectIdList = array(101 => 1, 102 => 2);
$app->user->view->projects = '101,102';
r(count($searchTest->checkProjectPrivTest($results, $objectIdList))) && p() && e('0');
// 测试步骤5: 空的对象ID列表
$results = array(1 => $result1, 2 => $result2);
$objectIdList = array();
$app->user->view->projects = '101,102';
r(count($searchTest->checkProjectPrivTest($results, $objectIdList))) && p() && e('2');