* Add user auto test.

This commit is contained in:
sgm0422
2022-03-17 17:30:47 +08:00
parent 44395a2ef5
commit ab5db10f05
12 changed files with 446 additions and 8 deletions
+159
View File
@@ -710,4 +710,163 @@ class userTest
if(dao::isError()) return dao::getError();
return $members;
}
/**
* Test get product members.
*
* @param string $account
* @param bool $force
* @access public
* @return void
*/
public function grantUserViewTest($account = '', $acls = array(), $projects = '')
{
$userView = $this->objectModel->grantUserView($account, $acls, $projects);
if(dao::isError()) return dao::getError();
return $userView;
}
/**
* Test update program view.
*
* @param array $programIdList
* @param array $users
* @access public
* @return void
*/
public function updateProgramViewTest($programIdList = array(), $users = array())
{
$this->objectModel->updateProgramView($programIdList, $users);
if(dao::isError()) return dao::getError();
return $this->objectModel->grantUserView(current($users));
}
/**
* Test check program priv.
*
* @param object $program
* @param string $account
* @param array $stakeholders
* @param array $whiteList
* @access public
* @return void
*/
public function checkProgramPrivTest($program, $account, $stakeholders, $whiteList)
{
return $this->objectModel->checkProgramPriv($program, $account, $stakeholders, $whiteList);
}
/**
* Test check project priv.
*
* @param object $project
* @param string $account
* @param array $stakeholders
* @param array $teams
* @param array $whiteList
* @access public
* @return void
*/
public function checkProjectPrivTest($project, $account, $stakeholders, $teams, $whiteList)
{
return $this->objectModel->checkProjectPriv($project, $account, $stakeholders, $teams, $whiteList);
}
/**
* Test check sprint priv.
*
* @param object $sprint
* @param string $account
* @param array $stakeholders
* @param array $teams
* @param array $whiteList
* @access public
* @return void
*/
public function checkSprintPrivTest($sprint, $account, $stakeholders, $teams, $whiteList)
{
return $this->objectModel->checkSprintPriv($sprint, $account, $stakeholders, $teams, $whiteList);
}
/**
* Test check product priv.
*
* @param object $program
* @param string $account
* @param array $groups
* @param array $teams
* @param array $stakeholders
* @param array $whiteList
* @access public
* @return void
*/
public function checkProductPrivTest($product, $account, $groups, $teams, $stakeholders, $whiteList)
{
return $this->objectModel->checkProductPriv($product, $account, $groups, $teams, $stakeholders, $whiteList);
}
/**
* Test get project authed users.
*
* @param int $projectID
* @param array $stakeholders
* @param array $teams
* @param array $whiteList
* @access public
* @return void
*/
public function getProjectAuthedUsersTest($projectID, $stakeholders, $teams, $whiteList)
{
global $tester;
$project = $tester->loadModel('project')->getByID($projectID);
return $this->objectModel->getProjectAuthedUsers($project, $stakeholders, $teams, $whiteList);
}
/**
* Test get program authed users.
*
* @param int $projectID
* @param array $stakeholders
* @param array $whiteList
* @access public
* @return void
*/
public function getProgramAuthedUsersTest($programID, $stakeholders, $whiteList)
{
global $tester;
$program = $tester->loadModel('program')->getByID($programID);
return $this->objectModel->getProgramAuthedUsers($program, $stakeholders, $whiteList);
}
/**
* Test get product view list users.
*
* @param int $productID
* @param array $teams
* @param array $stakeholders
* @param array $whiteList
* @access public
* @return void
*/
public function getProductViewListUsersTest($productID, $teams, $stakeholders, $whiteList)
{
global $tester;
$product = $tester->loadModel('product')->getByID($productID);
return $this->objectModel->getProductViewListUsers($product, $teams, $stakeholders, $whiteList);
}
/**
* Test get product view list users.
*
* @param int $productID
* @param string $type
* @param string $params
* @param array $usersToAppended
* @access public
* @return void
*/
public function getTeamMemberPairsTest($objectID, $type, $params, $usersToAppended)
{
return $this->objectModel->getTeamMemberPairs($objectID, $type, $params, $usersToAppended);
}
}
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/user.class.php';
su('admin');
/**
title=userModel->checkProductPrivTest();
cid=1
pid=1
*/
$user = new userTest();
$product = new stdclass();
$product->id = 1;
$product->name = '测试产品';
$product->PO = 'test2';
$product->openedBy = 'pm1';
$stakeholders['user10'] = 'user10';
$whiteList['user60'] = 'user60';
r($user->checkProductPrivTest('', 'admin')) && p() && e('1'); //传入admin,判断admin用户是否有权限
r($user->checkProductPrivTest($product, 'test3')) && p() && e('0'); //传入产品、用户名,判断test3用户是否对此产品有权限
r($user->checkProductPrivTest($product, 'test2')) && p() && e('1'); //传入产品、用户名,判断test2用户是否对此产品有权限
r($user->checkProductPrivTest($product, 'user10', array(), array(), $stakeholders)) && p() && e('1'); //传入产品、用户名、干系人、白名单,判断user10用户是否对此产品有权限
r($user->checkProductPrivTest($product, 'user60', array(), array(), $stakeholders, array(), $whiteList)) && p() && e('1'); //传入产品、用户名、干系人、白名单,判断user60用户是否对此产品有权限
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/user.class.php';
su('admin');
/**
title=userModel->checkProgramPrivTest();
cid=1
pid=1
*/
$user = new userTest();
$program = new stdclass();
$program->id = 1;
$program->name = '测试项目集';
$program->PM = 'test2';
$program->openedBy = 'pm1';
$stakeholders['user10'] = 'user10';
$whiteList['user60'] = 'user60';
r($user->checkProgramPrivTest('', 'admin')) && p() && e('1'); //传入admin,判断admin用户是否有权限
r($user->checkProgramPrivTest($program, 'test3')) && p() && e('0'); //传入项目集、用户名,判断test3用户是否对此项目集有权限
r($user->checkProgramPrivTest($program, 'test2')) && p() && e('1'); //传入项目集、用户名,判断test2用户是否对此项目集有权限
r($user->checkProgramPrivTest($program, 'user10', $stakeholders, array())) && p() && e('1'); //传入项目集、用户名、干系人、白名单,判断user10用户是否对此项目集有权限
r($user->checkProgramPrivTest($program, 'user60', $stakeholders, $whiteList)) && p() && e('1'); //传入项目集、用户名、干系人、白名单,判断user60用户是否对此项目集有权限
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/user.class.php';
su('admin');
/**
title=userModel->checkProjectPrivTest();
cid=1
pid=1
*/
$user = new userTest();
$project = new stdclass();
$project->id = 10;
$project->name = '测试项目';
$project->PM = 'test2';
$project->openedBy = 'pm1';
$stakeholders['user10'] = 'user10';
$whiteList['user60'] = 'user60';
r($user->checkProjectPrivTest('', 'admin')) && p() && e('1'); //传入admin,判断admin用户是否有权限
r($user->checkProjectPrivTest($project, 'test3')) && p() && e('0'); //传入项目、用户名,判断test3用户是否对此项目有权限
r($user->checkProjectPrivTest($project, 'test2')) && p() && e('1'); //传入项目、用户名,判断test2用户是否对此项目有权限
r($user->checkProjectPrivTest($project, 'user10', $stakeholders, array(), array())) && p() && e('1'); //传入项目、用户名、干系人、白名单,判断user10用户是否对此项目有权限
r($user->checkProjectPrivTest($project, 'user60', $stakeholders, array(), $whiteList)) && p() && e('1'); //传入项目、用户名、干系人、白名单,判断user60用户是否对此项目有权限
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/user.class.php';
su('admin');
/**
title=userModel->checkSprintPrivTest();
cid=1
pid=1
*/
$user = new userTest();
$sprint = new stdclass();
$sprint->id = 1;
$sprint->name = '测试项目集';
$sprint->PM = 'test2';
$sprint->openedBy = 'pm1';
$stakeholders['user10'] = 'user10';
$whiteList['user60'] = 'user60';
r($user->checkSprintPrivTest('', 'admin')) && p() && e('1'); //传入admin,判断admin用户是否有权限
r($user->checkSprintPrivTest($sprint, 'test3')) && p() && e('0'); //传入执行、用户名,判断test3用户是否对此执行有权限
r($user->checkSprintPrivTest($sprint, 'test2')) && p() && e('1'); //传入执行、用户名,判断test2用户是否对此执行有权限
r($user->checkSprintPrivTest($sprint, 'user10', $stakeholders, array(), array())) && p() && e('1'); //传入执行、用户名、干系人、白名单,判断user10用户是否对此执行有权限
r($user->checkSprintPrivTest($sprint, 'user60', $stakeholders, array(), $whiteList)) && p() && e('1'); //传入执行、用户名、干系人、白名单,判断user60用户是否对此执行有权限
+14 -8
View File
@@ -19,13 +19,19 @@ pid=1
$user = new userTest();
$adminViews = $user->computeUserViewTest('admin', true);
$adminProjects = substr($adminViews->projects, 0, 5);
$adminViews = $user->computeUserViewTest('admin');
$adminPrograms = substr($adminViews->programs, 0, 5);
$adminProducts = substr($adminViews->products, 0, 5);
r($adminProjects) && p() && e(',1,3,'); //获取admin账户可见的前两个项目ID
r($adminProducts) && p() && e(',1,2,'); //获取admin账户可见的前两个产品ID
r($user->computeUserViewTest('user10')) && p('products') && e('99'); //获取user10账户可见的产品ID
r($user->computeUserViewTest('test2')) && p('projects') && e(''); //获取test2账户可见的项目ID
r($user->computeUserViewTest(null)) && p('account') && e('admin'); //用户名传null,则获取当前登录账户的views
system("./ztest init");
$computedAdminViews = $user->computeUserViewTest('admin', true);
$computedAdminPrograms = substr($computedAdminViews->programs, 0, 3);
$computedAdminProducts = substr($computedAdminViews->products, 0, 5);
r($adminPrograms) && p() && e(',1,2,'); //获取强制计算前admin账户可见的前两个项目集ID
r($adminProducts) && p() && e(',1,2,'); //获取强制计算前admin账户可见的前两个产品ID
r($computedAdminPrograms) && p() && e('5,6'); //获取强制计算前admin账户可见的前两个项目集ID
r($computedAdminProducts) && p() && e(',11,12,'); //获取强制计算前admin账户可见的前两个产品ID
r($user->computeUserViewTest('user10')) && p('products') && e('99'); //获取user10账户可见的产品ID
r($user->computeUserViewTest('test2')) && p('projects') && e(',12'); //获取test2账户可见的项目ID
r($user->computeUserViewTest(null)) && p('account') && e('admin'); //用户名传null,则获取当前登录账户的views
system("./ztest init");
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/user.class.php';
su('admin');
/**
title=userModel->getProductViewListUsersTest();
cid=1
pid=1
*/
$user = new userTest();
$stakeholders['test9'] = 'test9';
$stakeholders['test10'] = 'test10';
$teams['pm7'] = 'pm7';
$teams['pm8'] = 'pm8';
$whiteList['user35'] = 'user35';
$whiteList['user35'] = 'user35';
$whiteList['astaw'] = 'astaw';
r(count($user->getProductViewListUsersTest(1, $stakeholders, $teams, $whiteList))) && p() && e('11'); //获取对ID为1的产品有权限的用户
r($user->getProductViewListUsersTest(1, $stakeholders, $teams, $whiteList)) && p('test9') && e('test9'); //获取对ID为1的产品有权限的用户
r($user->getProductViewListUsersTest(1, $stakeholders, $teams, $whiteList)) && p('admin') && e('admin'); //获取对ID为1的产品有权限的用户
r($user->getProductViewListUsersTest(2, $stakeholders, $teams, $whiteList)) && p('astaw') && e('astaw'); //获取对ID为2的产品有权限的用户
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/user.class.php';
su('admin');
/**
title=userModel->getProgramAuthedUsersTest();
cid=1
pid=1
*/
$user = new userTest();
$stakeholders['test9'] = 'test9';
$stakeholders['test10'] = 'test10';
$whiteList['user35'] = 'user35';
$whiteList['user35'] = 'user35';
$whiteList['astaw'] = 'astaw';
r(count($user->getProgramAuthedUsersTest(1, $stakeholders, $whiteList))) && p() && e('6'); //获取对ID为1的项目集有权限的用户数量
r($user->getProgramAuthedUsersTest(1, $stakeholders, $whiteList)) && p('test9') && e('test9'); //获取对ID为1的项目集有权限的用户
r($user->getProgramAuthedUsersTest(1, $stakeholders, $whiteList)) && p('admin') && e('admin'); //获取对ID为1的项目集有权限的用户
r($user->getProgramAuthedUsersTest(2, $stakeholders, $whiteList)) && p('astaw') && e('astaw'); //获取对ID为2的项目集有权限的用户
+28
View File
@@ -0,0 +1,28 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/user.class.php';
su('admin');
/**
title=userModel->getProjectAuthedUsersTest();
cid=1
pid=1
*/
$user = new userTest();
$stakeholders['test9'] = 'test9';
$stakeholders['test10'] = 'test10';
$teams['pm7'] = 'pm7';
$teams['pm8'] = 'pm8';
$whiteList['user35'] = 'user35';
$whiteList['user35'] = 'user35';
$whiteList['astaw'] = 'astaw';
r($user->getProjectAuthedUsersTest(1, $stakeholders, $teams, $whiteList)) && p('test9') && e('test9'); //获取对ID为1的产品有权限的用户
r($user->getProjectAuthedUsersTest(1, $stakeholders, $teams, $whiteList)) && p('admin') && e('admin'); //获取对ID为1的产品有权限的用户
r($user->getProjectAuthedUsersTest(2, $stakeholders, $teams, $whiteList)) && p('astaw') && e('astaw'); //获取对ID为2的产品有权限的用户
+19
View File
@@ -0,0 +1,19 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/user.class.php';
su('admin');
/**
title=userModel->getTeamMemberPairsTest();
cid=1
pid=1
*/
$user = new userTest();
r(count($user->getTeamMemberPairsTest(11, 'project'))) && p() && e('3'); //获取ID为11的项目的团队成员数量
r(count($user->getTeamMemberPairsTest(11, 'project', '', array('test2')))) && p() && e('4'); //获取ID为11的项目的团队成员数量,追加用户test2
r($user->getTeamMemberPairsTest(110, 'execution')) && p('test1') && e('T:测试1'); //获取ID为110的执行的团队成员成员
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/user.class.php';
su('admin');
/**
title=userModel->grantUserViewTest();
cid=1
pid=1
*/
$user = new userTest();
$adminViews = $user->grantUserViewTest('admin');
$test2Views = $user->grantUserViewTest('test2');
$user10Views = $user->grantUserViewTest('user10');
$nullViews = $user->grantUserViewTest(null);
$adminProjects = substr($adminViews->projects, 0, 5);
$adminProducts = substr($adminViews->products, 0, 5);
$test2Projects = substr($test2Views->projects, 0, 5);
$user10Projects = substr($user10Views->projects, 0, 5);
r($adminProjects) && p() && e('12,13'); //获取admin账户可见的前两个项目的ID
r($adminProducts) && p() && e('11,12'); //获取admin账户可见的前两个产品的ID
r($test2Projects) && p() && e('12,11'); //获取test2账户可见的前两个项目的ID
r($user10Projects) && p() && e('19,11'); //获取user10账户可见的前两个项目的ID
r($nullViews) && p() && e(''); //获取null账户可见的项目、产品等
system("./ztest init");
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/user.class.php';
su('admin');
/**
title=userModel->updateProgramViewTest();
cid=1
pid=1
*/
$user = new userTest();
$programIdList = array('1', '2');
a($user->grantUserViewTest('user10'));
a($user->updateProgramViewTest('', array('user10')));
die;
r() && p() && e(''); //
system("./ztest init");