From ba78719b2df04c683576889c65a12085c7cbe89d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B9=BF=E6=98=8E?= Date: Tue, 15 Mar 2022 16:50:49 +0800 Subject: [PATCH 1/4] * Add auto test. --- test/class/user.class.php | 15 +++++++++++++++ test/model/user/identify.php | 5 +++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/test/class/user.class.php b/test/class/user.class.php index 854110c622..c637953e4d 100644 --- a/test/class/user.class.php +++ b/test/class/user.class.php @@ -427,4 +427,19 @@ class userTest return $user; } + + /** + * Test authorize user. + * + * @param string $account + * @param string $password + * @access public + * @return void + */ + public function authorizeTest($account) + { + $user = $this->objectModel->authorize($account); + + return $user; + } } diff --git a/test/model/user/identify.php b/test/model/user/identify.php index 22a47519e2..151821e18b 100644 --- a/test/model/user/identify.php +++ b/test/model/user/identify.php @@ -13,6 +13,7 @@ pid=1 */ $user = new userTest(); -$user->identifyTest('admin', '78302615c8b79cac8df6d2607f8a83ee'); -system("./ztest init"); +r($user->identifyTest('admin', '78302615c8b79cac8df6d2607f8a83ee')) && p('realname') && e('admin'); //用户名密码皆正确,返回验证登录的用户 +r($user->identifyTest('asdjaf12', '78302615c8b79cac8df6d2607f8a83ee')) && p() && e('0'); //验证一个不存在的用户,返回空 +r($user->identifyTest('', '')) && p() && e('0'); //验证一个不传用户名和密码的用户,返回空 From 3f261d3447dcd83b2475016993aee82a2ca68e7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B9=BF=E6=98=8E?= Date: Tue, 15 Mar 2022 16:51:08 +0800 Subject: [PATCH 2/4] * Add authorize. --- test/model/user/authorize.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 test/model/user/authorize.php diff --git a/test/model/user/authorize.php b/test/model/user/authorize.php new file mode 100644 index 0000000000..943b4f1a56 --- /dev/null +++ b/test/model/user/authorize.php @@ -0,0 +1,21 @@ +#!/usr/bin/env php +authorizeTest(); +cid=1 +pid=1 + +*/ + +$user = new userTest(); +$rights = $user->authorizeTest('test2'); + +r($rights['rights']) && p('action:comment') && e('1'); //获取用户的权限,返回权限列表 +r($rights['rights']) && p('testtask:activate') && e('1'); //获取用户的权限,返回权限列表 +r($user->authorizeTest('sadf!!@#a')) && p('projects') && e(''); //获取不存在的用户的权限,返回空 +r($user->authorizeTest('')) && p('') && e('0'); //获取空用户名的权限,返回空 From 08b1e4f4d34a2b492f8af8c54b03f60febcb5abe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B9=BF=E6=98=8E?= Date: Wed, 16 Mar 2022 08:27:06 +0800 Subject: [PATCH 3/4] * Add auto test. --- test/class/user.class.php | 15 +++++++++++++++ test/model/user/login.php | 25 +++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 test/model/user/login.php diff --git a/test/class/user.class.php b/test/class/user.class.php index c637953e4d..62af64b0c0 100644 --- a/test/class/user.class.php +++ b/test/class/user.class.php @@ -442,4 +442,19 @@ class userTest return $user; } + + /** + * Test login user. + * + * @param string $account + * @param string $password + * @access public + * @return void + */ + public function loginTest($user) + { + $user = $this->objectModel->login($user); + + return $user; + } } diff --git a/test/model/user/login.php b/test/model/user/login.php new file mode 100644 index 0000000000..953ab8b093 --- /dev/null +++ b/test/model/user/login.php @@ -0,0 +1,25 @@ +#!/usr/bin/env php +loginTest(); +cid=1 +pid=1 + +*/ + +$user = new stdclass(); +$user->id = 1; +$user->account = 'admin'; + +$userClass = new userTest(); +$user = $userClass->loginTest($user); + +r($rights['rights']) && p('action:comment') && e('1'); //获取用户的权限,返回权限列表 +r($rights['rights']) && p('testtask:activate') && e('1'); //获取用户的权限,返回权限列表 +r($user->authorizeTest('sadf!!@#a')) && p('projects') && e(''); //获取不存在的用户的权限,返回空 +r($user->authorizeTest('')) && p('') && e('0'); //获取空用户名的权限,返回空 From b9d5745fc7128e8f9020a52371830961657be562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B9=BF=E6=98=8E?= Date: Wed, 16 Mar 2022 15:10:02 +0800 Subject: [PATCH 4/4] * Code for unittest. --- test/class/user.class.php | 195 +++++++++++++++++- test/model/user/getcontactlistbyid.php | 21 ++ test/model/user/getcontactlists.php | 20 ++ test/model/user/getcontactuserpairs.php | 17 ++ test/model/user/getgroups.php | 18 ++ test/model/user/getgroupsbyvisions.php | 19 ++ test/model/user/getlistbyaccount.php | 21 ++ test/model/user/getobjects.php | 26 +++ test/model/user/getparentstageauthedusers.php | 19 ++ test/model/user/login.php | 22 +- 10 files changed, 365 insertions(+), 13 deletions(-) create mode 100644 test/model/user/getcontactlistbyid.php create mode 100644 test/model/user/getcontactlists.php create mode 100644 test/model/user/getcontactuserpairs.php create mode 100644 test/model/user/getgroups.php create mode 100644 test/model/user/getgroupsbyvisions.php create mode 100644 test/model/user/getlistbyaccount.php create mode 100644 test/model/user/getobjects.php create mode 100644 test/model/user/getparentstageauthedusers.php diff --git a/test/class/user.class.php b/test/class/user.class.php index 62af64b0c0..c74010d5b8 100644 --- a/test/class/user.class.php +++ b/test/class/user.class.php @@ -432,7 +432,6 @@ class userTest * Test authorize user. * * @param string $account - * @param string $password * @access public * @return void */ @@ -446,8 +445,7 @@ class userTest /** * Test login user. * - * @param string $account - * @param string $password + * @param object $user * @access public * @return void */ @@ -455,6 +453,195 @@ class userTest { $user = $this->objectModel->login($user); - return $user; + if(dao::isError()) + { + return dao::getError(); + } + else + { + return $user; + } + } + + /** + * Test get groups by user. + * + * @param string $account + * @param string $password + * @access public + * @return void + */ + public function getGroupsTest($account) + { + $groups = $this->objectModel->getGroups($account); + + if(dao::isError()) + { + return dao::getError(); + } + else + { + return $groups; + } + } + + /** + * Test get groups by visions. + * + * @param string $visions + * @access public + * @return void + */ + public function getGroupsByVisionsTest($visions) + { + $groups = $this->objectModel->getGroupsByVisions($visions); + + if(dao::isError()) + { + return dao::getError(); + } + else + { + return $groups; + } + } + + /** + * Test get my objects. + * + * @param string $account + * @param string $type + * @param string $status + * @param string $orderBy + * @access public + * @return void + */ + public function getObjectsTest($account, $type, $status, $orderBy) + { + $myObjects = $this->objectModel->getObjects($account, $type, $status, $orderBy); + + if(dao::isError()) + { + return dao::getError(); + } + else + { + return $myObjects; + } + } + + /** + * Test get contact list. + * + * @param string $account + * @param string $params + * @access public + * @return void + */ + public function getContactListsTest($account = '', $params = '') + { + $contacts = $this->objectModel->getContactLists($account, $params); + + if(dao::isError()) + { + return dao::getError(); + } + else + { + return $contacts; + } + } + + /** + * Test get list by account method. + * + * @param string $account + * @access public + * @return void + */ + public function getListByAccountTest($account) + { + return $this->objectModel->getListByAccount($account); + } + + /** + * Test get parent stage authed users. + * + * @param int $stageID + * @access public + * @return void + */ + public function getParentStageAuthedUsersTest($stageID) + { + return $this->objectModel->getParentStageAuthedUsers($stageID); + } + + /** + * Test get contact list by id. + * + * @param int $listID + * @access public + * @return void + */ + public function getContactListByIDTest($listID) + { + return $this->objectModel->getContactListByID($listID); + } + + /** + * Test get contact user pairs. + * + * @param array $accountList + * @access public + * @return void + */ + public function getContactUserPairsTest($accountList) + { + return $this->objectModel->getContactListByID($listID); + } + + /** + * Test create contact list. + * + * @param string $listName + * @param array $userList + * @access public + * @return void + */ + public function createContactListTest($listName = '', $userList = array()) + { + $listID = $this->objectModel->createContactList($listName, $userList); + + if(dao::isError()) + { + return dao::getError(); + } + else + { + return $listID; + } + } + + /** + * Test update contact list. + * + * @param int $listID + * @param string $listName + * @param array $userList + * @access public + * @return void + */ + public function updateContactListTest($listID = 0, $listName = '', $userList = array()) + { + $this->objectModel->updateContactList($listID, $listName, $userList); + + if(dao::isError()) + { + return dao::getError(); + } + else + { + return $this->objectModel->getContactListByID($listID); + } } } diff --git a/test/model/user/getcontactlistbyid.php b/test/model/user/getcontactlistbyid.php new file mode 100644 index 0000000000..90e8527170 --- /dev/null +++ b/test/model/user/getcontactlistbyid.php @@ -0,0 +1,21 @@ +#!/usr/bin/env php +getContactListByIDTest(1)) && p() && e('0'); // +r($user->getContactListByIDTest(2)) && p() && e('0'); // +r($user->getContactListByIDTest(1000)) && p() && e('0'); // +r($user->getContactListByIDTest(false)) && p() && e('0'); // +r($user->getContactListByIDTest(null)) && p() && e('0'); // diff --git a/test/model/user/getcontactlists.php b/test/model/user/getcontactlists.php new file mode 100644 index 0000000000..cca7a64b5f --- /dev/null +++ b/test/model/user/getcontactlists.php @@ -0,0 +1,20 @@ +#!/usr/bin/env php +getContactListsTest('admin', 'withempty|withnote'); +$adminContactList2 = $user->getContactListsTest('admin', ''); +$test2ContactList = $user->getContactListsTest('test2'); +$emptyContactList = $user->getContactListsTest('', ''); + +r($adminContactList) && p() && e('0'); // 获取admin的联系人列表 diff --git a/test/model/user/getcontactuserpairs.php b/test/model/user/getcontactuserpairs.php new file mode 100644 index 0000000000..eb3db10ad3 --- /dev/null +++ b/test/model/user/getcontactuserpairs.php @@ -0,0 +1,17 @@ +#!/usr/bin/env php +getContactUserPairsTest(); +cid=1 +pid=1 + +*/ +$user = new userTest(); +$accountList = array('admin', 'test2'); + +r($user->getContactUserPairsTest($accountList)) && p('') && e(''); // diff --git a/test/model/user/getgroups.php b/test/model/user/getgroups.php new file mode 100644 index 0000000000..e8d8ad402d --- /dev/null +++ b/test/model/user/getgroups.php @@ -0,0 +1,18 @@ +#!/usr/bin/env php +getGroupsTest('admin')) && p() && e('0'); // 获取admin所在的分组,为空 +r(count($user->getGroupsTest('test2'))) && p() && e('1'); // 通过test2所在的分组数量,1个 +r($user->getGroupsTest('')) && p() && e('0'); // 传空用户名,返回空 diff --git a/test/model/user/getgroupsbyvisions.php b/test/model/user/getgroupsbyvisions.php new file mode 100644 index 0000000000..c16e6e3d27 --- /dev/null +++ b/test/model/user/getgroupsbyvisions.php @@ -0,0 +1,19 @@ +#!/usr/bin/env php +getGroupsByVisionsTest(array('rnd')))) && p() && e('14'); // 获取系统中所有研发界面分组的数量 +r(count($user->getGroupsByVisionsTest(array('lite')))) && p() && e('3'); // 获取系统中所有迅捷界面分组的数量 +r($user->getGroupsByVisionsTest(array())) && p() && e('0'); // 传空Visions,返回空数组 +r(count($user->getGroupsByVisionsTest(array('rnd','lite')))) && p() && e('17'); // 获取系统中所有用户分组的数量 diff --git a/test/model/user/getlistbyaccount.php b/test/model/user/getlistbyaccount.php new file mode 100644 index 0000000000..df5cec6540 --- /dev/null +++ b/test/model/user/getlistbyaccount.php @@ -0,0 +1,21 @@ +#!/usr/bin/env php +getListByAccountTest('admin'); +$test2ContactList = $user->getListByAccountTest('test2'); +$emptyContactList = $user->getListByAccountTest(''); + +r($adminContactList) && p() && e('0'); // 获取admin的联系人列表 +r($test2ContactList) && p() && e('0'); // 获取admin的联系人列表 +r($emptyContactList) && p() && e('0'); // 获取admin的联系人列表 diff --git a/test/model/user/getobjects.php b/test/model/user/getobjects.php new file mode 100644 index 0000000000..d01c0f9344 --- /dev/null +++ b/test/model/user/getobjects.php @@ -0,0 +1,26 @@ +#!/usr/bin/env php +getObjectsTest('admin', 'project', 'all', 'id_desc'); +$adminDoneProjects = $user->getObjectsTest('admin', 'project', 'done', 'id_desc'); +$adminExecutions = $user->getObjectsTest('admin', 'execution', 'all', 'id_desc'); +$test2Projects = $user->getObjectsTest('test2', 'project', 'all', 'id_desc'); +$emptyUser = $user->getObjectsTest('', 'execution', 'all', 'id_desc'); + +r($adminProjects) && p('11:name') && e('项目1'); //获取admin的所属项目列表,取ID为11的项目名字 +r($adminProjects) && p('11:type') && e('project'); //获取admin的所属项目列表,取ID为11的项目类型 +r($adminExecutions) && p('120:name') && e('迭代20'); //获取admin的所属执行列表,取ID为120的项目名字 +r($adminDoneProjects) && p('') && e('0'); //获取admin的已完成的所属项目列表,返回空 +r($test2Projects) && p('') && e('0'); //获取test2用户的所属项目列表,返回空 +r($emptyUser) && p('') && e('0'); //传入一个空用户名字段,返回空 diff --git a/test/model/user/getparentstageauthedusers.php b/test/model/user/getparentstageauthedusers.php new file mode 100644 index 0000000000..8cf13abcc5 --- /dev/null +++ b/test/model/user/getparentstageauthedusers.php @@ -0,0 +1,19 @@ +#!/usr/bin/env php +getParentStageAuthedUsersTest(0)) && p() && e('0'); //传入ID为0的情况获取有权限的用户 +r($user->getParentStageAuthedUsersTest(131)) && p('wwccss') && e('wwccss'); //传入一个阶段ID获取有权限的用户 +r($user->getParentStageAuthedUsersTest(1)) && p() && e('0'); //传入一个项目集ID获取有权限的用户 +r($user->getParentStageAuthedUsersTest(161)) && p('wwccss') && e('wwccss'); //传入一个看板类型的项目ID获取有权限的用户 diff --git a/test/model/user/login.php b/test/model/user/login.php index 953ab8b093..94e54668d0 100644 --- a/test/model/user/login.php +++ b/test/model/user/login.php @@ -12,14 +12,18 @@ pid=1 */ -$user = new stdclass(); -$user->id = 1; -$user->account = 'admin'; - $userClass = new userTest(); -$user = $userClass->loginTest($user); -r($rights['rights']) && p('action:comment') && e('1'); //获取用户的权限,返回权限列表 -r($rights['rights']) && p('testtask:activate') && e('1'); //获取用户的权限,返回权限列表 -r($user->authorizeTest('sadf!!@#a')) && p('projects') && e(''); //获取不存在的用户的权限,返回空 -r($user->authorizeTest('')) && p('') && e('0'); //获取空用户名的权限,返回空 +$admin = new stdclass(); +$admin->id = 1; +$admin->account = 'admin'; +$admin = $userClass->loginTest($admin); + +$emptyAccount = new stdclass(); +$emptyAccount->id = 0; +$emptyAccount->account = ''; +$emptyAccount = $userClass->loginTest($emptyAccount); + +r($admin) && p('admin') && e('1'); //使用admin登录,返回此用户为超级管理员 +r(count($admin->rights)) && p() && e('3'); //使用Admin登录,返回权限列表的数量 +r(count($emptyAccount->group)) && p() && e('0'); //使用空账号登录,返回权限列表数量为0