From 8405f1cb42ab9dce541ec00e9a35596e52d716ad Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 13:14:18 +0800 Subject: [PATCH 01/18] * [unittest] Fix dev getModuleExtPath method test. --- module/dev/test/model/getmoduleextpath.php | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/module/dev/test/model/getmoduleextpath.php b/module/dev/test/model/getmoduleextpath.php index 1639420a9b..cd9edcfc31 100644 --- a/module/dev/test/model/getmoduleextpath.php +++ b/module/dev/test/model/getmoduleextpath.php @@ -8,12 +8,27 @@ title=测试 devModel::getModuleExtPath(); cid=1 pid=1 -获取扩展的模块路径 >> xuan +- 获取开源版扩展的模块路径 @xuan +- 检查 xuan 扩展路径 @1 +- 获取旗舰版扩展的模块路径 @common +- 检查旗舰版 common 扩展路径 @1 +- 检查 IPD 版 common 扩展路径 @1 */ global $tester; $tester->loadModel('dev'); -$extPath = $tester->dev->getModuleExtPath(); -r(key($extPath)) && p() && e('xuan'); // 获取扩展的模块路径 +$tester->dev->config->edition = 'open'; +$extPath = $tester->dev->getModuleExtPath(); +r(key($extPath)) && p() && e('xuan'); // 获取开源版扩展的模块路径 +r(strpos($extPath['xuan'], DS . 'extension' . DS . 'xuan' . DS) !== false) && p() && e('1'); // 检查 xuan 扩展路径 + +$tester->dev->config->edition = 'max'; +$extPath = $tester->dev->getModuleExtPath(); +r(key($extPath)) && p() && e('common'); // 获取旗舰版扩展的模块路径 +r(strpos($extPath['common'], DS . 'extension' . DS . 'max' . DS) !== false) && p() && e('1'); // 检查旗舰版 common 扩展路径 + +$tester->dev->config->edition = 'ipd'; +$extPath = $tester->dev->getModuleExtPath(); +r(strpos($extPath['common'], DS . 'extension' . DS . 'ipd' . DS) !== false) && p() && e('1'); // 检查 IPD 版 common 扩展路径 From a438390fb1535a7f729cb3613ec66a77eb8dc012 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:07:49 +0800 Subject: [PATCH 02/18] * [unittest] Fix editor addLink4Dir method test. --- module/editor/test/lib/editor.unittest.class.php | 8 ++++---- module/editor/test/model/addlink4dir.php | 11 +++++++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/module/editor/test/lib/editor.unittest.class.php b/module/editor/test/lib/editor.unittest.class.php index f91c60bcbf..06d9726b08 100644 --- a/module/editor/test/lib/editor.unittest.class.php +++ b/module/editor/test/lib/editor.unittest.class.php @@ -129,17 +129,17 @@ class editorTest $link = $this->objectModel->addLink4Dir($extModelPath); $result .= (strpos($link->actions['items'][0]['data-url'], 'newExtend') === false ? 0 : 1) . ','; - $extJSPath = $extensionPath . 'js'; + $extJSPath = $extensionPath . 'js/create'; $link = $this->objectModel->addLink4Dir($extJSPath); $result .= (strpos($link->actions['items'][0]['data-url'], 'newJS') === false ? 0 : 1) . ','; - $extCSSPath = $extensionPath . 'css'; + $extCSSPath = $extensionPath . 'css/create'; $link = $this->objectModel->addLink4Dir($extCSSPath); $result .= (strpos($link->actions['items'][0]['data-url'], 'newCSS') === false ? 0 : 1) . ','; - $extLangPath = $extensionPath . 'lang'; + $extLangPath = $extensionPath . 'lang/zh-cn'; $link = $this->objectModel->addLink4Dir($extLangPath); - $result .= (strpos($link->actions['items'][0]['data-url'], 'lang') === false ? 0 : 1); + $result .= (strpos($link->actions['items'][0]['data-url'], 'newExtend') === false ? 0 : 1); return $result; } diff --git a/module/editor/test/model/addlink4dir.php b/module/editor/test/model/addlink4dir.php index 20aa083143..a583c41eaa 100644 --- a/module/editor/test/model/addlink4dir.php +++ b/module/editor/test/model/addlink4dir.php @@ -10,9 +10,16 @@ title=测试 editorModel::addLink4Dir(); cid=1 pid=1 -添加todo模块的链接 >> 1,1,1,1,1,1,1,1 +- 开源版添加todo模块的链接 @1,1,1,1,1,1,1,1 +- 收费版添加todo模块的链接 @1,1,1,1,1,1,1,1 */ +global $config; $editor = new editorTest(); -r($editor->addLink4DirTest()) && p() && e('1,1,1,1,1,1,1,1'); //添加todo模块的链接 + +$config->edition = 'open'; +r($editor->addLink4DirTest()) && p() && e('1,1,1,1,1,1,1,1'); //开源版添加todo模块的链接 + +$config->edition = 'max'; +r($editor->addLink4DirTest()) && p() && e('1,1,1,1,1,1,1,1'); //收费版添加todo模块的链接 From 3f42478f6a0f117711d39519433e121b6ea674a8 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:14:23 +0800 Subject: [PATCH 03/18] * [unittest] Fix editor addLink4File method test. --- module/editor/test/lib/editor.unittest.class.php | 12 ++++++------ module/editor/test/model/addlink4file.php | 12 ++++++++++-- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/module/editor/test/lib/editor.unittest.class.php b/module/editor/test/lib/editor.unittest.class.php index 06d9726b08..34749cd42e 100644 --- a/module/editor/test/lib/editor.unittest.class.php +++ b/module/editor/test/lib/editor.unittest.class.php @@ -181,27 +181,27 @@ class editorTest $extensionPath = $extensionRoot . $edition . DS . 'todo' . DS . 'ext' . DS; $extControlPath = $extensionPath . 'control' . DS . 'create.php'; $link = $this->objectModel->addLink4File($extControlPath, 'create.php'); - $result .= ((str_contains($link->actions['items'][1]['data-url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ','; + $result .= ((str_contains($link->actions['items'][1]['url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ','; $extModelPath = $extensionPath . 'model' . DS . 'zentaobiz.class.php'; $link = $this->objectModel->addLink4File($extModelPath, 'zentaobiz.class.php'); - $result .= ((str_contains($link->actions['items'][1]['data-url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ','; + $result .= ((str_contains($link->actions['items'][1]['url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ','; $extJSPath = $extensionPath . 'js' . DS . 'create' . DS . 'zentaobiz.js'; $link = $this->objectModel->addLink4File($extJSPath, 'zentaobiz.js'); - $result .= ((str_contains($link->actions['items'][1]['data-url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ','; + $result .= ((str_contains($link->actions['items'][1]['url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ','; $extCSSPath = $extensionPath . 'css' . DS . 'create' . DS . 'zentaobiz.css'; $link = $this->objectModel->addLink4File($extCSSPath, 'zentaobiz.css'); - $result .= ((str_contains($link->actions['items'][1]['data-url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ','; + $result .= ((str_contains($link->actions['items'][1]['url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ','; $extLangPath = $extensionPath . 'lang' . DS . 'zh-cn' . DS . 'zentaobiz.php'; $link = $this->objectModel->addLink4File($extLangPath, 'zentaobiz.php'); - $result .= ((str_contains($link->actions['items'][1]['data-url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ','; + $result .= ((str_contains($link->actions['items'][1]['url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ','; $extConfigPath = $extensionPath . 'config' . DS . 'zentaobiz.php'; $link = $this->objectModel->addLink4File($extConfigPath, 'zentaobiz.php'); - $result .= ((str_contains($link->actions['items'][1]['data-url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0); + $result .= ((str_contains($link->actions['items'][1]['url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0); return $result; } diff --git a/module/editor/test/model/addlink4file.php b/module/editor/test/model/addlink4file.php index 9a4413c11c..e279298b2e 100644 --- a/module/editor/test/model/addlink4file.php +++ b/module/editor/test/model/addlink4file.php @@ -10,9 +10,17 @@ title=测试 editorModel::addLink4File(); cid=1 pid=1 -添加todo模块的链接 >> 1,1,1,1,1,1,1,1,1,1,1 +- 开源版添加todo模块的链接 @1,1,1,1,1,1,1,1,1,1,1 +- 收费版添加todo模块的链接 @1,1,1,1,1,1,1,1,1,1,1 */ +global $config; + $editor = new editorTest(); -r($editor->addLink4FileTest()) && p() && e('1,1,1,1,1,1,1,1,1,1,1'); //添加todo模块的链接 + +$config->edition = 'open'; +r($editor->addLink4FileTest()) && p() && e('1,1,1,1,1,1,1,1,1,1,1'); //开源版添加todo模块的链接 + +$config->edition = 'max'; +r($editor->addLink4FileTest()) && p() && e('1,1,1,1,1,1,1,1,1,1,1'); //收费版添加todo模块的链接 From 12a9b33c839227de416657d59c4cd0a4053bf7e4 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:17:45 +0800 Subject: [PATCH 04/18] * [unittest] Fix execution activate expect. --- module/execution/test/model/activate.php | 26 ++++++++++++++++-------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/module/execution/test/model/activate.php b/module/execution/test/model/activate.php index d9cb61fc60..4cdf22c1e4 100755 --- a/module/execution/test/model/activate.php +++ b/module/execution/test/model/activate.php @@ -20,15 +20,23 @@ $execution->gen(5); /** title=测试executionModel->activateTest(); -cid=1 -pid=1 +cid=0 -敏捷执行激活 >> status,suspended,doing -瀑布执行激活 >> status,suspended,doing -看板执行激活 >> status,suspended,doing -修改激活时间 >> begin -修改顺延 >> begin -子瀑布激活获取父瀑布状态 >> doing +- 敏捷执行激活 + - 第0条的field属性 @status + - 第0条的old属性 @suspended + - 第0条的new属性 @wait +- 瀑布执行激活 + - 第0条的field属性 @status + - 第0条的old属性 @suspended + - 第0条的new属性 @wait +- 看板执行激活 + - 第0条的field属性 @status + - 第0条的old属性 @suspended + - 第0条的new属性 @wait +- 修改激活时间第1条的field属性 @begin +- 修改顺延第1条的field属性 @begin +- 子瀑布激活获取父瀑布状态属性status @wait */ @@ -39,7 +47,7 @@ $readjustTime = array(); $executionTester = new executionTest(); r($executionTester->activateTest($executionIDList[0])) && p('0:field,old,new') && e('status,suspended,wait'); // 敏捷执行激活 r($executionTester->activateTest($executionIDList[1])) && p('0:field,old,new') && e('status,suspended,wait'); // 瀑布执行激活 -r($executionTester->activateTest($executionIDList[2])) && p('0:field,old,new') && e('status,suspended,wait'); // 看板执行激活 +r($executionTester->activateTest($executionIDList[2])) && p('0:field,old,new') && e('status,suspended,wait'); // 看板执行激活 r($executionTester->activateTest($executionIDList[3],$readjustTime)) && p('1:field') && e('begin'); // 修改激活时间 r($executionTester->activateTest($executionIDList[4],$readjustTask)) && p('1:field') && e('begin'); // 修改顺延 r($executionTester->activateTest($executionIDList[3], array(), true)) && p('status') && e('wait'); // 子瀑布激活获取父瀑布状态 From 4e02408b5260e136bfd19e67a3ddf69fa0764ac0 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:41:34 +0800 Subject: [PATCH 05/18] * [unittest] Fix execution create expect. --- module/execution/test/model/create.php | 31 ++++++++++++++------------ 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/module/execution/test/model/create.php b/module/execution/test/model/create.php index f6b719566e..25b8c5ed9b 100755 --- a/module/execution/test/model/create.php +++ b/module/execution/test/model/create.php @@ -22,21 +22,24 @@ $project->gen(4); /** title=测试executionModel->create(); -cid=1 -pid=1 +cid=0 -测试创建敏捷私有执行 >> 新增私有敏捷执行,sprint -测试创建敏捷公开执行 >> 新增公开敏捷执行code,sprint -测试创建瀑布私有执行 >> 新增私有瀑布执行,stage -测试创建瀑布公开执行 >> 新增公开瀑布执行code,stage -测试创建看板私有执行 >> 新增私有看板执行,kanban -测试创建看板公开执行 >> 新增公开看板执行code,kanban -测试创建迭代团队分配 >> user1,user2,user3,user4 -测试不输入项目 >> 所属项目不能为空。 -测试不输入执行名称 >> 『执行名称』不能为空。 -测试不输入执行代号 >> 『执行代号』不能为空。 -测试一样的执行名称 >> 『执行名称』已经有『新增私有敏捷执行』这条记录了。 -测试一样的执行代号 >> 『执行代号』已经有『新增私有敏捷执行code』这条记录了。 +- 测试创建敏捷私有执行 + - 属性name @新增私有敏捷执行 + - 属性type @sprint +- 测试创建敏捷公开执行 + - 属性code @新增公开敏捷执行code + - 属性type @sprint +- 测试创建迭代团队分配 + - 属性PO @user1 + - 属性QD @user2 + - 属性PM @user3 + - 属性RD @user4 +- 测试不输入项目第project条的0属性 @『所属项目』不能为空。 +- 测试不输入执行名称第name条的0属性 @『项目名称』不能为空。 +- 测试不输入执行代号第code条的0属性 @『项目代号』不能为空。 +- 测试一样的执行名称第name条的0属性 @『项目名称』已经有『新增私有敏捷执行』这条记录了。如果您确定该记录已删除,请到后台-系统设置-回收站还原。 +- 测试一样的执行代号第code条的0属性 @『项目代号』已经有『新增私有敏捷执行code』这条记录了。如果您确定该记录已删除,请到后台-系统设置-回收站还原。 */ From 333bde718282f6e89df14cd724671228daa9a469 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:41:54 +0800 Subject: [PATCH 06/18] * [unittest] Fix execution fixorder expect. --- module/execution/test/model/fixorder.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/module/execution/test/model/fixorder.php b/module/execution/test/model/fixorder.php index a53704b15f..e740dfd169 100755 --- a/module/execution/test/model/fixorder.php +++ b/module/execution/test/model/fixorder.php @@ -23,6 +23,8 @@ title=测试executionModel->fixOrderTest(); timeout=0 cid=1 +- 重置order第3条的order属性 @15 + */ $executionTester = new executionTest(); From 7d5205ad9fa772defd2ff598e243ee4c66bc603e Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:42:14 +0800 Subject: [PATCH 07/18] * [unittest] Fix execution getbyid.php expect. --- module/execution/test/model/getbyid.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/module/execution/test/model/getbyid.php b/module/execution/test/model/getbyid.php index f713193a62..72bd0f7bc6 100755 --- a/module/execution/test/model/getbyid.php +++ b/module/execution/test/model/getbyid.php @@ -22,6 +22,10 @@ title=executionModel->getByID(); timeout=0 cid=1 +- 根据executionID查找任务详情属性name @迭代1 +- 根据executionID查找任务详情并替换图片链接属性name @迭代1 +- 查询存在的执行 @0 + */ $execution = new executionTest(); From 7ec37fbc13e5f7542db1afde04a3986e2ee7175f Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:42:32 +0800 Subject: [PATCH 08/18] * [unittest] Fix execution getbyidproject expect. --- module/execution/test/model/getbyproject.php | 60 ++++++++++++++------ 1 file changed, 44 insertions(+), 16 deletions(-) diff --git a/module/execution/test/model/getbyproject.php b/module/execution/test/model/getbyproject.php index c0f9363bdb..44bbca6bcf 100755 --- a/module/execution/test/model/getbyproject.php +++ b/module/execution/test/model/getbyproject.php @@ -28,6 +28,34 @@ title=测试executionModel->getByProjectTest(); timeout=0 cid=1 +- 敏捷项目执行列表查询 + - 第5条的project属性 @2 + - 第5条的name属性 @迭代1 + - 第5条的type属性 @sprint +- 瀑布项目执行列表查询 + - 第6条的project属性 @3 + - 第6条的name属性 @产品1/阶段1 + - 第6条的type属性 @stage +- 看板项目执行列表查询 + - 第7条的project属性 @4 + - 第7条的name属性 @看板1 + - 第7条的type属性 @kanban +- wait执行列表查询 @0 +- doing执行列表查询 + - 第7条的status属性 @doing + - 第7条的name属性 @看板1 +- 执行列表2条查询 @2 +- 执行列表10条查询 @3 +- 敏捷项目执行键值对查询属性5 @项目1/迭代1 +- 瀑布项目执行键值对查询属性6 @项目2/产品1/阶段1 +- 看板项目执行键值对查询属性7 @项目3/看板1 +- wait执行键值对查询 @0 +- doing执行键值对查询属性7 @项目3/看板1 +- 执行键值对2条查询 @2 +- 执行键值对10条查询 @3 +- 测试获取开发阶段 @0 +- 测试获取开发阶段或id=7的执行 @1 + */ $projectIdList = array(0, 2, 3, 4); @@ -39,19 +67,19 @@ $appendIdList = array(0, 7); $count = array(0, 1); $executionTester = new executionTest(); -r($executionTester->getByProjectTest($projectIdList[1], $status[0], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p('5:project,name,type') && e('2,迭代1,sprint'); // 敏捷项目执行列表查询 -r($executionTester->getByProjectTest($projectIdList[2], $status[0], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p('6:project,name,type') && e('3,阶段1,stage'); // 瀑布项目执行列表查询 -r($executionTester->getByProjectTest($projectIdList[3], $status[0], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p('7:project,name,type') && e('4,看板1,kanban'); // 看板项目执行列表查询 -r($executionTester->getByProjectTest($projectIdList[0], $status[1], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p() && e('0'); // wait执行列表查询 -r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p('7:status,name') && e('doing,看板1'); // doing执行列表查询 -r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[1], $pairsList[0], $develList[0], $appendIdList[0], $count[1])) && p() && e('2'); // 执行列表2条查询 -r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[2], $pairsList[0], $develList[0], $appendIdList[0], $count[1])) && p() && e('3'); // 执行列表10条查询 -r($executionTester->getByProjectTest($projectIdList[1], $status[0], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p('5') && e('项目1/迭代1'); // 敏捷项目执行键值对查询 -r($executionTester->getByProjectTest($projectIdList[2], $status[0], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p('6') && e('项目2/阶段1'); // 瀑布项目执行键值对查询 -r($executionTester->getByProjectTest($projectIdList[3], $status[0], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p('7') && e('项目3/看板1'); // 看板项目执行键值对查询 -r($executionTester->getByProjectTest($projectIdList[0], $status[1], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p() && e('0'); // wait执行键值对查询 -r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p('7') && e('项目3/看板1'); // doing执行键值对查询 -r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[1], $pairsList[1], $develList[0], $appendIdList[0], $count[1])) && p() && e('2'); // 执行键值对2条查询 -r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[2], $pairsList[1], $develList[0], $appendIdList[0], $count[1])) && p() && e('3'); // 执行键值对10条查询 -r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[2], $pairsList[1], $develList[1], $appendIdList[0], $count[1])) && p() && e('0'); // 测试获取开发阶段 -r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[2], $pairsList[1], $develList[1], $appendIdList[1], $count[1])) && p() && e('1'); // 测试获取开发阶段或id=7的执行 +r($executionTester->getByProjectTest($projectIdList[1], $status[0], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p('5:project,name,type') && e('2,迭代1,sprint'); // 敏捷项目执行列表查询 +r($executionTester->getByProjectTest($projectIdList[2], $status[0], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p('6:project,name,type') && e('3,产品1/阶段1,stage'); // 瀑布项目执行列表查询 +r($executionTester->getByProjectTest($projectIdList[3], $status[0], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p('7:project,name,type') && e('4,看板1,kanban'); // 看板项目执行列表查询 +r($executionTester->getByProjectTest($projectIdList[0], $status[1], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p() && e('0'); // wait执行列表查询 +r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p('7:status,name') && e('doing,看板1'); // doing执行列表查询 +r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[1], $pairsList[0], $develList[0], $appendIdList[0], $count[1])) && p() && e('2'); // 执行列表2条查询 +r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[2], $pairsList[0], $develList[0], $appendIdList[0], $count[1])) && p() && e('3'); // 执行列表10条查询 +r($executionTester->getByProjectTest($projectIdList[1], $status[0], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p('5') && e('项目1/迭代1'); // 敏捷项目执行键值对查询 +r($executionTester->getByProjectTest($projectIdList[2], $status[0], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p('6') && e('项目2/产品1/阶段1'); // 瀑布项目执行键值对查询 +r($executionTester->getByProjectTest($projectIdList[3], $status[0], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p('7') && e('项目3/看板1'); // 看板项目执行键值对查询 +r($executionTester->getByProjectTest($projectIdList[0], $status[1], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p() && e('0'); // wait执行键值对查询 +r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p('7') && e('项目3/看板1'); // doing执行键值对查询 +r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[1], $pairsList[1], $develList[0], $appendIdList[0], $count[1])) && p() && e('2'); // 执行键值对2条查询 +r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[2], $pairsList[1], $develList[0], $appendIdList[0], $count[1])) && p() && e('3'); // 执行键值对10条查询 +r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[2], $pairsList[1], $develList[1], $appendIdList[0], $count[1])) && p() && e('0'); // 测试获取开发阶段 +r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[2], $pairsList[1], $develList[1], $appendIdList[1], $count[1])) && p() && e('1'); // 测试获取开发阶段或id=7的执行 From eef834a2db718eb54397008d27218a484e652dc7 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:42:55 +0800 Subject: [PATCH 09/18] * [unittest] Fix execution getlimitedexecution expect. --- module/execution/test/model/getlimitedexecution.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/module/execution/test/model/getlimitedexecution.php b/module/execution/test/model/getlimitedexecution.php index 19b47ab3e2..e733807df7 100755 --- a/module/execution/test/model/getlimitedexecution.php +++ b/module/execution/test/model/getlimitedexecution.php @@ -18,6 +18,9 @@ title=测试 executionModel->getLimitedExecution(); timeout=0 cid=1 +- 判断管理员 @1 +- 判断非管理员 @103 + */ global $app; From 1e138f202e190f0a95ec24ed4d678b67ddbb01e4 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:43:25 +0800 Subject: [PATCH 10/18] * [unittest] Fix execution getorderedexecutions expect. --- .../test/model/getorderedexecutions.php | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/module/execution/test/model/getorderedexecutions.php b/module/execution/test/model/getorderedexecutions.php index 30f3449aad..90c9a3d854 100755 --- a/module/execution/test/model/getorderedexecutions.php +++ b/module/execution/test/model/getorderedexecutions.php @@ -27,6 +27,33 @@ title=executionModel->getOrderedExecutions(); timeout=0 cid=1 +- 敏捷项目wait状态执行查看 + - 第5条的project属性 @2 + - 第5条的status属性 @wait + - 第5条的type属性 @sprint +- 敏捷项目doing状态执行查看 + - 第6条的project属性 @2 + - 第6条的status属性 @doing + - 第6条的type属性 @sprint +- 瀑布项目wait状态执行查看 @0 +- 瀑布项目doing状态执行查看 @0 +- 看板项目wait状态执行查看 + - 第9条的project属性 @4 + - 第9条的status属性 @wait + - 第9条的type属性 @kanban +- 看板项目doing状态执行查看 + - 第10条的project属性 @4 + - 第10条的status属性 @doing + - 第10条的type属性 @kanban +- 敏捷项目wait状态执行统计 @1 +- 敏捷项目doing状态执行统计 @1 +- 瀑布项目wait状态执行统计 @0 +- 瀑布项目doing状态执行统计 @0 +- 看板项目wait状态执行统计 @1 +- 看板项目doing状态执行统计 @1 +- 敏捷项目done状态执行统计 @0 +- 敏捷项目closed状态执行统计 @0 + */ $projectIDList = array(2, 3, 4); From b3e59043d936f2c9a48dc13dc600c2cc8fdb44ef Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:43:46 +0800 Subject: [PATCH 11/18] * [unittest] Fix execution getprevkanban expect. --- module/execution/test/model/getprevkanban.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/module/execution/test/model/getprevkanban.php b/module/execution/test/model/getprevkanban.php index 13c2a84fc8..5756c7b018 100755 --- a/module/execution/test/model/getprevkanban.php +++ b/module/execution/test/model/getprevkanban.php @@ -30,6 +30,9 @@ title=测试executionModel->getPrevKanban(); timeout=0 cid=1 +- 查询执行id=4数据 @empty +- 保存数据后查询执行id=4数据第wait条的0属性 @task1 + */ $executionTester = new executionTest(); From c8f7e853914903b3ea346050e85c21c6a477a9bd Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:44:05 +0800 Subject: [PATCH 12/18] * [unittest] Fix execution gettasks2imported expect. --- module/execution/test/model/gettasks2imported.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/module/execution/test/model/gettasks2imported.php b/module/execution/test/model/gettasks2imported.php index b2d4862a84..11b4d28e7a 100755 --- a/module/execution/test/model/gettasks2imported.php +++ b/module/execution/test/model/gettasks2imported.php @@ -50,6 +50,13 @@ title=测试executionModel->getTasks2ImportedTest(); timeout=0 cid=1 +- 敏捷执行任务查看第1条的name属性 @任务1 +- 瀑布执行任务查看第2条的type属性 @devel +- 看板执行任务查看第3条的status属性 @wait +- 敏捷执行任务统计 @4 +- 敏捷执行任务统计 @3 +- 敏捷执行任务统计 @3 + */ $executionIDList = array('3', '4', '5'); From 5c8632f11967c70e8aed334d115ccf2a78800a9b Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:44:26 +0800 Subject: [PATCH 13/18] * [unittest] Fix execution linkcases expect. --- module/execution/test/model/linkcases.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/module/execution/test/model/linkcases.php b/module/execution/test/model/linkcases.php index 6b8bec261c..efd82f07de 100755 --- a/module/execution/test/model/linkcases.php +++ b/module/execution/test/model/linkcases.php @@ -48,6 +48,22 @@ title=测试executionModel->linkCasesTest(); timeout=0 cid=1 +- 敏捷执行关联用例 + - 第0条的project属性 @3 + - 第0条的product属性 @1 + - 第0条的case属性 @1 +- 瀑布执行关联用例 + - 第0条的project属性 @4 + - 第0条的product属性 @43 + - 第0条的case属性 @2 +- 看板执行关联用例 + - 第0条的project属性 @5 + - 第0条的product属性 @68 + - 第0条的case属性 @3 +- 敏捷执行关联用例统计 @3 +- 瀑布执行关联用例统计 @3 +- 看板执行关联用例统计 @3 + */ $executionIdList = array(3, 4, 5); From 488452cfb92bc2643da21ade071327418d5c36fd Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:44:46 +0800 Subject: [PATCH 14/18] * [unittest] Fix execution processtasks expect. --- module/execution/test/model/processtasks.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/module/execution/test/model/processtasks.php b/module/execution/test/model/processtasks.php index 7a04030fd0..b1f9c027ab 100755 --- a/module/execution/test/model/processtasks.php +++ b/module/execution/test/model/processtasks.php @@ -18,6 +18,20 @@ title=测试executionModel->processTasks(); timeout=0 cid=1 +- 测试空数据 @0 +- 测试处理迭代下的任务信息 + - 第30条的id属性 @30 + - 第30条的name属性 @开发任务40 +- 测试处理阶段下的任务信息 + - 第15条的id属性 @15 + - 第15条的name属性 @开发任务25 +- 测试处理看板下的任务信息 + - 第27条的id属性 @27 + - 第27条的name属性 @开发任务37 +- 获取处理迭代下的任务数量 @13 +- 获取处理阶段下的任务数量 @5 +- 获取处理看板下的任务数量 @6 + */ $executionIdList = array(0, 2, 3, 4); From 36ba9c2d3df8bb15354d22f94f0b63fe151bcacd Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:45:05 +0800 Subject: [PATCH 15/18] * [unittest] Fix execution putoff expect. --- module/execution/test/model/putoff.php | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/module/execution/test/model/putoff.php b/module/execution/test/model/putoff.php index d8cf06309a..18b1404f1c 100755 --- a/module/execution/test/model/putoff.php +++ b/module/execution/test/model/putoff.php @@ -19,13 +19,24 @@ su('admin'); /** title=测试executionModel->putoffTest(); -cid=1 -pid=1 +cid=0 -wait执行延期 >> days,,5 -敏捷执行延期 >> status,doing,wait -瀑布阶段延期 >> status,doing,wait -看板执行延期 >> status,doing,wait +- wait执行延期 + - 第0条的field属性 @days + - 第0条的old属性 @0 + - 第0条的new属性 @5 +- 敏捷执行延期 + - 第0条的field属性 @status + - 第0条的old属性 @doing + - 第0条的new属性 @wait +- 瀑布阶段延期 + - 第0条的field属性 @status + - 第0条的old属性 @doing + - 第0条的new属性 @wait +- 看板执行延期 + - 第0条的field属性 @status + - 第0条的old属性 @doing + - 第0条的new属性 @wait */ From bc8bd326884e99f6dcf14942d6c9f50bfa2db4f2 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:45:24 +0800 Subject: [PATCH 16/18] * [unittest] Fix execution setprojectsession expect. --- module/execution/test/model/setprojectsession.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/module/execution/test/model/setprojectsession.php b/module/execution/test/model/setprojectsession.php index c1d6ad5c12..1e4c977f32 100755 --- a/module/execution/test/model/setprojectsession.php +++ b/module/execution/test/model/setprojectsession.php @@ -24,6 +24,9 @@ title=测试 executionModel::setProjectSession(); timeout=0 cid=1 +- 执行存在的情况 @2 +- 执行不存在的情况 @0 + */ $executionTester = new executionTest(); From f042cc719613061c285209ecd34ec4ed05f3b90b Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:45:37 +0800 Subject: [PATCH 17/18] * [unittest] Fix execution start expect. --- module/execution/test/model/start.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/module/execution/test/model/start.php b/module/execution/test/model/start.php index 699c9d4197..bf6ea525d5 100755 --- a/module/execution/test/model/start.php +++ b/module/execution/test/model/start.php @@ -16,6 +16,18 @@ su('admin'); title=测试executionModel->startTest(); cid=1 pid=1 + +- 敏捷执行开始 + - 第status条的old属性 @wait + - 第status条的new属性 @doing +- 瀑布阶段开始 + - 第status条的old属性 @wait + - 第status条的new属性 @doing +- 看板执行开始 + - 第status条的old属性 @wait + - 第status条的new属性 @doing +- 子瀑布开启获取父瀑布状态属性status @doing + */ $executionIDList = array(2, 3, 4, 5); @@ -24,4 +36,4 @@ $execution = new executionTest(); r($execution->startTest($executionIDList[0])) && p('status:old,new') && e('wait,doing'); // 敏捷执行开始 r($execution->startTest($executionIDList[1])) && p('status:old,new') && e('wait,doing'); // 瀑布阶段开始 r($execution->startTest($executionIDList[2])) && p('status:old,new') && e('wait,doing'); // 看板执行开始 -r($execution->startTest($executionIDList[3], array(), true)) && p('status') && e('doing'); // 子瀑布开启获取父瀑布状态 +r($execution->startTest($executionIDList[3], array(), true)) && p('status') && e('doing'); // 子瀑布开启获取父瀑布状态 From ee37a6589b0bd6c08d4a9cbfd4c708ae46e7917b Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 6 Jun 2025 14:45:51 +0800 Subject: [PATCH 18/18] * [unittest] Fix execution suspend expect. --- module/execution/test/model/suspend.php | 32 +++++++++++++++++++------ 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/module/execution/test/model/suspend.php b/module/execution/test/model/suspend.php index 0e00b1ec2b..7887ec2d2c 100755 --- a/module/execution/test/model/suspend.php +++ b/module/execution/test/model/suspend.php @@ -18,13 +18,31 @@ title=测试executionModel->suspendTest(); cid=1 pid=1 -wait敏捷执行挂起 >> status,wait,suspended -doing敏捷执行挂起 >> status,doing,suspended -wait瀑布执行挂起 >> status,wait,suspended -doing瀑布执行挂起 >> status,doing,suspended -wait看板执行挂起 >> status,wait,suspended -doing看板执行挂起 >> status,doing,suspended -挂起后再次挂起 >> 0 +- wait敏捷执行挂起 + - 第0条的field属性 @status + - 第0条的old属性 @wait + - 第0条的new属性 @suspended +- doing敏捷执行挂起 + - 第0条的field属性 @status + - 第0条的old属性 @doing + - 第0条的new属性 @suspended +- wait瀑布执行挂起 + - 第0条的field属性 @status + - 第0条的old属性 @wait + - 第0条的new属性 @suspended +- doing瀑布执行挂起 + - 第0条的field属性 @status + - 第0条的old属性 @doing + - 第0条的new属性 @suspended +- wait看板执行挂起 + - 第0条的field属性 @status + - 第0条的old属性 @wait + - 第0条的new属性 @suspended +- doing看板执行挂起 + - 第0条的field属性 @status + - 第0条的old属性 @doing + - 第0条的new属性 @suspended +- 挂起后再次挂起 @0 */