From 0338be7f3d8741dd86b17b3c06995e7b15af22ed Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Fri, 6 Jan 2023 09:40:55 +0800 Subject: [PATCH 01/10] * Update user create. --- test/class/program.class.php | 13 +++++ test/model/program/getbudgetleft.php | 4 +- test/model/program/getstakeholders.php | 45 +++++++++++++----- .../program/getstakeholdersbyprograms.php | 47 ++++++++++++------- test/model/program/getteammemberpairs.php | 11 +++-- 5 files changed, 85 insertions(+), 35 deletions(-) diff --git a/test/class/program.class.php b/test/class/program.class.php index 79380e1b3d..8e5592024d 100644 --- a/test/class/program.class.php +++ b/test/class/program.class.php @@ -361,4 +361,17 @@ class programTest { return $this->program->getProgressList(); } + + /** + * Get stakeholders. + * + * @param int $programID + * @param string $orderBy + * @access public + * @return array + */ + public function getStakeholdersTest($programID, $orderBy = 'id_desc') + { + return $this->program->getStakeholders($programID, $orderBy); + } } diff --git a/test/model/program/getbudgetleft.php b/test/model/program/getbudgetleft.php index 4db0a00893..3998bd1e71 100755 --- a/test/model/program/getbudgetleft.php +++ b/test/model/program/getbudgetleft.php @@ -26,8 +26,8 @@ pid=1 */ $programTester = new programTest(); -$result1 = $programTester->getBudgetLeftTest(1); -$result2 = $programTester->getBudgetLeftTest(2); +$result1 = $programTester->getBudgetLeftTest(1); +$result2 = $programTester->getBudgetLeftTest(2); r($result1) && p() && e('900000'); // 查看项目集1的所有父项目集的预算剩余 r($result2) && p() && e('899900'); // 查看项目集2的所有父项目集的预算剩余 diff --git a/test/model/program/getstakeholders.php b/test/model/program/getstakeholders.php index 9b2b9dbf91..2a769ee78c 100755 --- a/test/model/program/getstakeholders.php +++ b/test/model/program/getstakeholders.php @@ -1,27 +1,46 @@ #!/usr/bin/env php id->range('1,2'); +$program->name->range('父项目集1,父项目集2'); +$program->type->range('program'); +$program->budget->range('900000,899900'); +$program->path->range('1,2')->prefix(',')->postfix(','); +$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD'); +$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD'); +$program->gen(2); + +zdTable('user')->gen(5); + +$stakeholder = zdTable('stakeholder'); +$stakeholder->objectID->range('1,2'); +$stakeholder->objectType->range('program'); +$stakeholder->type->range('inside'); +$stakeholder->user->range('admin,user1,user2'); +$stakeholder->gen(3); + +su('admin'); /** title=测试 programModel::getStakeholders(); cid=1 pid=1 -获取干系人数量 >> 3 -获取干系人数量 >> 3 -id倒序排,获取第一个干系人真实姓名 >> 测试17 -id正序排,获取第一个干系人真实姓名 >> 测试19 +获取干系人数量 >> 2 +获取干系人数量 >> 1 +id倒序排,获取第一个干系人真实姓名 >> 测试2 +id正序排,获取第一个干系人真实姓名 >> 用户1 */ -global $tester; -$tester->loadModel('program'); -$stakeholders1 = $tester->program->getStakeholders(2, 'id_desc'); -$stakeholders2 = $tester->program->getStakeholders(2, 'id_asc'); +$programTester = new programTest(); +$stakeholders1 = $programTester->getStakeholdersTest(1, 'id_desc'); +$stakeholders2 = $programTester->getStakeholdersTest(2, 'id_asc'); -r(count($stakeholders1)) && p() && e('3'); // 获取干系人数量 -r(count($stakeholders2)) && p() && e('3'); // 获取干系人数量 -r($stakeholders1) && p('0:realname') && e('测试17'); // id倒序排,获取第一个干系人真实姓名 -r($stakeholders2) && p('0:realname') && e('测试19'); // id正序排,获取第一个干系人真实姓名 \ No newline at end of file +r(count($stakeholders1)) && p() && e('2'); // 获取干系人数量 +r(count($stakeholders2)) && p() && e('1'); // 获取干系人数量 +r($stakeholders1) && p('0:realname') && e('测试2'); // id倒序排,获取第一个干系人真实姓名 +r($stakeholders2) && p('0:realname') && e('用户1'); // id正序排,获取第一个干系人真实姓名 diff --git a/test/model/program/getstakeholdersbyprograms.php b/test/model/program/getstakeholdersbyprograms.php index 44c4fd3bee..9c0a2eb2ed 100755 --- a/test/model/program/getstakeholdersbyprograms.php +++ b/test/model/program/getstakeholdersbyprograms.php @@ -1,6 +1,27 @@ #!/usr/bin/env php id->range('1,2'); +$program->name->range('父项目集1,父项目集2'); +$program->type->range('program'); +$program->budget->range('900000,899900'); +$program->path->range('1,2')->prefix(',')->postfix(','); +$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD'); +$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD'); +$program->gen(2); + +zdTable('user')->gen(5); + +$stakeholder = zdTable('stakeholder'); +$stakeholder->objectID->range('1,2'); +$stakeholder->objectType->range('program'); +$stakeholder->type->range('inside'); +$stakeholder->user->range('admin,user1,user2'); +$stakeholder->gen(3); + su('admin'); /** @@ -9,25 +30,19 @@ title=测试 programModel::getStakeholdersByPrograms(); cid=1 pid=1 -获取项目集2的干系人名单 >> user19 -获取项目集2的干系人名单 >> user18 -获取项目集2的干系人名单 >> user17 -获取项目集2和项目集3的干系人名单 >> user19 -获取项目集2和项目集3的干系人名单 >> user18 -获取项目集2和项目集3的干系人名单 >> user17 -获取项目集2的干系人个数 >> 3 -获取项目集2、3的干系人个数 >> 6 +获取项目集1的干系人名单 >> admin +获取项目集2的干系人名单 >> user1 +获取项目集1和项目集2的干系人名单 >> admin +获取项目集1的干系人个数 >> 2 +获取项目集1、2的干系人个数 >> 3 */ global $tester; $tester->loadModel('program'); -r($tester->program->getStakeholdersByPrograms('2')) && p('0:account') && e('user19'); // 获取项目集2的干系人名单 -r($tester->program->getStakeholdersByPrograms('2')) && p('1:account') && e('user18'); // 获取项目集2的干系人名单 -r($tester->program->getStakeholdersByPrograms('2')) && p('2:account') && e('user17'); // 获取项目集2的干系人名单 -r($tester->program->getStakeholdersByPrograms('2,3')) && p('0:account') && e('user19'); // 获取项目集2和项目集3的干系人名单 -r($tester->program->getStakeholdersByPrograms('2,3')) && p('1:account') && e('user18'); // 获取项目集2和项目集3的干系人名单 -r($tester->program->getStakeholdersByPrograms('2,3')) && p('2:account') && e('user17'); // 获取项目集2和项目集3的干系人名单 -r(count($tester->program->getStakeholdersByPrograms('2'))) && p('') && e('3'); // 获取项目集2的干系人个数 -r(count($tester->program->getStakeholdersByPrograms('2,3'))) && p('') && e('6'); // 获取项目集2、3的干系人个数 \ No newline at end of file +r($tester->program->getStakeholdersByPrograms('1')) && p('0:account') && e('admin'); // 获取项目集1的干系人名单 +r($tester->program->getStakeholdersByPrograms('2')) && p('0:account') && e('user1'); // 获取项目集2的干系人名单 +r($tester->program->getStakeholdersByPrograms('1,2')) && p('0:account') && e('admin'); // 获取项目集1和项目集2的干系人名单 +r(count($tester->program->getStakeholdersByPrograms('1'))) && p('') && e('2'); // 获取项目集1的干系人个数 +r(count($tester->program->getStakeholdersByPrograms('1,2'))) && p('') && e('3'); // 获取项目集1、2的干系人个数 diff --git a/test/model/program/getteammemberpairs.php b/test/model/program/getteammemberpairs.php index 99a50ca717..020ec104e8 100755 --- a/test/model/program/getteammemberpairs.php +++ b/test/model/program/getteammemberpairs.php @@ -2,7 +2,6 @@ id->range('1-5'); @@ -22,11 +21,15 @@ $team->root->range('3-5'); $team->type->range('project'); $team->account->range('admin'); $team->account->setFields(array( - array('field' => 'account1', 'range' => 'admin,test{4}'), + array('field' => 'account1', 'range' => 'admin,user{4}'), array('field' => 'account2', 'range' => '[],1-4'), )); $team->gen(5); +zdTable('user')->gen(5); + +su('admin'); + /** title=测试 programModel::getTeamMemberPairs(); @@ -36,7 +39,7 @@ pid=1 获取项目集1下所有团队成员数量 >> 5 获取项目集2下所有团队成员数量 >> 2 获取项目集1下所有团队成员真实姓名 >> A:admin -获取项目集2下所有团队成员真实姓名 >> T:测试2 +获取项目集2下所有团队成员真实姓名 >> U:测试2 */ @@ -47,4 +50,4 @@ $teams2 = $programTester->getTeamMemberPairsTest(2); r(count($teams1)) && p() && e('5'); // 获取项目集1下所有团队成员数量 r(count($teams2)) && p() && e('2'); // 获取项目集2下所有团队成员数量 r($teams1) && p('admin') && e('A:admin'); // 获取项目集1下所有团队成员真实姓名 -r($teams2) && p('test2') && e('T:测试2'); // 获取项目集2下所有团队成员真实姓名 +r($teams2) && p('user2') && e('U:测试2'); // 获取项目集2下所有团队成员真实姓名 From 0875144941ec683efc69733d42298a8c5e8f425c Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Fri, 6 Jan 2023 10:05:48 +0800 Subject: [PATCH 02/10] * Add test case. --- test/class/program.class.php | 13 +++++++++ test/model/program/accessdenied.php | 21 ++++++++++++++ test/model/program/savestate.php | 44 +++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 test/model/program/accessdenied.php create mode 100644 test/model/program/savestate.php diff --git a/test/class/program.class.php b/test/class/program.class.php index 8e5592024d..3078f1ed6a 100644 --- a/test/class/program.class.php +++ b/test/class/program.class.php @@ -374,4 +374,17 @@ class programTest { return $this->program->getStakeholders($programID, $orderBy); } + + /** + * Test save state. + * + * @param int $programID + * @param array $programs + * @access public + * @return array + */ + public function saveStateTest($programID = 0, $programs = array()) + { + return $this->program->saveState($programID, $programs); + } } diff --git a/test/model/program/accessdenied.php b/test/model/program/accessdenied.php new file mode 100644 index 0000000000..414a058e13 --- /dev/null +++ b/test/model/program/accessdenied.php @@ -0,0 +1,21 @@ +#!/usr/bin/env php +> html + +*/ + +global $tester; +$tester->loadModel('program'); +ob_start(); +$tester->program->accessDenied(); +$result = ob_get_clean(); + +r(substr($result, 1, 4)) && p() && e('html'); // 权限不足跳转 diff --git a/test/model/program/savestate.php b/test/model/program/savestate.php new file mode 100644 index 0000000000..b4aa6666df --- /dev/null +++ b/test/model/program/savestate.php @@ -0,0 +1,44 @@ +#!/usr/bin/env php +id->range('1,2'); +$program->name->range('父项目集1,父项目集2'); +$program->type->range('program'); +$program->budget->range('900000,899900'); +$program->path->range('1,2')->prefix(',')->postfix(','); +$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD'); +$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD'); +$program->gen(2); + +su('admin'); +/** + +title=测试 programModel::saveState(); +cid=1 +pid=1 + +项目集存在且正常访问 >> html +项目集不存在 >> 0 +项目集存在,但不在可以查看的项目集列表 >> 1 +项目集存在,且在可以查看的项目集列表 >> 2 +项目集不存在,且有可以查看的项目集列表 >> 2 + +*/ + +$programTester = new programTest(); +ob_start(); +$programTester->saveStateTest(1); +$program1 = ob_get_clean(); +$program2 = $programTester->saveStateTest(0); +$program3 = $programTester->saveStateTest(1, array(1 => '')); +$program4 = $programTester->saveStateTest(3, array(2 => '')); +$program5 = $programTester->saveStateTest(0, array(2 => '')); + +r(substr($program1, 1, 4)) && p() && e('html'); // 项目集存在且正常访问 +r($program2) && p() && e('0'); // 项目集不存在 +r($program3) && p() && e('1'); // 项目集存在,但不在可以查看的项目集列表 +r($program4) && p() && e('2'); // 项目集存在,且在可以查看的项目集列表 +r($program5) && p() && e('2'); // 项目集不存在,且有可以查看的项目集列表 From 60fd9bcfa45e61213be66584a0cf5661c95165c1 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Fri, 6 Jan 2023 10:21:53 +0800 Subject: [PATCH 03/10] * Add test case. --- test/class/program.class.php | 15 +++++++++++ test/model/program/buildoperatemenu.php | 33 +++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 test/model/program/buildoperatemenu.php diff --git a/test/class/program.class.php b/test/class/program.class.php index 3078f1ed6a..08a42f30e5 100644 --- a/test/class/program.class.php +++ b/test/class/program.class.php @@ -387,4 +387,19 @@ class programTest { return $this->program->saveState($programID, $programs); } + + /** + * Test build operate menu. + * + * @param int $programID + * @access public + * @return void + */ + public function buildOperateMenuTest($programID = 0) + { + $program = $this->program->getByID($programID); + if(empty($program)) return '0'; + + return $this->program->buildOperateMenu($program); + } } diff --git a/test/model/program/buildoperatemenu.php b/test/model/program/buildoperatemenu.php new file mode 100644 index 0000000000..a7fcc437cb --- /dev/null +++ b/test/model/program/buildoperatemenu.php @@ -0,0 +1,33 @@ +#!/usr/bin/env php +id->range('1,2'); +$program->name->range('父项目集1,父项目集2'); +$program->type->range('program'); +$program->budget->range('900000,899900'); +$program->path->range('1,2')->prefix(',')->postfix(','); +$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD'); +$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD'); +$program->gen(2); + +su('admin'); +/** + +title=测试 programModel::saveState(); +cid=1 +pid=1 + +项目集不存在 >> 0 +项目集存在 >> div + +*/ + +$programTester = new programTest(); +$menus1 = $programTester->buildOperateMenuTest(0); +$menus2 = $programTester->buildOperateMenuTest(1); + +r($menus1) && p() && e('0'); // 项目集不存在 +r(substr($menus2, 1, 3)) && p() && e('div'); // 项目集存在 From 09e6d2eefd6e6628b1994f6bebb1be71eb10de7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=94=B0=E6=B7=91=E6=9D=B0?= Date: Fri, 6 Jan 2023 10:32:59 +0800 Subject: [PATCH 04/10] * Add case of program model. --- test/class/program.class.php | 16 +++++++++ test/model/program/getlistbysearch.php | 49 ++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 test/model/program/getlistbysearch.php diff --git a/test/class/program.class.php b/test/class/program.class.php index 3078f1ed6a..bc3d83a403 100644 --- a/test/class/program.class.php +++ b/test/class/program.class.php @@ -15,6 +15,22 @@ class programTest $this->program = $tester->loadModel('program'); } + /** + * Get list by search. + * + * @param string $orderBy + * @param int $queryID + * @param string $sql + * @access public + * @return array + */ + public function getListBySearchTest($orderBy = 'id_asc', $queryID = 0, $sql = '') + { + if(!empty($sql)) $_SESSION['programQuery'] = $sql; + + return $this->program->getListBySearch($orderBy, $queryID); + } + /** * Get pairs. * diff --git a/test/model/program/getlistbysearch.php b/test/model/program/getlistbysearch.php new file mode 100644 index 0000000000..a5e03c3ea9 --- /dev/null +++ b/test/model/program/getlistbysearch.php @@ -0,0 +1,49 @@ +#!/usr/bin/env php +gen(5); +su('admin'); + +$program = zdTable('project'); +$program->id->range('1-20'); +$program->name->range('1-20')->prefix('项目集'); +$program->type->range('program'); +$program->path->range('1-20')->prefix(',')->postfix(','); +$program->grade->range('1'); +$program->status->range('wait,doing,suspended,closed'); +$program->openedBy->range('admin,user1'); +$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD'); +$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD'); +$program->gen(20); + +$query = zdTable('userquery'); +$query->id->range('1'); +$query->account->range('admin'); +$query->module->range('program'); +$query->title->range('搜索条件1'); +$query->form->range('`a:41:{s:9:"fieldname";s:0:"";s:11:"fieldstatus";s:0:"";s:9:"fielddesc";s:0:"";s:7:"fieldPM";s:0:"";s:15:"fieldopenedDate";s:0:"";s:10:"fieldbegin";s:0:"";s:8:"fieldend";s:0:"";s:13:"fieldopenedBy";s:0:"";s:19:"fieldlastEditedDate";s:0:"";s:14:"fieldrealBegan";s:0:"";s:12:"fieldrealEnd";s:0:"";s:15:"fieldclosedDate";s:0:"";s:6:"andOr1";s:3:"AND";s:6:"field1";s:4:"name";s:9:"operator1";s:7:"include";s:6:"value1";s:9:"项目集";s:6:"andOr2";s:3:"and";s:6:"field2";s:6:"status";s:9:"operator2";s:1:"=";s:6:"value2";s:0:"";s:6:"andOr3";s:3:"and";s:6:"field3";s:4:"desc";s:9:"operator3";s:7:"include";s:6:"value3";s:0:"";s:10:"groupAndOr";s:3:"and";s:6:"andOr4";s:3:"AND";s:6:"field4";s:6:"status";s:9:"operator4";s:1:"=";s:6:"value4";s:4:"wait";s:6:"andOr5";s:3:"and";s:6:"field5";s:10:"openedDate";s:9:"operator5";s:1:"=";s:6:"value5";s:0:"";s:6:"andOr6";s:3:"and";s:6:"field6";s:5:"begin";s:9:"operator6";s:1:"=";s:6:"value6";s:0:"";s:6:"module";s:7:"program";s:9:"actionURL";s:56:"/program-browse-bySearch-order_asc-0-10-1-myQueryID.html";s:10:"groupItems";s:1:"3";s:8:"formType";s:4:"lite";}`'); +$query->sql->range("`(( 1 AND `name` LIKE '%项目集%' ) AND ( 1 AND `status` = 'wait' ))`"); +$query->gen(1); + +/** + +title=测试 programModel::getListBySearch(); +cid=1 +pid=1 + +按照id倒序查看,所有名称包含项目集并且未开始的第一个项目集 >> 项目集17 +按照id正序查看,所有名称包含项目集并且进行中的第一个项目集 >> 项目集1 +按照id正序查看,符合搜索条件id=1,的第一个项目集 >> 项目集1 + +*/ + +global $tester; +$programTester = new programTest(); + +$sql1 = "(( 1 AND `name` LIKE '%项目集%' ) AND ( 1 AND `status` = 'wait' ))"; +$sql2 = "(( 1 AND `name` LIKE '%项目集%' ) AND ( 1 AND `status` = 'doing' ))"; + +r($programTester->getListBySearchTest('id_desc', 0, $sql)) && p('17:name') && e('项目集17'); // 按照id倒序查看,所有名称包含项目集并且未开始的第一个项目集 +r($programTester->getListBySearchTest('id_asc', 0, $sql)) && p('1:name') && e('项目集1'); // 按照id正序查看,所有名称包含项目集并且进行中的第一个项目集 +r($programTester->getListBySearchTest('id_asc', 1)) && p('1:name') && e('项目集1'); // 按照id正序查看,符合搜索条件id=1,的第一个项目集 From 5701d269594f3f1ebf5aa8d3cac0d4598c109118 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Fri, 6 Jan 2023 10:38:13 +0800 Subject: [PATCH 05/10] * Add test case. --- test/class/program.class.php | 18 ++++++++++++++ test/model/program/buildoperatemenu.php | 2 +- test/model/program/setmenu.php | 32 +++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 test/model/program/setmenu.php diff --git a/test/class/program.class.php b/test/class/program.class.php index 08a42f30e5..4e2d23983b 100644 --- a/test/class/program.class.php +++ b/test/class/program.class.php @@ -402,4 +402,22 @@ class programTest return $this->program->buildOperateMenu($program); } + + /** + * Test set menu. + * + * @param int $programID + * @access public + * @return void + */ + public function setMenuTest($programID = 0) + { + $program = $this->program->getByID($programID); + if(empty($program)) return '0'; + + $this->program->setMenu($programID); + + global $lang; + return strip_tags($lang->switcherMenu); + } } diff --git a/test/model/program/buildoperatemenu.php b/test/model/program/buildoperatemenu.php index a7fcc437cb..687b260919 100644 --- a/test/model/program/buildoperatemenu.php +++ b/test/model/program/buildoperatemenu.php @@ -16,7 +16,7 @@ $program->gen(2); su('admin'); /** -title=测试 programModel::saveState(); +title=测试 programModel::buildOperateMenu(); cid=1 pid=1 diff --git a/test/model/program/setmenu.php b/test/model/program/setmenu.php new file mode 100644 index 0000000000..af0757ba5e --- /dev/null +++ b/test/model/program/setmenu.php @@ -0,0 +1,32 @@ +#!/usr/bin/env php +id->range('1,2'); +$program->name->range('项目集1,项目集2'); +$program->type->range('program'); +$program->budget->range('900000,899900'); +$program->path->range('1,2')->prefix(',')->postfix(','); +$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD'); +$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD'); +$program->gen(2); + +su('admin'); + +/** + +title=测试 programModel::setMenu(); +cid=1 +pid=1 + +项目集存在的情况 >> 项目集1 +项目集不存在的情况 >> 0 + +*/ + +$programTester = new programTest(); + +r($programTester->setMenuTest(1)) && p() && e('项目集1'); // 项目集存在的情况 +r($programTester->setMenuTest(3)) && p() && e('0'); // 项目集不存在的情况 From 678cb12e20924ef9e04d252c6e904fc374efff80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=94=B0=E6=B7=91=E6=9D=B0?= Date: Fri, 6 Jan 2023 10:44:25 +0800 Subject: [PATCH 06/10] * Add case for program model. --- test/class/program.class.php | 12 +++++++++++ test/model/program/getswitcher.php | 33 ++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 test/model/program/getswitcher.php diff --git a/test/class/program.class.php b/test/class/program.class.php index adc5d55dfa..2aa0923e60 100644 --- a/test/class/program.class.php +++ b/test/class/program.class.php @@ -15,6 +15,18 @@ class programTest $this->program = $tester->loadModel('program'); } + /** + * Get switcher. + * + * @param int $programID + * @access public + * @return string + */ + public function getSwitcherTest($programID = 0) + { + return $this->program->getSwitcher($programID); + } + /** * Get list by search. * diff --git a/test/model/program/getswitcher.php b/test/model/program/getswitcher.php new file mode 100644 index 0000000000..73ec7ac6dd --- /dev/null +++ b/test/model/program/getswitcher.php @@ -0,0 +1,33 @@ +#!/usr/bin/env php +id->range('1,2'); +$program->name->range('父项目集1,父项目集2'); +$program->type->range('program'); +$program->budget->range('900000,899900'); +$program->path->range('1,2')->prefix(',')->postfix(','); +$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD'); +$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD'); +$program->gen(2); + +su('admin'); +/** + +title=测试 programModel::saveState(); +cid=1 +pid=1 + +查看传入空项目集返回的下拉菜单 >> 所有项目集 +查看传入id=1的项目集返回的下拉菜单 >> 父项目集1 + +*/ + +$programTester = new programTest(); +$switcher1 = $programTester->getSwitcherTest(0); +$switcher2 = $programTester->getSwitcherTest(1); + +r(strip_tags($switcher1)) && p() && e('所有项目集'); // 查看传入空项目集返回的下拉菜单 +r(strip_tags($switcher2)) && p() && e('父项目集1'); // 查看传入id=1的项目集返回的下拉菜单 From d1072d16a4c37d5828b13c27463df5b4c42ffe1e Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Fri, 6 Jan 2023 10:46:37 +0800 Subject: [PATCH 07/10] * Add test case. --- test/model/program/gettopbypath.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 test/model/program/gettopbypath.php diff --git a/test/model/program/gettopbypath.php b/test/model/program/gettopbypath.php new file mode 100644 index 0000000000..56e6e4b382 --- /dev/null +++ b/test/model/program/gettopbypath.php @@ -0,0 +1,20 @@ +#!/usr/bin/env php +> 1 +获取子项目集的顶级父项目集 >> 2 + +*/ + +global $tester; +$tester->loadModel('program'); + +r($tester->program->getTopByPath(',1,')) && p() && e('1'); // 获取顶级项目集的顶级id +r($tester->program->getTopByPath(',2,3,')) && p() && e('2'); // 获取子项目集的顶级父项目集 From 08167f31935e55c9376822a8eb90495253108646 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Fri, 6 Jan 2023 10:56:08 +0800 Subject: [PATCH 08/10] * Add test case. --- test/model/program/getlink.php | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 test/model/program/getlink.php diff --git a/test/model/program/getlink.php b/test/model/program/getlink.php new file mode 100644 index 0000000000..5d9fcb3500 --- /dev/null +++ b/test/model/program/getlink.php @@ -0,0 +1,26 @@ +#!/usr/bin/env php +> project +非项目集页面跳转项目集列表 >> all + +*/ + +global $tester; +$tester->loadModel('program'); +$link1 = $tester->program->getLink('program', 'project', 1); +$result = ''; +if(strpos($link1, 'project')) $result = 'project'; + +r($result) && p() && e('project'); // 项目集页面跳转项目集项目列表 + +$link2 = $tester->program->getLink('program', 'project', 1, '', 'product'); +if(strpos($link2, 'all')) $result = 'all'; +r($result) && p() && e('all'); // 非项目集页面跳转项目集列表 From 65f3c96c60bbeddc875859c32f0847064953a02f Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Fri, 6 Jan 2023 10:57:31 +0800 Subject: [PATCH 09/10] * Adjust code. --- test/class/program.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/class/program.class.php b/test/class/program.class.php index 189ed9f88c..2871829ce6 100644 --- a/test/class/program.class.php +++ b/test/class/program.class.php @@ -421,7 +421,7 @@ class programTest * * @param int $programID * @access public - * @return void + * @return string */ public function buildOperateMenuTest($programID = 0) { @@ -436,7 +436,7 @@ class programTest * * @param int $programID * @access public - * @return void + * @return string */ public function setMenuTest($programID = 0) { From bb439b3c0cdf206d3fa7a5f0601480e59de41752 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Fri, 6 Jan 2023 11:01:49 +0800 Subject: [PATCH 10/10] * Adjust code. --- test/model/program/getlink.php | 1 - test/model/program/getlistbysearch.php | 2 +- test/model/program/savestate.php | 8 ++++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/test/model/program/getlink.php b/test/model/program/getlink.php index 5d9fcb3500..24b4eba530 100644 --- a/test/model/program/getlink.php +++ b/test/model/program/getlink.php @@ -18,7 +18,6 @@ $tester->loadModel('program'); $link1 = $tester->program->getLink('program', 'project', 1); $result = ''; if(strpos($link1, 'project')) $result = 'project'; - r($result) && p() && e('project'); // 项目集页面跳转项目集项目列表 $link2 = $tester->program->getLink('program', 'project', 1, '', 'product'); diff --git a/test/model/program/getlistbysearch.php b/test/model/program/getlistbysearch.php index a5e03c3ea9..8afe79a575 100644 --- a/test/model/program/getlistbysearch.php +++ b/test/model/program/getlistbysearch.php @@ -34,7 +34,7 @@ pid=1 按照id倒序查看,所有名称包含项目集并且未开始的第一个项目集 >> 项目集17 按照id正序查看,所有名称包含项目集并且进行中的第一个项目集 >> 项目集1 -按照id正序查看,符合搜索条件id=1,的第一个项目集 >> 项目集1 +按照id正序查看,符合搜索条件id=1,的第一个项目集 >> 项目集1 */ diff --git a/test/model/program/savestate.php b/test/model/program/savestate.php index b4aa6666df..37528417a7 100644 --- a/test/model/program/savestate.php +++ b/test/model/program/savestate.php @@ -38,7 +38,7 @@ $program4 = $programTester->saveStateTest(3, array(2 => '')); $program5 = $programTester->saveStateTest(0, array(2 => '')); r(substr($program1, 1, 4)) && p() && e('html'); // 项目集存在且正常访问 -r($program2) && p() && e('0'); // 项目集不存在 -r($program3) && p() && e('1'); // 项目集存在,但不在可以查看的项目集列表 -r($program4) && p() && e('2'); // 项目集存在,且在可以查看的项目集列表 -r($program5) && p() && e('2'); // 项目集不存在,且有可以查看的项目集列表 +r($program2) && p() && e('0'); // 项目集不存在 +r($program3) && p() && e('1'); // 项目集存在,但不在可以查看的项目集列表 +r($program4) && p() && e('2'); // 项目集存在,且在可以查看的项目集列表 +r($program5) && p() && e('2'); // 项目集不存在,且有可以查看的项目集列表