From c3ca00a22ba7ff01603d3825132c288993843820 Mon Sep 17 00:00:00 2001 From: hufangzhou Date: Wed, 11 Jan 2023 00:55:15 +0000 Subject: [PATCH 1/9] * Modify the getcontactlists unit testcase. --- test/class/user.class.php | 3 ++- test/model/user/getcontactlists.php | 25 +++++++++++++++++++------ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/test/class/user.class.php b/test/class/user.class.php index 74d15feb0c..2b640c2de3 100755 --- a/test/class/user.class.php +++ b/test/class/user.class.php @@ -587,7 +587,8 @@ class userTest $contacts = $this->objectModel->getContactLists($account, $params); if(dao::isError()) return dao::getError(); - return $contacts; + + return $contacts ? $contacts : 0; } /** diff --git a/test/model/user/getcontactlists.php b/test/model/user/getcontactlists.php index ba55fad705..0050230723 100755 --- a/test/model/user/getcontactlists.php +++ b/test/model/user/getcontactlists.php @@ -4,19 +4,32 @@ include dirname(dirname(dirname(__FILE__))) . '/lib/init.php'; include dirname(dirname(dirname(__FILE__))) . '/class/user.class.php'; su('admin'); +$userContactList = zdTable('usercontact'); +$userContactList->gen(100); + /** title=测试 userModel::getContactLists(); cid=1 pid=1 +获取user1的联系人列表,取出空对应的值 >> 联系人 +获取dev2的联系人列表,判断空对应的值是否为空 >> 1 +获取test3的联系人列表的总数 >> 3 获取admin的联系人列表 >> 0 +获取空用户的联系人列表 >> 0 */ -$user = new userTest(); -$adminContactList1 = $user->getContactListsTest('admin', 'withempty|withnote'); -$adminContactList2 = $user->getContactListsTest('admin', ''); -$test2ContactList = $user->getContactListsTest('test2'); -$emptyContactList = $user->getContactListsTest('', ''); -r($adminContactList) && p() && e('0'); // 获取admin的联系人列表 \ No newline at end of file +$user = new userTest(); +$user1ContactList = $user->getContactListsTest('user1', 'withempty|withnote'); +$dev2ContactList = $user->getContactListsTest('dev2', 'withempty'); +$test3ContactList = $user->getContactListsTest('test3'); +$adminContactList = $user->getContactListsTest('admin'); +$emptyContactList = $user->getContactListsTest(''); + +r($user1ContactList['']) && p() && e('联系人'); // 获取user1的联系人列表,取出空对应的值 +r($dev2ContactList[''] === '') && p() && e('1'); // 获取dev2的联系人列表,判断空对应的值是否为空 +r(count($test3ContactList)) && p() && e('3'); // 获取test3的联系人列表的总数 +r($adminContactList) && p() && e('0'); // 获取admin的联系人列表 +r($emptyContactList) && p() && e('0'); // 获取空用户的联系人列表 From cc46560dc8e2704787ec007d2b0a1d3032701470 Mon Sep 17 00:00:00 2001 From: hufangzhou Date: Wed, 11 Jan 2023 01:05:48 +0000 Subject: [PATCH 2/9] * Add the getlistbyaccount unit testcase. --- test/model/user/getlistbyaccount.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/test/model/user/getlistbyaccount.php b/test/model/user/getlistbyaccount.php index d5c4294612..b5bc96cc3b 100755 --- a/test/model/user/getlistbyaccount.php +++ b/test/model/user/getlistbyaccount.php @@ -4,6 +4,9 @@ include dirname(dirname(dirname(__FILE__))) . '/lib/init.php'; include dirname(dirname(dirname(__FILE__))) . '/class/user.class.php'; su('admin'); +$userContactList = zdTable('usercontact'); +$userContactList->gen(100); + /** title=测试 userModel::getListByAccount(); @@ -11,15 +14,16 @@ cid=1 pid=1 获取admin的联系人列表 >> 0 -获取admin的联系人列表 >> 0 -获取admin的联系人列表 >> 0 +获取dev2的联系人列表 >> 3 +获取空用户的联系人列表 >> 0 */ + $user = new userTest(); $adminContactList = $user->getListByAccountTest('admin'); -$test2ContactList = $user->getListByAccountTest('test2'); +$test2ContactList = $user->getListByAccountTest('dev2'); $emptyContactList = $user->getListByAccountTest(''); -r($adminContactList) && p() && e('0'); // 获取admin的联系人列表 -r($test2ContactList) && p() && e('0'); // 获取admin的联系人列表 -r($emptyContactList) && p() && e('0'); // 获取admin的联系人列表 \ No newline at end of file +r(count($adminContactList)) && p() && e('0'); // 获取admin的联系人列表 +r(count($test2ContactList)) && p() && e('3'); // 获取dev2的联系人列表 +r(count($emptyContactList)) && p() && e('0'); // 获取空用户的联系人列表 From 9f6235825b1702c8c303fa03e9d8cf255c9b7feb Mon Sep 17 00:00:00 2001 From: hufangzhou Date: Wed, 11 Jan 2023 01:24:01 +0000 Subject: [PATCH 3/9] * Modify the getparentstageauthedusers unit testcase. --- test/model/user/getparentstageauthedusers.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/test/model/user/getparentstageauthedusers.php b/test/model/user/getparentstageauthedusers.php index b720122a51..2c6dadd161 100755 --- a/test/model/user/getparentstageauthedusers.php +++ b/test/model/user/getparentstageauthedusers.php @@ -4,21 +4,22 @@ include dirname(dirname(dirname(__FILE__))) . '/lib/init.php'; include dirname(dirname(dirname(__FILE__))) . '/class/user.class.php'; su('admin'); +$userView = zdTable('userview'); +$userView->gen(400); + /** -title=测试 userModel::getParentStageAuthedUsers(); +title=测试 userModel->getParentStageAuthedUsers(); cid=1 pid=1 传入ID为0的情况获取有权限的用户 >> 0 -传入一个阶段ID获取有权限的用户 >> admin +传入一个阶段ID获取有权限的用户 >> dev12 传入一个项目集ID获取有权限的用户 >> 0 -传入一个看板类型的项目ID获取有权限的用户 >> admin */ $user = new userTest(); -r($user->getParentStageAuthedUsersTest(0)) && p() && e('0'); //传入ID为0的情况获取有权限的用户 -r($user->getParentStageAuthedUsersTest(131)) && p('admin') && e('admin'); //传入一个阶段ID获取有权限的用户 -r($user->getParentStageAuthedUsersTest(1)) && p() && e('0'); //传入一个项目集ID获取有权限的用户 -r($user->getParentStageAuthedUsersTest(161)) && p('admin') && e('admin'); //传入一个看板类型的项目ID获取有权限的用户 \ No newline at end of file +r($user->getParentStageAuthedUsersTest(0)) && p() && e('0'); //传入阶段ID为0获取有权限的用户 +r($user->getParentStageAuthedUsersTest(212)) && p('dev12') && e('dev12'); //传入一个阶段ID为212获取有权限的用户 +r($user->getParentStageAuthedUsersTest(1)) && p() && e('0'); //传入一个阶段ID为1获取有权限的用户 From eb7b151b4aa28de4358cebe5848507258f53f994 Mon Sep 17 00:00:00 2001 From: hufangzhou Date: Wed, 11 Jan 2023 05:18:05 +0000 Subject: [PATCH 4/9] * Add the identifybycookie and identifybyphpauth unit testcase. --- test/class/user.class.php | 22 +++++++++++++++ test/model/user/identifybycookie.php | 39 +++++++++++++++++++++++++++ test/model/user/identifybyphpauth.php | 39 +++++++++++++++++++++++++++ 3 files changed, 100 insertions(+) create mode 100755 test/model/user/identifybycookie.php create mode 100755 test/model/user/identifybyphpauth.php diff --git a/test/class/user.class.php b/test/class/user.class.php index 74d15feb0c..597ae5ca64 100755 --- a/test/class/user.class.php +++ b/test/class/user.class.php @@ -1037,4 +1037,26 @@ class userTest return $oldRandom != $newRandom ? 1 : 0; } + + /** + * Identify user by PHP_AUTH_USER. + * + * @access public + * @return bool + */ + public function identifyByPhpAuthTest() + { + return $this->objectModel->identifyByPhpAuth(); + } + + /** + * Identify user by cookie. + * + * @access public + * @return bool + */ + public function identifyByCookieTest() + { + return $this->objectModel->identifyByCookie(); + } } diff --git a/test/model/user/identifybycookie.php b/test/model/user/identifybycookie.php new file mode 100755 index 0000000000..4ad344d1c6 --- /dev/null +++ b/test/model/user/identifybycookie.php @@ -0,0 +1,39 @@ +#!/usr/bin/env php +gen(300); + +/** + +title=测试 userModel->identifyByCookie(); +cid=1 +pid=1 + +验证admin用户 >> 1 +验证游客用户 >> 0 +获取不存在的用户 >> 0 + +*/ + +$user = new userTest(); + +$_COOKIE['za'] = 'admin'; +$_COOKIE['zp'] = 'a0933c1218a4e745bacdcf572b10eba7'; +$normalUser = $user->identifyByCookieTest('admin'); + +$_COOKIE['za'] = 'guest'; +$_COOKIE['zp'] = ''; +$guest = $user->identifyByCookieTest('guest'); + +$_COOKIE['za'] = 'asdqwe'; +$_COOKIE['zp'] = 'a0933c1218a4e745bacdcf572b10eba7'; +$notExistUser = $user->identifyByCookieTest('asdqwe'); + +r($normalUser) && p() && e('1'); //验证admin用户 +r($guest) && p() && e('0'); //验证游客用户 +r($notExistsUser) && p() && e('0'); //获取不存在的用户 diff --git a/test/model/user/identifybyphpauth.php b/test/model/user/identifybyphpauth.php new file mode 100755 index 0000000000..6fa43cb924 --- /dev/null +++ b/test/model/user/identifybyphpauth.php @@ -0,0 +1,39 @@ +#!/usr/bin/env php +gen(300); + +/** + +title=测试 userModel->identifyByPhpAuth(); +cid=1 +pid=1 + +验证admin用户 >> 1 +验证游客用户 >> 0 +获取不存在的用户 >> 0 + +*/ + +$user = new userTest(); + +$_SERVER['PHP_AUTH_USER'] = 'admin'; +$_SERVER['PHP_AUTH_PW'] = 'a0933c1218a4e745bacdcf572b10eba7'; +$normalUser = $user->identifyByPhpAuthTest('admin'); + +$_SERVER['PHP_AUTH_USER'] = 'guest'; +$_SERVER['PHP_AUTH_PW'] = ''; +$guest = $user->identifyByPhpAuthTest('guest'); + +$_SERVER['PHP_AUTH_USER'] = 'asdqwe'; +$_SERVER['PHP_AUTH_PW'] = 'a0933c1218a4e745bacdcf572b10eba7'; +$notExistUser = $user->identifyByPhpAuthTest('asdqwe'); + +r($normalUser) && p() && e('1'); //验证admin用户 +r($guest) && p() && e('0'); //验证游客用户 +r($notExistsUser) && p() && e('0'); //获取不存在的用户 From fda9b8eee30227ffbe64d00010472d71e9ea4d0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=94=B0=E6=B7=91=E6=9D=B0?= Date: Wed, 11 Jan 2023 14:40:01 +0800 Subject: [PATCH 5/9] * Add case of execution model. --- test/class/execution.class.php | 17 ++++++++++++++++- test/model/execution/select.php | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 test/model/execution/select.php diff --git a/test/class/execution.class.php b/test/class/execution.class.php index 0079abaa28..faf243da7d 100644 --- a/test/class/execution.class.php +++ b/test/class/execution.class.php @@ -13,6 +13,21 @@ class executionTest $this->objectModel = $tester->loadModel('execution'); } + /** + * Create the select code of executions. + * + * @param int $executionID + * @param string $currentModule + * @param string $currentMethod + * @access public + * @return void + */ + public function selectTest($executionID, $currentModule, $currentMethod) + { + $executions = $this->objectModel->getPairs(); + return $this->objectModel->select($executions, $executionID, 0, $currentModule, $currentMethod); + } + /** * Check the privilege. * @@ -371,7 +386,7 @@ class executionTest * @access public * @return array */ - public function getPairsTest($projectID,$count) + public function getPairsTest($projectID, $count) { $object = $this->objectModel->getPairs($projectID); diff --git a/test/model/execution/select.php b/test/model/execution/select.php new file mode 100644 index 0000000000..cecdc2e139 --- /dev/null +++ b/test/model/execution/select.php @@ -0,0 +1,32 @@ +#!/usr/bin/env php +gen(5); +su('admin'); + +$execution = zdTable('project'); +$execution->id->range('1-5'); +$execution->name->range('项目集1,项目1,迭代1,阶段1,看板1'); +$execution->type->range('execution,project,sprint,stage,kanban'); +$execution->parent->range('0,1,2{3}'); +$execution->status->range('wait{3},suspended,closed,doing'); +$execution->openedBy->range('admin,user1'); +$execution->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD'); +$execution->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD'); +$execution->gen(5); + +/** + +title=测试 executionModel::accessDenied(); +cid=1 +pid=1 + +检查下拉菜单默认选中迭代1 >> 迭代1 + +*/ + +$executionTester = new executionTest(); +$html = $executionTester->selectTest('3', 'execution', 'all'); + +r(strip_tags($html)) && p() && e('迭代1'); // 检查下拉菜单默认选中迭代1 From a06c7b95abc3dc18c72f9a3e5197a836d70267e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=94=B0=E6=B7=91=E6=9D=B0?= Date: Wed, 11 Jan 2023 14:47:46 +0800 Subject: [PATCH 6/9] * Add case of execution model. --- test/model/execution/select.php | 2 +- test/model/execution/tree.php | 52 +++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 test/model/execution/tree.php diff --git a/test/model/execution/select.php b/test/model/execution/select.php index cecdc2e139..dfe25c103b 100644 --- a/test/model/execution/select.php +++ b/test/model/execution/select.php @@ -18,7 +18,7 @@ $execution->gen(5); /** -title=测试 executionModel::accessDenied(); +title=测试 executionModel::select(); cid=1 pid=1 diff --git a/test/model/execution/tree.php b/test/model/execution/tree.php new file mode 100644 index 0000000000..ce2d08c8c2 --- /dev/null +++ b/test/model/execution/tree.php @@ -0,0 +1,52 @@ +#!/usr/bin/env php +gen(5); +su('admin'); + +$execution = zdTable('project'); +$execution->id->range('1-5'); +$execution->name->range('项目集1,项目1,迭代1,阶段1,看板1'); +$execution->type->range('execution,project,sprint,stage,kanban'); +$execution->parent->range('0,1,2{3}'); +$execution->status->range('wait{3},suspended,closed,doing'); +$execution->openedBy->range('admin,user1'); +$execution->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD'); +$execution->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD'); +$execution->gen(5); + +$product = zdTable('product'); +$product->id->range('1-2'); +$product->name->range('正常产品1,多分支产品1'); +$product->type->range('normal,branch'); +$product->status->range('normal'); +$product->createdBy->range('admin,user1'); +$product->gen(2); + +$branch = zdTable('branch'); +$branch->id->range('1-2'); +$branch->product->range('2'); +$branch->name->range('分支1,分支2'); +$branch->status->range('active'); +$branch->gen(2); + +$projectProduct = zdTable('projectproduct'); +$projectProduct->project->range('3{3}, 4{3}, 5{3}'); +$projectProduct->product->range('1-2{2}'); +$projectProduct->branch->range('0-2'); +$projectProduct->gen(9); + +/** + +title=测试 executionModel::tree(); +cid=1 +pid=1 + +检查执行列表的树状结构 >> 正常产品1 + +*/ + +global $tester; +$treeHtml = $tester->loadModel('execution')->tree(); + +r(strip_tags($treeHtml)) && p() && e('正常产品1'); // 检查执行列表的树状结构 From 789b63ec3fc75dfa10f042267e0eafde44c25e0f Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 11 Jan 2023 15:06:07 +0800 Subject: [PATCH 7/9] * Remove bak file. --- test/model/execution/filltasksintree.php.bak | 32 ------------------- .../execution/formattasksfortree.php.bak | 32 ------------------- test/model/execution/gettree.php.bak | 32 ------------------- 3 files changed, 96 deletions(-) delete mode 100755 test/model/execution/filltasksintree.php.bak delete mode 100755 test/model/execution/formattasksfortree.php.bak delete mode 100755 test/model/execution/gettree.php.bak diff --git a/test/model/execution/filltasksintree.php.bak b/test/model/execution/filltasksintree.php.bak deleted file mode 100755 index d247c127cc..0000000000 --- a/test/model/execution/filltasksintree.php.bak +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env php -getTreeTest(); -cid=1 -pid=1 - -敏捷执行关闭 >> status,wait,getTreed -瀑布执行关闭 >> status,doing,getTreed -看板执行关闭 >> status,doing,getTreed -不输入实际完成时间校验 >> 『realEnd』不能为空。 - -*/ - -$executionIDList = array('101','131', '161'); -$count = array('0','1'); - -$execution = new executionTest(); -var_dump($execution->getTreeTest($executionIDList[0],$count[0]));die; -r($execution->getTreeTest($executionIDList[0],$count[0])) && p('91') && e('0,101,102'); // 敏捷项目下根据执行查询产品分支 -r($execution->getTreeTest($executionIDList[1],$count[0])) && p('46') && e('0,11,12'); // 瀑布项目下根据执行查询产品分支 -r($execution->getTreeTest($executionIDList[2],$count[0])) && p('57') && e('0,33,34'); // 看板项目下根据执行查询产品分支 -r($execution->getTreeTest($executionIDList[3],$count[0])) && p('21') && e('0'); // 非分支产品执行查询产品分支 -r($execution->getTreeTest($executionIDList[0],$count[1])) && p() && e('3'); // 敏捷执行关联产品分支统计 -r($execution->getTreeTest($executionIDList[1],$count[1])) && p() && e('2'); // 瀑布执行关联产品分支统计 -r($execution->getTreeTest($executionIDList[2],$count[1])) && p() && e('2'); // 看板执行关联产品分支统计 -r($execution->getTreeTest($executionIDList[3],$count[1])) && p() && e('2'); // 正常产品分支统计 diff --git a/test/model/execution/formattasksfortree.php.bak b/test/model/execution/formattasksfortree.php.bak deleted file mode 100755 index d247c127cc..0000000000 --- a/test/model/execution/formattasksfortree.php.bak +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env php -getTreeTest(); -cid=1 -pid=1 - -敏捷执行关闭 >> status,wait,getTreed -瀑布执行关闭 >> status,doing,getTreed -看板执行关闭 >> status,doing,getTreed -不输入实际完成时间校验 >> 『realEnd』不能为空。 - -*/ - -$executionIDList = array('101','131', '161'); -$count = array('0','1'); - -$execution = new executionTest(); -var_dump($execution->getTreeTest($executionIDList[0],$count[0]));die; -r($execution->getTreeTest($executionIDList[0],$count[0])) && p('91') && e('0,101,102'); // 敏捷项目下根据执行查询产品分支 -r($execution->getTreeTest($executionIDList[1],$count[0])) && p('46') && e('0,11,12'); // 瀑布项目下根据执行查询产品分支 -r($execution->getTreeTest($executionIDList[2],$count[0])) && p('57') && e('0,33,34'); // 看板项目下根据执行查询产品分支 -r($execution->getTreeTest($executionIDList[3],$count[0])) && p('21') && e('0'); // 非分支产品执行查询产品分支 -r($execution->getTreeTest($executionIDList[0],$count[1])) && p() && e('3'); // 敏捷执行关联产品分支统计 -r($execution->getTreeTest($executionIDList[1],$count[1])) && p() && e('2'); // 瀑布执行关联产品分支统计 -r($execution->getTreeTest($executionIDList[2],$count[1])) && p() && e('2'); // 看板执行关联产品分支统计 -r($execution->getTreeTest($executionIDList[3],$count[1])) && p() && e('2'); // 正常产品分支统计 diff --git a/test/model/execution/gettree.php.bak b/test/model/execution/gettree.php.bak deleted file mode 100755 index d247c127cc..0000000000 --- a/test/model/execution/gettree.php.bak +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env php -getTreeTest(); -cid=1 -pid=1 - -敏捷执行关闭 >> status,wait,getTreed -瀑布执行关闭 >> status,doing,getTreed -看板执行关闭 >> status,doing,getTreed -不输入实际完成时间校验 >> 『realEnd』不能为空。 - -*/ - -$executionIDList = array('101','131', '161'); -$count = array('0','1'); - -$execution = new executionTest(); -var_dump($execution->getTreeTest($executionIDList[0],$count[0]));die; -r($execution->getTreeTest($executionIDList[0],$count[0])) && p('91') && e('0,101,102'); // 敏捷项目下根据执行查询产品分支 -r($execution->getTreeTest($executionIDList[1],$count[0])) && p('46') && e('0,11,12'); // 瀑布项目下根据执行查询产品分支 -r($execution->getTreeTest($executionIDList[2],$count[0])) && p('57') && e('0,33,34'); // 看板项目下根据执行查询产品分支 -r($execution->getTreeTest($executionIDList[3],$count[0])) && p('21') && e('0'); // 非分支产品执行查询产品分支 -r($execution->getTreeTest($executionIDList[0],$count[1])) && p() && e('3'); // 敏捷执行关联产品分支统计 -r($execution->getTreeTest($executionIDList[1],$count[1])) && p() && e('2'); // 瀑布执行关联产品分支统计 -r($execution->getTreeTest($executionIDList[2],$count[1])) && p() && e('2'); // 看板执行关联产品分支统计 -r($execution->getTreeTest($executionIDList[3],$count[1])) && p() && e('2'); // 正常产品分支统计 From 256838497b0b73475388b1fe79a74b845aac45b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=94=B0=E6=B7=91=E6=9D=B0?= Date: Wed, 11 Jan 2023 15:45:21 +0800 Subject: [PATCH 8/9] * Add case of execution model. --- test/class/execution.class.php | 13 +++++++++ test/model/execution/savestate.php | 44 ++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 test/model/execution/savestate.php diff --git a/test/class/execution.class.php b/test/class/execution.class.php index faf243da7d..de7e2c3581 100644 --- a/test/class/execution.class.php +++ b/test/class/execution.class.php @@ -13,6 +13,19 @@ class executionTest $this->objectModel = $tester->loadModel('execution'); } + /** + * Test save state. + * + * @param int $executionID + * @param array $executions + * @access public + * @return array + */ + public function saveStateTest($executionID = 0, $executions = array()) + { + return $this->objectModel->saveState($executionID, $executions); + } + /** * Create the select code of executions. * diff --git a/test/model/execution/savestate.php b/test/model/execution/savestate.php new file mode 100644 index 0000000000..66a73a4842 --- /dev/null +++ b/test/model/execution/savestate.php @@ -0,0 +1,44 @@ +#!/usr/bin/env php +gen(5); +su('admin'); + +$execution = zdTable('project'); +$execution->id->range('1,2,3'); +$execution->name->range('执行1,执行2,执行3'); +$execution->type->range('sprint'); +$execution->grade->range('1'); +$execution->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD'); +$execution->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD'); +$execution->gen(3); + +/** + +title=测试executionModel->saveState(); +cid=1 +pid=1 + +执行ID存在但无权访问 >> html +执行ID不存在 >> 0 +执行ID存在,但不在可以查看的执行列表 >> 1 +执行ID存在,且在可以查看的执行列表 >> 2 +执行ID不存在,且有可以查看的执行列表 >> 2 + +*/ + +$executionTester = new executionTest(); +ob_start(); +$executionTester->saveStateTest(1); +$execution1 = ob_get_clean(); +$execution2 = $executionTester->saveStateTest(0); +$execution3 = $executionTester->saveStateTest(1, array(1 => '')); +$execution4 = $executionTester->saveStateTest(3, array(2 => '')); +$execution5 = $executionTester->saveStateTest(0, array(2 => '')); + +r(substr($execution1, 1, 4)) && p() && e('html'); // 执行ID存在但无权访问 +r($execution2) && p() && e('0'); // 执行ID不存在 +r($execution3) && p() && e('1'); // 执行ID存在,但不在可以查看的执行列表 +r($execution4) && p() && e('2'); // 执行ID存在,且在可以查看的执行列表 +r($execution5) && p() && e('2'); // 执行ID不存在,且有可以查看的执行列表 From d30e78f6206153fe908ceec939b3f99e000f322e Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 11 Jan 2023 15:46:05 +0800 Subject: [PATCH 9/9] * Add test case. --- test/class/execution.class.php | 13 ++++++++++ test/model/execution/getswitcher.php | 38 ++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 test/model/execution/getswitcher.php diff --git a/test/class/execution.class.php b/test/class/execution.class.php index faf243da7d..3c1d3118b1 100644 --- a/test/class/execution.class.php +++ b/test/class/execution.class.php @@ -2423,4 +2423,17 @@ class executionTest global $lang; return strip_tags($lang->switcherMenu); } + + /** + * Get switcher. + * + * @param int $executionID + * @param string $method + * @access public + * @return string + */ + public function getSwitcherTest($executionID = 0, $method = '') + { + return $this->objectModel->getSwitcher($executionID, 'execution', $method); + } } diff --git a/test/model/execution/getswitcher.php b/test/model/execution/getswitcher.php new file mode 100644 index 0000000000..dff19a0d8c --- /dev/null +++ b/test/model/execution/getswitcher.php @@ -0,0 +1,38 @@ +#!/usr/bin/env php +id->range('1-5'); +$execution->name->range('项目集1,项目1,迭代1,阶段1,看板1'); +$execution->type->range('program,project,sprint,stage,kanban'); +$execution->parent->range('0,1,2{3}'); +$execution->status->range('wait{3},suspended,closed,doing'); +$execution->openedBy->range('admin,user1'); +$execution->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD'); +$execution->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD'); +$execution->gen(5); + +su('admin'); +/** + +title=测试 executionModel::saveState(); +cid=1 +pid=1 + +查看传入空返回的下拉菜单 >> 执行 +查看传入id=1, 请求all方法的执行返回的下拉菜单 >> 0 +查看传入id=1,请求tasks方法的执行返回的下拉菜单 >> 项目集1 + +*/ +$methods = array('all', 'task'); + +$executionTester = new executionTest(); +$switcher1 = $executionTester->getSwitcherTest(0); +$switcher2 = $executionTester->getSwitcherTest(1, $methods[0]); +$switcher3 = $executionTester->getSwitcherTest(1, $methods[1]); + +r(strip_tags($switcher1)) && p() && e('执行'); // 查看传入空返回的下拉菜单 +r(strip_tags($switcher2)) && p() && e('0'); // 查看传入id=1, 请求all方法的执行返回的下拉菜单 +r(strip_tags($switcher3)) && p() && e('项目集1'); // 查看传入id=1,请求tasks方法的执行返回的下拉菜单