From f7484b933b7801e3000e85a8b58947e70fca6497 Mon Sep 17 00:00:00 2001 From: liugang Date: Mon, 24 Nov 2025 16:27:59 +0800 Subject: [PATCH] - [misc] Delete the failed unit test scripts generated by Claude Code. ^ Conflicts: ^ module/action/test/tao/processcreatechildrenactionextra.php ^ module/action/test/tao/processcreaterequirementsactionextra.php ^ module/action/test/tao/processlinkstoryandbugactionextra.php ^ module/action/test/tao/processtostoryactionextra.php ^ module/branch/test/model/manage.php ^ module/cne/test/model/apiget.php ^ module/cne/test/model/apipost.php ^ module/cne/test/model/backup.php ^ module/cne/test/model/cneservererror.php ^ module/cne/test/model/deletebackup.php ^ module/cne/test/model/getappvolumes.php ^ module/cne/test/model/getbackuplist.php ^ module/cne/test/model/getbackupstatus.php ^ module/cne/test/model/getdisksettings.php ^ module/cne/test/model/getvolumesmetrics.php ^ module/cne/test/model/installapp.php ^ module/cne/test/model/restore.php ^ module/cne/test/model/translateerror.php ^ module/cne/test/model/uploadcert.php ^ module/cne/test/model/validatecert.php ^ module/common/test/model/printduration.php ^ module/convert/test/model/getzentaofields.php ^ module/convert/test/model/getzentaoobjectlist.php ^ module/convert/test/model/savestate.php ^ module/convert/test/tao/createtask.php ^ module/convert/test/tao/processjiracontent.php ^ module/instance/test/model/installationsettingsmap.php ^ module/instance/test/model/stop.php ^ module/kanban/test/tao/refreshbugcards.php ^ module/kanban/test/tao/refresherurcards.php ^ module/kanban/test/tao/refreshstorycards.php ^ module/metric/test/model/getdatebydatetype.php ^ module/metric/test/model/getlatestresultbycode.php ^ module/metric/test/model/updatemetricfields.php ^ module/product/test/model/buildsearchconfig.php ^ module/screen/test/model/gennotfoundordraftcomponentoption.php ^ module/search/test/model/buildoldquery.php ^ module/search/test/model/getoldquery.php ^ module/task/test/model/updateparent.php ^ module/todo/test/model/daterange.php ^ module/transfer/test/model/format.php --- .../tao/processcreatechilrenactionextra.php | 37 ---- module/block/test/zen/createmorelink.php | 73 ------ .../test/zen/printannualworkloadblock.php | 44 ---- .../block/test/zen/printassigntomeblock.php | 46 ---- module/block/test/zen/printbugblock.php | 79 ------- .../block/test/zen/printbugstatisticblock.php | 72 ------ module/block/test/zen/printbuildblock.php | 71 ------ .../test/zen/printexecutionlistblock.php | 70 ------ .../test/zen/printexecutionstatisticblock.php | 84 ------- module/block/test/zen/printissueblock.php | 43 ---- module/block/test/zen/printplanblock.php | 75 ------- .../test/zen/printprojectstatisticblock.php | 77 ------- module/block/test/zen/printriskblock.php | 63 ------ .../block/test/zen/printscrumiessueblock.php | 43 ---- .../block/test/zen/printscrumissueblock.php | 43 ---- module/block/test/zen/printscrumlistblock.php | 43 ---- module/block/test/zen/printscrumriskblock.php | 63 ------ module/block/test/zen/printscrumtestblock.php | 123 ----------- .../test/zen/printsingledynamicblock.php | 41 ---- module/block/test/zen/printsprintblock.php | 43 ---- module/block/test/zen/printtaskblock.php | 83 ------- module/block/test/zen/printtesttaskblock.php | 70 ------ .../test/zen/printwaterfallissueblock.php | 43 ---- .../test/zen/printwaterfallriskblock.php | 90 -------- .../bug/test/zen/assignprojectrelatedvars.php | 71 ------ module/bug/test/zen/assignvarsforedit.php | 58 ----- module/bug/test/zen/buildcreateform.php | 105 --------- module/bug/test/zen/buildeditform.php | 161 -------------- module/bug/test/zen/getassignedtopairs.php | 74 ------- module/bug/test/zen/getproductsforcreate.php | 65 ------ module/bug/test/zen/updatetodoaftercreate.php | 36 --- module/build/test/zen/assigncreatedata.php | 84 ------- .../test/zen/preparecasesforbathccreate.php | 65 ------ .../test/zen/processcasesforexport.php | 73 ------ module/doc/test/zen/assignapivarforspace.php | 39 ---- module/doc/test/zen/previeweicket.php | 62 ------ .../editor/test/zen/buildcontentbyaction.php | 33 --- .../test/zen/buildexecutionforcreate.php | 71 ------ module/execution/test/zen/getimportbugs.php | 59 ----- module/extension/test/zen/backupdb.php | 75 ------- .../extension/test/zen/copypackagefiles.php | 95 -------- module/gitlab/test/zen/getgroupmemberdata.php | 54 ----- .../gitlab/test/zen/getprojectmemberdata.php | 65 ------ module/group/test/zen/manageprivbymodule.php | 39 ---- module/instance/test/zen/storeview.php | 64 ------ module/job/test/zen/getcompiledata.php | 58 ----- module/kanban/test/tao/getstorycardmenu.php | 51 ----- module/kanban/test/zen/assigncreatevars.php | 38 ---- module/metric/test/zen/getoldmetricinfo.php | 42 ---- module/my/test/zen/showworkcountnotinopen.php | 47 ---- module/pivot/test/tao/getexecutionlist.php | 56 ----- module/pivot/test/zen/bugcreate.php | 34 --- module/pivot/test/zen/getbuiltinmenus.php | 63 ------ .../test/zen/getdefaultmethodandparams.php | 54 ----- .../product/test/zen/buildproductforclose.php | 50 ----- .../product/test/zen/getactionsfordynamic.php | 48 ---- module/product/test/zen/getproductplans.php | 79 ------- .../productplan/test/zen/buildactionslist.php | 48 ---- .../test/zen/buildplansforbatchedit.php | 120 ---------- .../productplan/test/zen/buildviewactions.php | 138 ------------ module/program/test/zen/getprogramsbytype.php | 36 --- module/project/test/zen/buildactivateform.php | 71 ------ module/project/test/zen/buildbugview.php | 122 ---------- module/project/test/zen/buildcreateform.php | 34 --- module/project/test/zen/buildmembers.php | 56 ----- .../recordexecutionsofunlinkedproducts.php | 75 ------- module/repo/test/zen/getcommits.php | 61 ----- module/repo/test/zen/getfilesinfo.php | 70 ------ module/repo/test/zen/getlinkbranches.php | 73 ------ module/repo/test/zen/getsearchformquery.php | 62 ------ module/repo/test/zen/preparecreate.php | 71 ------ module/repo/test/zen/synclocalcommit.php | 73 ------ module/report/test/zen/assignannualdata.php | 44 ---- .../test/tao/checkfeedbackandticketpriv.php | 86 -------- module/search/test/tao/processdocrecord.php | 86 -------- .../test/tao/processexecutionrecord.php | 56 ----- .../search/test/tao/processprojectrecord.php | 92 -------- module/search/test/tao/processrecord.php | 95 -------- module/search/test/tao/processriskrecord.php | 95 -------- module/search/test/tao/processstoryrecord.php | 100 --------- module/search/test/tao/processtaskrecord.php | 83 ------- module/story/test/tao/getproductreviewers.php | 55 ----- .../story/test/zen/getformfieldsforcreate.php | 98 --------- .../story/test/zen/getformfieldsforreview.php | 37 ---- module/story/test/zen/processdataforedit.php | 88 -------- module/story/test/zen/processfiltertitle.php | 93 -------- .../test/zen/setformoptionsforbatchedit.php | 98 --------- module/task/test/zen/buildeffortforfinish.php | 76 ------- module/task/test/zen/processexportdata.php | 208 ------------------ module/task/test/zen/responseafterrecord.php | 101 --------- module/testcase/test/zen/addeditaction.php | 45 ---- .../testcase/test/zen/assignbranchforedit.php | 63 ------ .../test/zen/assigncreatescenevars.php | 39 ---- .../zen/assignmoduleoptionmenuforedit.php | 73 ------ .../test/zen/buildbrowsesearchform.php | 59 ----- .../testcase/test/zen/preparereviewdata.php | 102 --------- .../test/zen/processcaseforexport.php | 149 ------------- .../test/zen/processcasesforexport.php | 171 -------------- .../test/zen/responseafterbatchcreate.php | 68 ------ .../test/zen/responseaftershowimport.php | 67 ------ module/testreport/test/zen/commonaction.php | 36 --- .../test/zen/responseafterruncase.php | 77 ------- module/zanode/test/zen/handlenode.php | 59 ----- .../test/zen/preparecreatesnapshotextras.php | 93 -------- 104 files changed, 7389 deletions(-) delete mode 100755 module/action/test/tao/processcreatechilrenactionextra.php delete mode 100755 module/block/test/zen/createmorelink.php delete mode 100755 module/block/test/zen/printannualworkloadblock.php delete mode 100755 module/block/test/zen/printassigntomeblock.php delete mode 100755 module/block/test/zen/printbugblock.php delete mode 100755 module/block/test/zen/printbugstatisticblock.php delete mode 100755 module/block/test/zen/printbuildblock.php delete mode 100755 module/block/test/zen/printexecutionlistblock.php delete mode 100755 module/block/test/zen/printexecutionstatisticblock.php delete mode 100755 module/block/test/zen/printissueblock.php delete mode 100755 module/block/test/zen/printplanblock.php delete mode 100755 module/block/test/zen/printprojectstatisticblock.php delete mode 100755 module/block/test/zen/printriskblock.php delete mode 100755 module/block/test/zen/printscrumiessueblock.php delete mode 100755 module/block/test/zen/printscrumissueblock.php delete mode 100755 module/block/test/zen/printscrumlistblock.php delete mode 100755 module/block/test/zen/printscrumriskblock.php delete mode 100755 module/block/test/zen/printscrumtestblock.php delete mode 100755 module/block/test/zen/printsingledynamicblock.php delete mode 100755 module/block/test/zen/printsprintblock.php delete mode 100755 module/block/test/zen/printtaskblock.php delete mode 100755 module/block/test/zen/printtesttaskblock.php delete mode 100755 module/block/test/zen/printwaterfallissueblock.php delete mode 100755 module/block/test/zen/printwaterfallriskblock.php delete mode 100755 module/bug/test/zen/assignprojectrelatedvars.php delete mode 100755 module/bug/test/zen/assignvarsforedit.php delete mode 100755 module/bug/test/zen/buildcreateform.php delete mode 100755 module/bug/test/zen/buildeditform.php delete mode 100755 module/bug/test/zen/getassignedtopairs.php delete mode 100755 module/bug/test/zen/getproductsforcreate.php delete mode 100755 module/bug/test/zen/updatetodoaftercreate.php delete mode 100755 module/build/test/zen/assigncreatedata.php delete mode 100755 module/caselib/test/zen/preparecasesforbathccreate.php delete mode 100755 module/caselib/test/zen/processcasesforexport.php delete mode 100755 module/doc/test/zen/assignapivarforspace.php delete mode 100755 module/doc/test/zen/previeweicket.php delete mode 100755 module/editor/test/zen/buildcontentbyaction.php delete mode 100755 module/execution/test/zen/buildexecutionforcreate.php delete mode 100755 module/execution/test/zen/getimportbugs.php delete mode 100755 module/extension/test/zen/backupdb.php delete mode 100755 module/extension/test/zen/copypackagefiles.php delete mode 100755 module/gitlab/test/zen/getgroupmemberdata.php delete mode 100755 module/gitlab/test/zen/getprojectmemberdata.php delete mode 100755 module/group/test/zen/manageprivbymodule.php delete mode 100755 module/instance/test/zen/storeview.php delete mode 100755 module/job/test/zen/getcompiledata.php delete mode 100755 module/kanban/test/tao/getstorycardmenu.php delete mode 100755 module/kanban/test/zen/assigncreatevars.php delete mode 100755 module/metric/test/zen/getoldmetricinfo.php delete mode 100755 module/my/test/zen/showworkcountnotinopen.php delete mode 100755 module/pivot/test/tao/getexecutionlist.php delete mode 100755 module/pivot/test/zen/bugcreate.php delete mode 100755 module/pivot/test/zen/getbuiltinmenus.php delete mode 100755 module/pivot/test/zen/getdefaultmethodandparams.php delete mode 100755 module/product/test/zen/buildproductforclose.php delete mode 100755 module/product/test/zen/getactionsfordynamic.php delete mode 100755 module/product/test/zen/getproductplans.php delete mode 100755 module/productplan/test/zen/buildactionslist.php delete mode 100755 module/productplan/test/zen/buildplansforbatchedit.php delete mode 100755 module/productplan/test/zen/buildviewactions.php delete mode 100755 module/program/test/zen/getprogramsbytype.php delete mode 100755 module/project/test/zen/buildactivateform.php delete mode 100755 module/project/test/zen/buildbugview.php delete mode 100755 module/project/test/zen/buildcreateform.php delete mode 100755 module/project/test/zen/buildmembers.php delete mode 100755 module/project/test/zen/recordexecutionsofunlinkedproducts.php delete mode 100755 module/repo/test/zen/getcommits.php delete mode 100755 module/repo/test/zen/getfilesinfo.php delete mode 100755 module/repo/test/zen/getlinkbranches.php delete mode 100755 module/repo/test/zen/getsearchformquery.php delete mode 100755 module/repo/test/zen/preparecreate.php delete mode 100755 module/repo/test/zen/synclocalcommit.php delete mode 100755 module/report/test/zen/assignannualdata.php delete mode 100644 module/search/test/tao/checkfeedbackandticketpriv.php delete mode 100755 module/search/test/tao/processdocrecord.php delete mode 100644 module/search/test/tao/processexecutionrecord.php delete mode 100644 module/search/test/tao/processprojectrecord.php delete mode 100644 module/search/test/tao/processrecord.php delete mode 100644 module/search/test/tao/processriskrecord.php delete mode 100644 module/search/test/tao/processstoryrecord.php delete mode 100755 module/search/test/tao/processtaskrecord.php delete mode 100755 module/story/test/tao/getproductreviewers.php delete mode 100755 module/story/test/zen/getformfieldsforcreate.php delete mode 100755 module/story/test/zen/getformfieldsforreview.php delete mode 100755 module/story/test/zen/processdataforedit.php delete mode 100755 module/story/test/zen/processfiltertitle.php delete mode 100755 module/story/test/zen/setformoptionsforbatchedit.php delete mode 100755 module/task/test/zen/buildeffortforfinish.php delete mode 100755 module/task/test/zen/processexportdata.php delete mode 100755 module/task/test/zen/responseafterrecord.php delete mode 100755 module/testcase/test/zen/addeditaction.php delete mode 100755 module/testcase/test/zen/assignbranchforedit.php delete mode 100755 module/testcase/test/zen/assigncreatescenevars.php delete mode 100755 module/testcase/test/zen/assignmoduleoptionmenuforedit.php delete mode 100755 module/testcase/test/zen/buildbrowsesearchform.php delete mode 100755 module/testcase/test/zen/preparereviewdata.php delete mode 100755 module/testcase/test/zen/processcaseforexport.php delete mode 100755 module/testcase/test/zen/processcasesforexport.php delete mode 100755 module/testcase/test/zen/responseafterbatchcreate.php delete mode 100755 module/testcase/test/zen/responseaftershowimport.php delete mode 100755 module/testreport/test/zen/commonaction.php delete mode 100755 module/testtask/test/zen/responseafterruncase.php delete mode 100755 module/zanode/test/zen/handlenode.php delete mode 100755 module/zanode/test/zen/preparecreatesnapshotextras.php diff --git a/module/action/test/tao/processcreatechilrenactionextra.php b/module/action/test/tao/processcreatechilrenactionextra.php deleted file mode 100755 index be601bd97c..0000000000 --- a/module/action/test/tao/processcreatechilrenactionextra.php +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env php -> 返回格式化的任务信息 -- 测试多个有效任务ID >> 返回多个任务信息 -- 测试不存在的任务ID >> 返回空字符串 -- 测试空字符串输入 >> 返回空字符串 -- 测试混合有效和无效ID >> 只返回有效任务信息 -- 测试大量任务ID >> 正确处理所有有效任务 -- 测试包含空格的ID字符串 >> 正确处理并过滤空格 - -*/ - -include dirname(__FILE__, 5) . '/test/lib/init.php'; -include dirname(__FILE__, 2) . '/lib/action.unittest.class.php'; - -zenData('task')->loadYaml('task_processcreatechilredactionextra', false, 2)->gen(10); -zenData('user')->gen(5); - -su('admin'); - -$actionTest = new actionTest(); - -r($actionTest->processCreateChildrenActionExtraTest('1')) && p('extra') && e('#1 开发任务11'); -r($actionTest->processCreateChildrenActionExtraTest('1,2,3')) && p('extra') && e('#1 开发任务11, #2 开发任务12, #3 开发任务13'); -r($actionTest->processCreateChildrenActionExtraTest('999')) && p('extra') && e('~~'); -r($actionTest->processCreateChildrenActionExtraTest('')) && p('extra') && e('~~'); -r($actionTest->processCreateChildrenActionExtraTest('1,999,2')) && p('extra') && e('#1 开发任务11, #2 开发任务12'); -r($actionTest->processCreateChildrenActionExtraTest('1,2,3,4,5')) && p('extra') && e('#1 开发任务11, #2 开发任务12, #3 开发任务13, #4 开发任务14, #5 开发任务15'); -r($actionTest->processCreateChildrenActionExtraTest('1, 2, 3')) && p('extra') && e('#1 开发任务11, #2 开发任务12, #3 开发任务13'); diff --git a/module/block/test/zen/createmorelink.php b/module/block/test/zen/createmorelink.php deleted file mode 100755 index 4d3170463d..0000000000 --- a/module/block/test/zen/createmorelink.php +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env php -id = 1; -$block1->module = 'project'; -$block1->code = 'recentproject'; -$block1->params = new stdclass(); - -$block2 = new stdclass(); -$block2->id = 2; -$block2->module = 'qa'; -$block2->code = 'bug'; -$block2->params = new stdclass(); -$block2->params->type = 'assignedTo'; - -$block3 = new stdclass(); -$block3->id = 3; -$block3->module = 'common'; -$block3->code = 'dynamic'; -$block3->params = new stdclass(); - -$block4 = new stdclass(); -$block4->id = 4; -$block4->module = 'project'; -$block4->code = 'execution'; -$block4->params = new stdclass(); - -$block5 = new stdclass(); -$block5->id = 5; -$block5->module = 'qa'; -$block5->code = 'testtask'; -$block5->params = new stdclass(); - -$block6 = new stdclass(); -$block6->id = 6; -$block6->module = 'qa'; -$block6->code = 'case'; -$block6->params = new stdclass(); - -// 5. 强制要求:必须包含至少5个测试步骤 -r($blockTest->createMoreLinkTest($block1, 100)) && p('moreLink') && e('project-browse'); // 步骤1:测试recentproject类型block的moreLink生成 -r($blockTest->createMoreLinkTest($block2, 100)) && p('moreLink') && e('my-bug-type=assignedTo'); // 步骤2:测试带type参数的bug类型block的moreLink生成 -r($blockTest->createMoreLinkTest($block3, 100)) && p('moreLink') && e('my-dynamic'); // 步骤3:测试dynamic类型block的moreLink生成 -r($blockTest->createMoreLinkTest($block4, 100)) && p('moreLink') && e('~~'); // 步骤4:测试未配置的block返回空moreLink -r($blockTest->createMoreLinkTest($block5, 100)) && p('moreLink') && e('testtask-browse-type='); // 步骤5:测试testtask类型block的moreLink生成 -r($blockTest->createMoreLinkTest($block6, 100)) && p('moreLink') && e('my-testcase-type='); // 步骤6:测试带空type的case类型block的moreLink生成 \ No newline at end of file diff --git a/module/block/test/zen/printannualworkloadblock.php b/module/block/test/zen/printannualworkloadblock.php deleted file mode 100755 index b860573421..0000000000 --- a/module/block/test/zen/printannualworkloadblock.php +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env php -id->range('1-5'); -$product->name->range('产品A,产品B,产品C,产品D,产品E'); -$product->code->range('producta,productb,productc,productd,producte'); -$product->status->range('normal{5}'); -$product->deleted->range('0{5}'); -$product->gen(5); - -// 3. 用户登录(选择合适角色) -su('admin'); - -// 4. 创建测试实例(变量名与模块名一致) -$blockTest = new blockTest(); - -// 5. 强制要求:必须包含至少5个测试步骤 -r($blockTest->printAnnualWorkloadBlockTest()) && p('success') && e('1'); // 步骤1:测试方法执行成功返回success为true -r($blockTest->printAnnualWorkloadBlockTest()) && p('maxStoryEstimate') && e('80'); // 步骤2:测试返回maxStoryEstimate最大需求规模 -r($blockTest->printAnnualWorkloadBlockTest()) && p('maxStoryCount') && e('40'); // 步骤3:测试返回maxStoryCount最大需求数 -r($blockTest->printAnnualWorkloadBlockTest()) && p('maxBugCount') && e('15'); // 步骤4:测试返回maxBugCount最大Bug数 -r($blockTest->printAnnualWorkloadBlockTest()) && p('success,maxStoryEstimate') && e('1,80'); // 步骤5:测试返回对象包含所有必要属性 \ No newline at end of file diff --git a/module/block/test/zen/printassigntomeblock.php b/module/block/test/zen/printassigntomeblock.php deleted file mode 100755 index 38df07360f..0000000000 --- a/module/block/test/zen/printassigntomeblock.php +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env php -params = new stdclass(); -$block1->params->count = 15; - -$block2 = new stdclass(); -$block2->params = new stdclass(); -$block2->params->count = 10; - -$block3 = new stdclass(); -$block3->params = new stdclass(); -$block3->params->count = 5; - -// 5. 强制要求:必须包含至少5个测试步骤 -r($blockTest->printAssignToMeBlockTest($block1)) && p('success') && e('1'); // 步骤1:测试方法执行成功返回success为true -r($blockTest->printAssignToMeBlockTest($block1)) && p('hasViewPriv') && e('1'); // 步骤2:测试返回对象包含权限验证信息 -r($blockTest->printAssignToMeBlockTest($block1)) && p('hasData') && e('1'); // 步骤3:测试返回对象包含数据信息 -r($blockTest->printAssignToMeBlockTest($block1)) && p('totalCount') && e('14'); // 步骤4:测试总数量统计正确 -r($blockTest->printAssignToMeBlockTest()) && p('success') && e('1'); // 步骤5:测试不传入block参数时使用默认参数 \ No newline at end of file diff --git a/module/block/test/zen/printbugblock.php b/module/block/test/zen/printbugblock.php deleted file mode 100755 index 3c05855f95..0000000000 --- a/module/block/test/zen/printbugblock.php +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env php -params = new stdclass(); -$block1->params->type = 'assignedTo'; -$block1->params->count = 10; -$block1->params->orderBy = 'id_desc'; -$block1->dashboard = 'my'; - -$block2 = new stdclass(); -$block2->params = new stdclass(); -$block2->params->type = 'invalid-type'; -$block2->params->count = 10; -$block2->dashboard = 'my'; - -$block3 = new stdclass(); -$block3->params = new stdclass(); -$block3->params->type = 'assignedTo'; -$block3->params->count = 0; -$block3->dashboard = 'my'; - -$block4 = new stdclass(); -$block4->params = new stdclass(); -$block4->params->type = 'assignedTo'; -$block4->params->count = 5; -$block4->dashboard = 'my'; - -$block5 = new stdclass(); -$block5->params = new stdclass(); -$block5->params->type = 'assignedTo'; -$block5->params->count = 5; -$block5->dashboard = 'project'; - -$block6 = new stdclass(); -$block6->params = new stdclass(); -$block6->params->type = 'openedBy'; -$block6->params->count = 8; -$block6->dashboard = 'my'; - -// 5. 强制要求:必须包含至少5个测试步骤 -r($blockTest->printBugBlockTest($block1)) && p('type,count') && e('assignedTo,10'); // 步骤1:测试正常情况下传入合法type参数和count参数 -r($blockTest->printBugBlockTest($block2)) && p('type') && e('invalid-type'); // 步骤2:测试type参数包含特殊字符时验证失败 -r($blockTest->printBugBlockTest($block3)) && p('count') && e('0'); // 步骤3:测试count为0时的处理 -r($blockTest->printBugBlockTest($block4)) && p('projectID,dashboard') && e('0,my'); // 步骤4:测试dashboard为my时projectID为0 -r($blockTest->printBugBlockTest($block5)) && p('dashboard') && e('project'); // 步骤5:测试dashboard不为my时使用session中的projectID -r($blockTest->printBugBlockTest($block6)) && p('type,count') && e('openedBy,8'); // 步骤6:测试不同的type类型参数 \ No newline at end of file diff --git a/module/block/test/zen/printbugstatisticblock.php b/module/block/test/zen/printbugstatisticblock.php deleted file mode 100755 index dd465b61ff..0000000000 --- a/module/block/test/zen/printbugstatisticblock.php +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env php -id->range('1-8'); -$table->name->range('正常产品1,正常产品2,正常产品3,正常产品4,正常产品5,影子产品1,影子产品2,已关闭产品1'); -$table->code->range('product1,product2,product3,product4,product5,shadow1,shadow2,closed1'); -$table->status->range('normal{7},closed{1}'); -$table->shadow->range('0{5},1{2},0{1}'); -$table->deleted->range('0{8}'); -$table->gen(8); - -su('admin'); - -$blockTest = new blockTest(); - -// 测试场景1:正常block对象,传入普通产品ID -$normalBlock = new stdclass(); -$normalBlock->params = new stdclass(); -$normalBlock->params->type = ''; -$normalBlock->params->count = 10; - -// 测试场景2:影子产品测试 -$shadowBlock = new stdclass(); -$shadowBlock->params = new stdclass(); -$shadowBlock->params->type = ''; -$shadowBlock->params->count = 10; -$shadowParams = array('active' => 6); - -// 测试场景3:空block对象 -$emptyBlock = new stdclass(); - -// 测试场景4:count为字符串'0'的block对象 -$stringZeroCountBlock = new stdclass(); -$stringZeroCountBlock->params = new stdclass(); -$stringZeroCountBlock->params->type = ''; -$stringZeroCountBlock->params->count = '0'; - -// 测试场景5:按状态过滤的block对象 -$statusBlock = new stdclass(); -$statusBlock->params = new stdclass(); -$statusBlock->params->type = 'normal'; -$statusBlock->params->count = 10; - -// 步骤1:正常情况测试 - 验证普通产品的Bug总数 -r($blockTest->printBugStatisticBlockTest($normalBlock)) && p('totalBugs') && e('10'); -// 步骤2:影子产品测试 - 验证影子产品的Bug总数 -r($blockTest->printBugStatisticBlockTest($shadowBlock, $shadowParams)) && p('totalBugs') && e('15'); -// 步骤3:空对象测试 - 验证默认选择第一个产品 -r($blockTest->printBugStatisticBlockTest($emptyBlock)) && p('totalBugs') && e('10'); -// 步骤4:count为字符串'0'测试 - 验证count为'0'时Bug总数为0 -r($blockTest->printBugStatisticBlockTest($stringZeroCountBlock)) && p('totalBugs') && e('0'); -// 步骤5:按状态过滤测试 - 验证按normal状态过滤后的Bug总数 -r($blockTest->printBugStatisticBlockTest($statusBlock)) && p('totalBugs') && e('10'); \ No newline at end of file diff --git a/module/block/test/zen/printbuildblock.php b/module/block/test/zen/printbuildblock.php deleted file mode 100755 index 3f5fa97e96..0000000000 --- a/module/block/test/zen/printbuildblock.php +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env php -id->range('1-20'); -$build->project->range('1-10'); -$build->product->range('1-10'); -$build->execution->range('1-20'); -$build->name->range('Build `1-20`'); -$build->deleted->range('0'); -$build->gen(20); - -zenData('product')->loadYaml('product')->gen(10); -zenData('project')->loadYaml('project')->gen(10); -zenData('user')->loadYaml('user')->gen(5); - -su('admin'); - -$blockTest = new blockZenTest(); - -$block1 = new stdClass(); -$block1->dashboard = 'my'; -$block1->params = new stdClass(); -$block1->params->count = 15; - -$block2 = new stdClass(); -$block2->dashboard = 'my'; -$block2->params = new stdClass(); -$block2->params->count = 10; - -$block3 = new stdClass(); -$block3->dashboard = 'my'; -$block3->params = new stdClass(); -$block3->params->count = 15; - -$block4 = new stdClass(); -$block4->dashboard = 'my'; -$block4->params = new stdClass(); -$block4->params->count = 15; - -$block5 = new stdClass(); -$block5->dashboard = 'project'; -$block5->params = new stdClass(); -$block5->params->count = 15; - -r($blockTest->printBuildBlockTest($block1)) && p('count') && e('0'); -r($blockTest->printBuildBlockTest($block2)) && p('count') && e('0'); -su('user1'); -r($blockTest->printBuildBlockTest($block3)) && p('count') && e('0'); -su('admin'); -r($blockTest->printBuildBlockTest($block4)) && p('count') && e('0'); -global $tester; -$tester->session->set('project', 1); -r($blockTest->printBuildBlockTest($block5)) && p('count') && e('0'); \ No newline at end of file diff --git a/module/block/test/zen/printexecutionlistblock.php b/module/block/test/zen/printexecutionlistblock.php deleted file mode 100755 index 87367decb9..0000000000 --- a/module/block/test/zen/printexecutionlistblock.php +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env php -gen(5); - -su('admin'); - -$blockTest = new blockTest(); - -$block1 = new stdClass(); -$block1->params = new stdClass(); -$block1->params->count = 5; -$block1->params->type = 'all'; - -$block2 = new stdClass(); -$block2->params = new stdClass(); -$block2->params->count = 3; -$block2->params->type = 'all'; - -$block3 = new stdClass(); -$block3->params = new stdClass(); -$block3->params->count = 4; -$block3->params->type = 'all'; - -$block4 = new stdClass(); -$block4->params = new stdClass(); -$block4->params->count = 4; -$block4->params->type = 'wait'; - -$block5 = new stdClass(); -$block5->params = new stdClass(); -$block5->params->count = 4; -$block5->params->type = 'doing'; - -$block6 = new stdClass(); -$block6->params = new stdClass(); -$block6->params->count = 10; -$block6->params->type = 'all; DROP TABLE'; - -$block7 = new stdClass(); -$block7->params = new stdClass(); -$block7->params->count = 0; -$block7->params->type = 'all'; - -r($blockTest->printExecutionListBlockTest($block1)) && p('hasExecutions') && e('true'); // 测试count为5时返回5条执行记录 -r($blockTest->printExecutionListBlockTest($block2)) && p('success') && e('1'); // 测试count为3时返回成功 -r($blockTest->printExecutionListBlockTest($block3)) && p('success') && e('1'); // 测试type为all时正常返回执行记录 -r($blockTest->printExecutionListBlockTest($block4)) && p('success') && e('1'); // 测试type为wait时返回成功 -r($blockTest->printExecutionListBlockTest($block5)) && p('success') && e('1'); // 测试type为doing时返回成功 -r($blockTest->printExecutionListBlockTest($block6)) && p('hasExecutions') && e('false'); // 测试type包含非法字符时返回空结果 -r($blockTest->printExecutionListBlockTest($block7)) && p('hasExecutions') && e('true'); // 测试count为0时使用默认值返回执行记录 \ No newline at end of file diff --git a/module/block/test/zen/printexecutionstatisticblock.php b/module/block/test/zen/printexecutionstatisticblock.php deleted file mode 100755 index e5e43491f2..0000000000 --- a/module/block/test/zen/printexecutionstatisticblock.php +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env php -loadYaml('project', false, 2)->gen(20); -zendata('product')->loadYaml('product', false, 2)->gen(10); -zendata('projectproduct')->loadYaml('projectproduct', false, 2)->gen(10); - -su('admin'); - -$blockTest = new blockZenTest(); - -$block1 = new stdClass(); -$block1->id = 1; -$block1->dashboard = 'my'; -$block1->params = new stdClass(); -$block1->params->type = 'undone'; -$block1->params->count = 5; - -$block2 = new stdClass(); -$block2->id = 2; -$block2->dashboard = 'my'; -$block2->params = new stdClass(); -$block2->params->type = 'done'; -$block2->params->count = 5; - -$block3 = new stdClass(); -$block3->id = 3; -$block3->dashboard = 'my'; -$block3->params = new stdClass(); -$block3->params->type = 'all'; -$block3->params->count = 10; - -$block4 = new stdClass(); -$block4->id = 4; -$block4->dashboard = 'project'; -$block4->params = new stdClass(); -$block4->params->type = 'undone'; -$block4->params->count = 5; - -$block5 = new stdClass(); -$block5->id = 5; -$block5->dashboard = 'my'; -$block5->params = new stdClass(); -$block5->params->type = 'undone'; -$block5->params->count = 0; - -r($blockTest->printExecutionStatisticBlockTest($block1)) && p('executionsCount,projectsCount,hasChartData') && e('0,3,1'); -r($blockTest->printExecutionStatisticBlockTest($block2)) && p('executionsCount,projectsCount,hasChartData') && e('0,3,1'); -r($blockTest->printExecutionStatisticBlockTest($block3)) && p('executionsCount,projectsCount,hasChartData') && e('0,3,1'); -r($blockTest->printExecutionStatisticBlockTest($block4)) && p('executionsCount,projectsCount,hasChartData,currentProjectID') && e('0,3,1,0'); -r($blockTest->printExecutionStatisticBlockTest($block5)) && p('executionsCount,projectsCount,hasChartData') && e('0,3,1'); \ No newline at end of file diff --git a/module/block/test/zen/printissueblock.php b/module/block/test/zen/printissueblock.php deleted file mode 100755 index 40c9d5a852..0000000000 --- a/module/block/test/zen/printissueblock.php +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env php -printIssueBlockTest('active', 1, 5, 'id_desc', 'html')) && p('type,count') && e('active,5'); // 步骤1:测试正常情况下传入合法type参数和count参数 -r($blockTest->printIssueBlockTest('invalid-type', 1, 5, 'id_desc', 'html')) && p('hasValidation') && e('0'); // 步骤2:测试type参数包含特殊字符时验证失败 -r($blockTest->printIssueBlockTest('active', 1, 0, 'id_desc', 'html')) && p('count') && e('0'); // 步骤3:测试count为0时的处理 -r($blockTest->printIssueBlockTest('resolved', 0, 5, 'id_desc', 'html')) && p('type,projectID') && e('resolved,0'); // 步骤4:测试projectID为0时的处理 -r($blockTest->printIssueBlockTest('active', 2, 8, 'id_desc', 'html')) && p('type,count') && e('active,8'); // 步骤5:测试不同projectID和count参数 -r($blockTest->printIssueBlockTest('closed', 1, 10, 'id_desc', 'html')) && p('type,count') && e('closed,10'); // 步骤6:测试不同的type类型参数 \ No newline at end of file diff --git a/module/block/test/zen/printplanblock.php b/module/block/test/zen/printplanblock.php deleted file mode 100755 index 7d3480c8fc..0000000000 --- a/module/block/test/zen/printplanblock.php +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env php -dashboard = 'my'; -$defaultBlock->params = new stdclass(); -$defaultBlock->params->type = ''; -$defaultBlock->params->count = 15; - -r($blockTest->printPlanBlockTest($defaultBlock)) && p('plansCount') && e('1'); // 步骤1:默认参数测试 - -// 测试type为all的情况 -$allBlock = new stdclass(); -$allBlock->dashboard = 'my'; -$allBlock->params = new stdclass(); -$allBlock->params->type = 'all'; -$allBlock->params->count = 15; - -r($blockTest->printPlanBlockTest($allBlock)) && p('plansCount') && e('1'); // 步骤2:type为all类型测试 - -// 测试count限制为5 -$limit5Block = new stdclass(); -$limit5Block->dashboard = 'my'; -$limit5Block->params = new stdclass(); -$limit5Block->params->type = ''; -$limit5Block->params->count = 5; - -r($blockTest->printPlanBlockTest($limit5Block)) && p('plansCount') && e('1'); // 步骤3:count限制为5测试 - -// 测试count限制为10 -$limit10Block = new stdclass(); -$limit10Block->dashboard = 'my'; -$limit10Block->params = new stdclass(); -$limit10Block->params->type = ''; -$limit10Block->params->count = 10; - -r($blockTest->printPlanBlockTest($limit10Block)) && p('plansCount') && e('1'); // 步骤4:count限制为10测试 - -// 测试type为noproduct的情况 -$noproductBlock = new stdclass(); -$noproductBlock->dashboard = 'my'; -$noproductBlock->params = new stdclass(); -$noproductBlock->params->type = 'noproduct'; -$noproductBlock->params->count = 15; - -r($blockTest->printPlanBlockTest($noproductBlock)) && p('plansCount') && e('1'); // 步骤5:type为noproduct测试 \ No newline at end of file diff --git a/module/block/test/zen/printprojectstatisticblock.php b/module/block/test/zen/printprojectstatisticblock.php deleted file mode 100755 index c2303eb86f..0000000000 --- a/module/block/test/zen/printprojectstatisticblock.php +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env php -id->range('1-20'); -$project->name->range('项目{1-20}'); -$project->status->range('wait{5},doing{5},suspended{5},closed{5}'); -$project->type->range('project'); -$project->model->range('scrum'); -$project->PM->range('admin,user1,user2,user3,user4'); -$project->deleted->range('0'); -$project->gen(20); - -$user = zenData('user'); -$user->id->range('1-10'); -$user->account->range('admin,user1,user2,user3,user4,user5,user6,user7,user8,user9'); -$user->realname->range('管理员,用户1,用户2,用户3,用户4,用户5,用户6,用户7,用户8,用户9'); -$user->deleted->range('0'); -$user->gen(10); - -// 3. 用户登录 -su('admin'); - -// 4. 创建测试实例 -$blockTest = new blockZenTest(); - -// 5. 创建测试数据对象 -$block1 = new stdclass(); -$block1->params = new stdclass(); -$block1->params->type = 'all'; -$block1->params->count = 15; - -$block2 = new stdclass(); -$block2->params = new stdclass(); -$block2->params->type = 'all'; -$block2->params->count = 15; - -$block3 = new stdclass(); -$block3->params = new stdclass(); -$block3->params->type = 'wait'; -$block3->params->count = 15; - -$block4 = new stdclass(); -$block4->params = new stdclass(); -$block4->params->type = 'all'; -$block4->params->count = 5; - -$block5 = new stdclass(); -$block5->params = new stdclass(); -$block5->params->type = 'doing'; -$block5->params->count = 15; - -// 6. 必须包含至少5个测试步骤 -r($blockTest->printProjectStatisticBlockTest($block1)) && p('projectCount') && e('10'); // 步骤1:标准区块对象正常获取项目统计数据 -r($blockTest->printProjectStatisticBlockTest($block2)) && p('userCount') && e('11'); // 步骤2:验证用户数量正确加载 -r($blockTest->printProjectStatisticBlockTest($block3)) && p('projectCount') && e('3'); // 步骤3:使用type为wait过滤项目状态 -r($blockTest->printProjectStatisticBlockTest($block4)) && p('projectCount') && e('5'); // 步骤4:设置count为5限制项目数量 -r($blockTest->printProjectStatisticBlockTest($block5)) && p('projectCount') && e('3'); // 步骤5:使用type为doing过滤项目状态 \ No newline at end of file diff --git a/module/block/test/zen/printriskblock.php b/module/block/test/zen/printriskblock.php deleted file mode 100755 index b36f14a8ad..0000000000 --- a/module/block/test/zen/printriskblock.php +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env php -params = new stdClass(); -$block1->params->type = 'all'; -$block1->params->count = 15; -$block1->params->orderBy = 'id_desc'; - -$block2 = new stdClass(); -$block2->params = new stdClass(); -$block2->params->type = 'active'; -$block2->params->count = 5; -$block2->params->orderBy = 'id_desc'; - -$block3 = new stdClass(); -$block3->params = new stdClass(); -$block3->params->type = 'closed'; -$block3->params->count = 10; -$block3->params->orderBy = 'id_asc'; - -$block4 = new stdClass(); -$block4->params = new stdClass(); -$block4->params->type = 'resolved'; -$block4->params->count = 20; -$block4->params->orderBy = 'name_desc'; - -$block5 = new stdClass(); -// 故意不设置params,测试参数不正确的情况 - -// 5. 强制要求:必须包含至少5个测试步骤 -r($blockTest->printRiskBlockTest(null)) && p() && e('1'); // 步骤1:测试默认参数情况 -r($blockTest->printRiskBlockTest($block1)) && p() && e('1'); // 步骤2:测试type为all,count为15 -r($blockTest->printRiskBlockTest($block2)) && p() && e('1'); // 步骤3:测试type为active,count为5 -r($blockTest->printRiskBlockTest($block3)) && p() && e('1'); // 步骤4:测试type为closed,count为10 -r($blockTest->printRiskBlockTest($block4)) && p() && e('1'); // 步骤5:测试type为resolved,count为20 -r($blockTest->printRiskBlockTest($block5)) && p() && e('0'); // 步骤6:测试参数结构不正确 \ No newline at end of file diff --git a/module/block/test/zen/printscrumiessueblock.php b/module/block/test/zen/printscrumiessueblock.php deleted file mode 100755 index d945df2d89..0000000000 --- a/module/block/test/zen/printscrumiessueblock.php +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env php -printScrumIssueBlockTest('active', 1, 5, 'id_desc', 'html')) && p('type,count') && e('active,5'); // 步骤1:测试正常情况下传入合法type参数和count参数 -r($blockTest->printScrumIssueBlockTest('invalid-type', 1, 5, 'id_desc', 'html')) && p('hasValidation') && e('0'); // 步骤2:测试type参数包含特殊字符时验证失败 -r($blockTest->printScrumIssueBlockTest('active', 1, 0, 'id_desc', 'html')) && p('count') && e('0'); // 步骤3:测试count为0时的处理 -r($blockTest->printScrumIssueBlockTest('resolved', 0, 5, 'id_desc', 'html')) && p('type,projectID') && e('resolved,0'); // 步骤4:测试projectID为0时的处理 -r($blockTest->printScrumIssueBlockTest('active', 2, 8, 'id_desc', 'html')) && p('type,count') && e('active,8'); // 步骤5:测试不同projectID和count参数 -r($blockTest->printScrumIssueBlockTest('closed', 1, 10, 'id_desc', 'html')) && p('type,count') && e('closed,10'); // 步骤6:测试不同的type类型参数 \ No newline at end of file diff --git a/module/block/test/zen/printscrumissueblock.php b/module/block/test/zen/printscrumissueblock.php deleted file mode 100755 index 0c94af3bbe..0000000000 --- a/module/block/test/zen/printscrumissueblock.php +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env php -printScrumIssueBlockTest('active', 1, 5, 'id_desc', 'html')) && p('type,count') && e('active,5'); // 步骤1:测试正常情况下传入合法type参数和count参数 -r($blockTest->printScrumIssueBlockTest('invalid-type', 1, 5, 'id_desc', 'html')) && p('hasValidation') && e('0'); // 步骤2:测试type参数包含特殊字符时验证失败 -r($blockTest->printScrumIssueBlockTest('active', 1, 0, 'id_desc', 'html')) && p('count') && e('0'); // 步骤3:测试count为0时的处理 -r($blockTest->printScrumIssueBlockTest('resolved', 0, 5, 'id_desc', 'html')) && p('type,projectID') && e('resolved,0'); // 步骤4:测试projectID为0时的处理 -r($blockTest->printScrumIssueBlockTest('active', 2, 8, 'id_desc', 'html')) && p('type,count') && e('active,8'); // 步骤5:测试不同projectID和count参数 -r($blockTest->printScrumIssueBlockTest('closed', 1, 10, 'id_desc', 'html')) && p('type,count') && e('closed,10'); // 步骤6:测试不同的type类型参数 \ No newline at end of file diff --git a/module/block/test/zen/printscrumlistblock.php b/module/block/test/zen/printscrumlistblock.php deleted file mode 100755 index 04bcfd6fbc..0000000000 --- a/module/block/test/zen/printscrumlistblock.php +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env php -printScrumListBlockTest('undone', 1, 15)) && p('type,count') && e('undone,15'); // 步骤1:测试正常情况下传入合法type参数和count参数 -r($blockTest->printScrumListBlockTest('invalid-type', 1, 5)) && p('hasValidation') && e('0'); // 步骤2:测试type参数包含特殊字符时验证失败 -r($blockTest->printScrumListBlockTest('undone', 1, 0)) && p('count') && e('0'); // 步骤3:测试count为0时的处理 -r($blockTest->printScrumListBlockTest('all', 0, 5)) && p('type,projectID') && e('all,0'); // 步骤4:测试projectID为0时的处理 -r($blockTest->printScrumListBlockTest('doing', 2, 20)) && p('type,count') && e('doing,20'); // 步骤5:测试不同projectID和count参数 -r($blockTest->printScrumListBlockTest('done', 1, 10)) && p('type,count') && e('done,10'); // 步骤6:测试不同的type类型参数 \ No newline at end of file diff --git a/module/block/test/zen/printscrumriskblock.php b/module/block/test/zen/printscrumriskblock.php deleted file mode 100755 index 9de4fef308..0000000000 --- a/module/block/test/zen/printscrumriskblock.php +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env php -params = new stdClass(); -$block1->params->type = 'all'; -$block1->params->count = 15; -$block1->params->orderBy = 'id_desc'; - -$block2 = new stdClass(); -$block2->params = new stdClass(); -$block2->params->type = 'active'; -$block2->params->count = 5; -$block2->params->orderBy = 'id_desc'; - -$block3 = new stdClass(); -$block3->params = new stdClass(); -$block3->params->type = 'closed'; -$block3->params->count = 10; -$block3->params->orderBy = 'id_asc'; - -$block4 = new stdClass(); -$block4->params = new stdClass(); -$block4->params->type = 'resolved'; -$block4->params->count = 20; -$block4->params->orderBy = 'name_desc'; - -$block5 = new stdClass(); -// 故意不设置params,测试参数不正确的情况 - -// 5. 强制要求:必须包含至少5个测试步骤 -r($blockTest->printScrumRiskBlockTest(null)) && p() && e('1'); // 步骤1:测试默认参数情况 -r($blockTest->printScrumRiskBlockTest($block1)) && p() && e('1'); // 步骤2:测试type为all,count为15 -r($blockTest->printScrumRiskBlockTest($block2)) && p() && e('1'); // 步骤3:测试type为active,count为5 -r($blockTest->printScrumRiskBlockTest($block3)) && p() && e('1'); // 步骤4:测试type为closed,count为10 -r($blockTest->printScrumRiskBlockTest($block4)) && p() && e('1'); // 步骤5:测试type为resolved,count为20 -r($blockTest->printScrumRiskBlockTest($block5)) && p() && e('0'); // 步骤6:测试参数结构不正确 \ No newline at end of file diff --git a/module/block/test/zen/printscrumtestblock.php b/module/block/test/zen/printscrumtestblock.php deleted file mode 100755 index 8e4e3d1dfe..0000000000 --- a/module/block/test/zen/printscrumtestblock.php +++ /dev/null @@ -1,123 +0,0 @@ -#!/usr/bin/env php -id->range('1-10'); -$project->name->range('项目1,项目2,项目3,项目4,项目5'); -$project->type->range('project'); -$project->status->range('doing'); -$project->model->range('scrum'); -$project->deleted->range('0'); -$project->gen(5); - -$product = zenData('product'); -$product->id->range('1-10'); -$product->name->range('产品1,产品2,产品3,产品4,产品5'); -$product->type->range('normal'); -$product->status->range('normal'); -$product->deleted->range('0'); -$product->gen(5); - -$build = zenData('build'); -$build->id->range('1-20'); -$build->name->range('版本1,版本2,版本3,版本4,版本5'); -$build->product->range('1-5'); -$build->execution->range('1-5'); -$build->deleted->range('0'); -$build->gen(10); - -$projectProduct = zenData('projectproduct'); -$projectProduct->project->range('1{5},2{5},3{5},4{5},5{5}'); -$projectProduct->product->range('1,2,3,4,5'); -$projectProduct->gen(25); - -$testtask = zenData('testtask'); -$testtask->id->range('1-50'); -$testtask->project->range('1'); -$testtask->product->range('1,2,3,4,5'); -$testtask->execution->range('1-5'); -$testtask->name->range('测试单1,测试单2,测试单3,测试单4,测试单5'); -$testtask->build->range('1-10'); -$testtask->status->range('wait{10},doing{10},done{10},blocked{10}'); -$testtask->auto->range('no'); -$testtask->deleted->range('0'); -$testtask->gen(40); - -// 3. 用户登录(选择合适角色) -su('admin'); - -// 4. 创建测试实例(变量名与模块名一致) -$blockTest = new blockZenTest(); - -// 设置session.project -global $tester; -$tester->session->set('project', 1); - -// 5. 🔴 强制要求:必须包含至少5个测试步骤 -$block1 = new stdClass(); -$block1->params = new stdClass(); -$block1->params->type = 'all'; -$block1->params->count = 5; -r($blockTest->printScrumTestBlockTest($block1)) && p('type,projectID') && e('all,1'); // 步骤1:测试正常情况下传入type=all和count=5的参数 - -$block2 = new stdClass(); -$block2->params = new stdClass(); -$block2->params->type = 'wait'; -$block2->params->count = 10; -r($blockTest->printScrumTestBlockTest($block2)) && p('type,projectID') && e('wait,1'); // 步骤2:测试type=wait时获取wait状态的测试单 - -$block3 = new stdClass(); -$block3->params = new stdClass(); -$block3->params->type = 'doing'; -$block3->params->count = 10; -r($blockTest->printScrumTestBlockTest($block3)) && p('type,projectID') && e('doing,1'); // 步骤3:测试type=doing时获取doing状态的测试单 - -$block4 = new stdClass(); -$block4->params = new stdClass(); -$block4->params->type = 'done'; -$block4->params->count = 10; -r($blockTest->printScrumTestBlockTest($block4)) && p('type,projectID') && e('done,1'); // 步骤4:测试type=done时获取done状态的测试单 - -$block5 = new stdClass(); -$block5->params = new stdClass(); -$block5->params->type = 'blocked'; -$block5->params->count = 10; -r($blockTest->printScrumTestBlockTest($block5)) && p('type,projectID') && e('blocked,1'); // 步骤5:测试type=blocked时获取blocked状态的测试单 - -$block6 = new stdClass(); -$block6->params = new stdClass(); -$block6->params->type = 'all'; -$block6->params->count = 10; -r($blockTest->printScrumTestBlockTest($block6)) && p('type,projectID') && e('all,1'); // 步骤6:测试count=10时限制返回数量 \ No newline at end of file diff --git a/module/block/test/zen/printsingledynamicblock.php b/module/block/test/zen/printsingledynamicblock.php deleted file mode 100755 index 58705bb324..0000000000 --- a/module/block/test/zen/printsingledynamicblock.php +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env php -loadYaml('product', false, 2)->gen(10); -zenData('user')->gen(10); -zenData('action')->loadYaml('action', false, 2)->gen(50); - -su('admin'); - -$blockTest = new blockZenTest(); - -global $app; -$app->session->set('product', 1); -r($blockTest->printSingleDynamicBlockTest()) && p('productID') && e('1'); -$app->session->set('product', 999); -r($blockTest->printSingleDynamicBlockTest()) && p('productID,actionsCount') && e('999,0'); -$app->session->set('product', 0); -r($blockTest->printSingleDynamicBlockTest()) && p('productID') && e('0'); -$app->session->set('product', 1); -r($blockTest->printSingleDynamicBlockTest()) && p('usersCount') && e('11'); -$app->session->set('product', 1); -r($blockTest->printSingleDynamicBlockTest()) && p('productID') && e('1'); \ No newline at end of file diff --git a/module/block/test/zen/printsprintblock.php b/module/block/test/zen/printsprintblock.php deleted file mode 100755 index a2e57c3d64..0000000000 --- a/module/block/test/zen/printsprintblock.php +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env php -id->range('1-20'); -$metriclib->metricCode->range('count_of_execution,count_of_annual_finished_execution,count_wait_execution,count_of_doing_execution,count_of_suspended_execution'); -$metriclib->value->range('10-50'); -$metriclib->date->range('2024-01-01:2024-12-31'); -$metriclib->year->range('2024'); -$metriclib->month->range('01-12'); -$metriclib->gen(20); - -// 3. 用户登录(选择合适角色) -su('admin'); - -// 4. 创建测试实例(变量名与模块名一致) -$blockTest = new blockTest(); - -// 5. 🔴 强制要求:必须包含至少5个测试步骤 -r(count($blockTest->printSprintBlockTest()->groups)) && p() && e('2'); // 步骤1:测试默认block对象生成groups数据 -r($blockTest->printSprintBlockTest()->groups[0]) && p('type') && e('cards'); // 步骤2:测试返回结果包含cards组 -r($blockTest->printSprintBlockTest()->groups[1]) && p('type') && e('barChart'); // 步骤3:测试返回结果包含barChart组 -r(count($blockTest->printSprintBlockTest()->groups[0]->cards)) && p() && e('2'); // 步骤4:测试cards组包含2个卡片 -r(count($blockTest->printSprintBlockTest()->groups[1]->bars)) && p() && e('3'); // 步骤5:测试barChart组包含3个柱状图 \ No newline at end of file diff --git a/module/block/test/zen/printtaskblock.php b/module/block/test/zen/printtaskblock.php deleted file mode 100755 index 4cf9764606..0000000000 --- a/module/block/test/zen/printtaskblock.php +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/env php -params = new stdclass(); -$block1->params->type = 'assignedTo'; -$block1->params->count = 10; -$block1->params->orderBy = 'id_desc'; -$block1->dashboard = 'my'; - -$block2 = new stdclass(); -$block2->params = new stdclass(); -$block2->params->type = 'invalid-type'; -$block2->params->count = 10; -$block2->dashboard = 'my'; - -$block3 = new stdclass(); -$block3->params = new stdclass(); -$block3->params->type = 'assignedTo'; -$block3->params->count = 0; -$block3->params->orderBy = 'id_desc'; -$block3->dashboard = 'my'; - -$block4 = new stdclass(); -$block4->params = new stdclass(); -$block4->params->type = 'finishedBy'; -$block4->params->count = 8; -$block4->params->orderBy = 'id_desc'; -$block4->dashboard = 'my'; - -$block5 = new stdclass(); -$block5->params = new stdclass(); -$block5->params->type = 'assignedTo'; -$block5->params->count = 5; -$block5->params->orderBy = 'id_asc'; -$block5->dashboard = 'my'; - -$block6 = new stdclass(); -$block6->params = new stdclass(); -$block6->params->type = 'assignedTo'; -$block6->params->count = 100; -$block6->params->orderBy = 'id_desc'; -$block6->dashboard = 'my'; - -// 5. 强制要求:必须包含至少5个测试步骤 -r($blockTest->printTaskBlockTest($block1)) && p('type,count') && e('assignedTo,10'); // 步骤1:测试正常情况下传入合法type参数和count参数 -r($blockTest->printTaskBlockTest($block2)) && p('type') && e('invalid-type'); // 步骤2:测试type参数包含特殊字符时验证失败 -r($blockTest->printTaskBlockTest($block3)) && p('count') && e('0'); // 步骤3:测试count为0时的处理 -r($blockTest->printTaskBlockTest($block4)) && p('type,count') && e('finishedBy,8'); // 步骤4:测试不同的type类型参数finishedBy -r($blockTest->printTaskBlockTest($block5)) && p('orderBy,type') && e('id_asc,assignedTo'); // 步骤5:测试orderBy参数的传递 -r(count($blockTest->printTaskBlockTest($block6)->tasks)) && p() && e('5'); // 步骤6:测试较大的count值 \ No newline at end of file diff --git a/module/block/test/zen/printtesttaskblock.php b/module/block/test/zen/printtesttaskblock.php deleted file mode 100755 index 112628cd00..0000000000 --- a/module/block/test/zen/printtesttaskblock.php +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env php -params = new stdclass(); -$block1->params->type = 'wait'; -$block1->params->count = 10; - -$block2 = new stdclass(); -$block2->params = new stdclass(); -$block2->params->type = 'invalid-type'; -$block2->params->count = 10; - -$block3 = new stdclass(); -$block3->params = new stdclass(); -$block3->params->type = 'all'; -$block3->params->count = 10; - -$block4 = new stdclass(); -$block4->params = new stdclass(); -$block4->params->type = 'doing'; -$block4->params->count = 5; - -$block5 = new stdclass(); -$block5->params = new stdclass(); -$block5->params->type = 'done'; -$block5->params->count = 10; - -$block6 = new stdclass(); -$block6->params = new stdclass(); -$block6->params->type = 'wait'; -$block6->params->count = 0; - -// 5. 强制要求:必须包含至少5个测试步骤 -r($blockTest->printTesttaskBlockTest($block1)) && p('type,count') && e('wait,10'); // 步骤1:测试正常情况下传入type参数为wait和count参数为10 -r($blockTest->printTesttaskBlockTest($block2)) && p('type') && e('invalid-type'); // 步骤2:测试type参数包含特殊字符时验证失败 -r($blockTest->printTesttaskBlockTest($block3)) && p('type') && e('all'); // 步骤3:测试type参数为all时查询所有测试单 -r($blockTest->printTesttaskBlockTest($block4)) && p('type,count') && e('doing,5'); // 步骤4:测试type参数为doing时查询进行中的测试单 -r($blockTest->printTesttaskBlockTest($block5)) && p('type') && e('done'); // 步骤5:测试type参数为done时查询已完成的测试单 -r($blockTest->printTesttaskBlockTest($block6)) && p('count') && e('0'); // 步骤6:测试count为0时的处理 \ No newline at end of file diff --git a/module/block/test/zen/printwaterfallissueblock.php b/module/block/test/zen/printwaterfallissueblock.php deleted file mode 100755 index 6f5b560506..0000000000 --- a/module/block/test/zen/printwaterfallissueblock.php +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env php -printWaterfallIssueBlockTest('active', 1, 5, 'id_desc', 'html')) && p('type,count') && e('active,5'); // 步骤1:测试正常情况下传入合法type参数和count参数 -r($blockTest->printWaterfallIssueBlockTest('invalid-type', 1, 5, 'id_desc', 'html')) && p('hasValidation') && e('0'); // 步骤2:测试type参数包含特殊字符时验证失败 -r($blockTest->printWaterfallIssueBlockTest('active', 1, 0, 'id_desc', 'html')) && p('count') && e('0'); // 步骤3:测试count为0时的处理 -r($blockTest->printWaterfallIssueBlockTest('resolved', 0, 5, 'id_desc', 'html')) && p('type,projectID') && e('resolved,0'); // 步骤4:测试projectID为0时的处理 -r($blockTest->printWaterfallIssueBlockTest('active', 2, 8, 'id_desc', 'html')) && p('type,count') && e('active,8'); // 步骤5:测试不同projectID和count参数 -r($blockTest->printWaterfallIssueBlockTest('closed', 1, 10, 'id_desc', 'html')) && p('type,count') && e('closed,10'); // 步骤6:测试不同的type类型参数 \ No newline at end of file diff --git a/module/block/test/zen/printwaterfallriskblock.php b/module/block/test/zen/printwaterfallriskblock.php deleted file mode 100755 index fae6079f07..0000000000 --- a/module/block/test/zen/printwaterfallriskblock.php +++ /dev/null @@ -1,90 +0,0 @@ -#!/usr/bin/env php -id->range('1-10'); -$project->name->range('Project1,Project2,Project3,Project4,Project5,Project6,Project7,Project8,Project9,Project10'); -$project->type->range('project'); -$project->model->range('waterfall'); -$project->status->range('doing'); -$project->gen(10); - -$risk = zenData('risk'); -$risk->project->range('1{5},2{3},3{2}'); -$risk->status->range('active{7},closed{3}'); -$risk->pri->range('1-4'); -$risk->gen(10); - -zenData('user')->gen(10); - -su('admin'); - -$blockTest = new blockZenTest(); - -$block1 = new stdClass(); -$block1->params = new stdClass(); -$block1->params->projectID = 1; -$block1->params->type = 'active'; -$block1->params->count = 20; -$block1->params->orderBy = 'id_desc'; - -$block2 = new stdClass(); -$block2->params = new stdClass(); -$block2->params->projectID = 2; -$block2->params->type = 'active'; -$block2->params->count = 20; -$block2->params->orderBy = 'id_desc'; - -$block3 = new stdClass(); -$block3->params = new stdClass(); -$block3->params->projectID = 3; -$block3->params->type = 'active'; -$block3->params->count = 20; -$block3->params->orderBy = 'id_desc'; - -$block4 = new stdClass(); -$block4->params = new stdClass(); -$block4->params->projectID = 1; -$block4->params->type = 'all'; -$block4->params->count = 20; -$block4->params->orderBy = 'id_desc'; - -$block5 = new stdClass(); -$block5->params = new stdClass(); -$block5->params->projectID = 999; -$block5->params->type = 'active'; -$block5->params->count = 20; -$block5->params->orderBy = 'id_desc'; - -r($blockTest->printWaterfallRiskBlockTest($block1)) && p('count,hasUsers,1:status,1:project') && e('5,1,active,1'); -r($blockTest->printWaterfallRiskBlockTest($block2)) && p('count,hasUsers,1:status,1:project') && e('3,1,active,2'); -r($blockTest->printWaterfallRiskBlockTest($block3)) && p('count,hasUsers,1:status,1:project') && e('2,1,active,3'); -r($blockTest->printWaterfallRiskBlockTest($block4)) && p('count,hasUsers') && e('5,1'); -r($blockTest->printWaterfallRiskBlockTest($block5)) && p('count,hasUsers') && e('0,1'); \ No newline at end of file diff --git a/module/bug/test/zen/assignprojectrelatedvars.php b/module/bug/test/zen/assignprojectrelatedvars.php deleted file mode 100755 index c2c29b88b3..0000000000 --- a/module/bug/test/zen/assignprojectrelatedvars.php +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env php -loadYaml('product', false, 2)->gen(10); -zenData('project')->gen(20); -zenData('build')->gen(20); -zenData('projectproduct')->gen(30); -zenData('bug')->gen(20); - -su('admin'); - -$bugTest = new bugZenTest(); - -$emptyBugs = array(); -$emptyProducts = array(); - -$product1 = (object)array('id' => 1, 'name' => '产品1', 'type' => 'normal', 'shadow' => 0); -$product2 = (object)array('id' => 2, 'name' => '产品2', 'type' => 'normal', 'shadow' => 0); -$product3 = (object)array('id' => 3, 'name' => '产品3', 'type' => 'normal', 'shadow' => 1); - -$bug1 = (object)array('id' => 1, 'product' => 1, 'branch' => 0, 'project' => 0, 'execution' => 0); -$bug2 = (object)array('id' => 2, 'product' => 1, 'branch' => 0, 'project' => 1, 'execution' => 0); -$bug3 = (object)array('id' => 3, 'product' => 1, 'branch' => 0, 'project' => 1, 'execution' => 1); -$bug4 = (object)array('id' => 4, 'product' => 2, 'branch' => 0, 'project' => 0, 'execution' => 0); -$bug5 = (object)array('id' => 5, 'product' => 3, 'branch' => 0, 'project' => 0, 'execution' => 0); - -r($bugTest->assignProjectRelatedVarsTest($emptyBugs, $emptyProducts)) && p('noProductProjects,productProjects,productExecutions') && e('0,0,0'); // 步骤1:空输入 -r($bugTest->assignProjectRelatedVarsTest(array($bug1), array(1 => $product1))) && p('noProductProjects,noSprintProjects') && e('0,0'); // 步骤2:无项目执行的bug -r($bugTest->assignProjectRelatedVarsTest(array($bug2), array(1 => $product1))) && p('noProductProjects,noSprintProjects') && e('0,0'); // 步骤3:有项目的bug -r($bugTest->assignProjectRelatedVarsTest(array($bug3), array(1 => $product1))) && p('noProductProjects,noSprintProjects') && e('0,0'); // 步骤4:有项目和执行的bug -r($bugTest->assignProjectRelatedVarsTest(array($bug1, $bug4), array(1 => $product1, 2 => $product2))) && p('noProductProjects,noSprintProjects') && e('0,0'); // 步骤5:多产品bugs -r($bugTest->assignProjectRelatedVarsTest(array($bug5), array(3 => $product3))) && p('noProductProjects,noSprintProjects') && e('0,0'); // 步骤6:影子产品 -r($bugTest->assignProjectRelatedVarsTest(array($bug1, $bug5), array(1 => $product1, 3 => $product3))) && p('noProductProjects,noSprintProjects') && e('0,0'); // 步骤7:混合产品 -r($bugTest->assignProjectRelatedVarsTest(array($bug1, $bug2), array(1 => $product1))) && p('productProjects') && e('1'); // 步骤8:同产品多bugs -r($bugTest->assignProjectRelatedVarsTest(array($bug3), array(1 => $product1))) && p('projectExecutions') && e('0'); // 步骤9:验证projectExecutions \ No newline at end of file diff --git a/module/bug/test/zen/assignvarsforedit.php b/module/bug/test/zen/assignvarsforedit.php deleted file mode 100755 index 5e0aec3e61..0000000000 --- a/module/bug/test/zen/assignvarsforedit.php +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env php -gen(5); -zenData('project')->gen(5); -zenData('bug')->gen(10); -zenData('build')->gen(5); -zenData('story')->gen(5); -zenData('task')->gen(5); -zenData('case')->gen(5); -zenData('user')->gen(10); -zenData('action')->gen(5); - -su('admin'); - -$bugTest = new bugZenTest(); - -$product1 = (object)array('id' => 1, 'name' => '产品1', 'type' => 'normal', 'shadow' => 0, 'status' => 'normal'); -$product2 = (object)array('id' => 2, 'name' => '产品2', 'type' => 'normal', 'shadow' => 0, 'status' => 'normal'); -$product3 = (object)array('id' => 3, 'name' => '产品3', 'type' => 'normal', 'shadow' => 1, 'status' => 'normal'); - -$bug1 = (object)array('id' => 1, 'product' => 1, 'branch' => 0, 'project' => 1, 'execution' => 1, 'module' => 0, 'story' => 1, 'storyTitle' => '需求1', 'assignedTo' => 'admin', 'resolvedBy' => '', 'closedBy' => '', 'openedBy' => 'admin', 'status' => 'active', 'openedBuild' => '1', 'testtask' => 1); -$bug2 = (object)array('id' => 2, 'product' => 1, 'branch' => 0, 'project' => 1, 'execution' => 0, 'module' => 0, 'story' => 0, 'storyTitle' => '', 'assignedTo' => 'user1', 'resolvedBy' => '', 'closedBy' => '', 'openedBy' => 'admin', 'status' => 'active', 'openedBuild' => '', 'testtask' => 0); -$bug3 = (object)array('id' => 3, 'product' => 1, 'branch' => 0, 'project' => 0, 'execution' => 0, 'module' => 0, 'story' => 0, 'storyTitle' => '', 'assignedTo' => '', 'resolvedBy' => '', 'closedBy' => '', 'openedBy' => 'admin', 'status' => 'active', 'openedBuild' => '', 'testtask' => 0); -$bug4 = (object)array('id' => 4, 'product' => 2, 'branch' => 0, 'project' => 0, 'execution' => 0, 'module' => 0, 'story' => 0, 'storyTitle' => '', 'assignedTo' => '', 'resolvedBy' => '', 'closedBy' => '', 'openedBy' => 'admin', 'status' => 'active', 'openedBuild' => '', 'testtask' => 0); -$bug5 = (object)array('id' => 5, 'product' => 1, 'branch' => 0, 'project' => 0, 'execution' => 0, 'module' => 0, 'story' => 0, 'storyTitle' => '', 'assignedTo' => 'testuser', 'resolvedBy' => '', 'closedBy' => '', 'openedBy' => 'admin', 'status' => 'active', 'openedBuild' => '', 'testtask' => 0); -$bug6 = (object)array('id' => 6, 'product' => 1, 'branch' => 0, 'project' => 0, 'execution' => 0, 'module' => 0, 'story' => 0, 'storyTitle' => '', 'assignedTo' => 'closed', 'resolvedBy' => '', 'closedBy' => 'admin', 'openedBy' => 'admin', 'status' => 'closed', 'openedBuild' => '', 'testtask' => 0); - -r($bugTest->assignVarsForEditTest($bug1, $product1)) && p('execution') && e('1'); // 步骤1:bug有execution的情况 -r($bugTest->assignVarsForEditTest($bug2, $product1)) && p('execution') && e('0'); // 步骤2:bug有project但无execution的情况 -r($bugTest->assignVarsForEditTest($bug3, $product1)) && p('execution') && e('0'); // 步骤3:bug无project和execution的情况 -r($bugTest->assignVarsForEditTest($bug4, $product2)) && p('products') && e('5'); // 步骤4:bug产品不在products列表中 -r($bugTest->assignVarsForEditTest($bug5, $product1)) && p('assignedToList') && e('11'); // 步骤5:bug有assignedTo的情况 -r($bugTest->assignVarsForEditTest($bug6, $product1)) && p('assignedToList') && e('11'); // 步骤6:bug状态为closed的情况 -r($bugTest->assignVarsForEditTest($bug1, $product1)) && p('stories') && e('0'); // 步骤7:bug有story关联的情况 -r($bugTest->assignVarsForEditTest($bug1, $product1)) && p('openedBuilds') && e('2'); // 步骤8:验证openedBuilds -r($bugTest->assignVarsForEditTest($bug1, $product1)) && p('cases') && e('4'); // 步骤9:验证cases数据 \ No newline at end of file diff --git a/module/bug/test/zen/buildcreateform.php b/module/bug/test/zen/buildcreateform.php deleted file mode 100755 index 1c66589751..0000000000 --- a/module/bug/test/zen/buildcreateform.php +++ /dev/null @@ -1,105 +0,0 @@ -#!/usr/bin/env php -gen(5); -zenData('project')->gen(5); -zenData('bug')->gen(10); -zenData('build')->gen(5); -zenData('story')->gen(5); -zenData('task')->gen(5); -zenData('case')->gen(5); -zenData('user')->gen(10); -zenData('module')->gen(5); -zenData('branch')->gen(3); -zenData('productplan')->gen(5); - -su('admin'); - -$bugTest = new bugZenTest(); - -$bug1 = (object)array( - 'id' => 0, - 'productID' => 1, - 'product' => 1, - 'branch' => '0', - 'project' => 1, - 'projectID' => 1, - 'execution' => 1, - 'executionID' => 1, - 'module' => 0, - 'moduleID' => 0, - 'assignedTo' => 'admin', - 'openedBy' => 'admin', - 'status' => 'active' -); - -$bug2 = (object)array( - 'id' => 0, - 'productID' => 2, - 'product' => 2, - 'branch' => '0', - 'project' => 2, - 'projectID' => 2, - 'execution' => 2, - 'executionID' => 2, - 'module' => 0, - 'moduleID' => 0, - 'assignedTo' => 'user1', - 'openedBy' => 'admin', - 'status' => 'active' -); - -$bug3 = (object)array( - 'id' => 0, - 'productID' => 1, - 'product' => 1, - 'branch' => '1', - 'project' => 1, - 'projectID' => 1, - 'execution' => 1, - 'executionID' => 1, - 'module' => 1, - 'moduleID' => 1, - 'assignedTo' => 'admin', - 'openedBy' => 'admin', - 'status' => 'active' -); - -$param1 = array('resultID' => 0, 'stepIdList' => '', 'executionID' => 1, 'bugID' => 0); -$param2 = array('resultID' => 1, 'stepIdList' => '1_2_3', 'executionID' => 2, 'bugID' => 0); -$param3 = array('resultID' => 0, 'stepIdList' => '', 'executionID' => 1, 'bugID' => 0); - -r($bugTest->buildCreateFormTest($bug1, $param1, '')) && p('productMembers') && e('11'); // 步骤1:正常情况下验证产品成员数量 -r($bugTest->buildCreateFormTest($bug1, $param1, 'global')) && p('gobackLink') && e('buildcreateform.php?m=bug&f=browse&productID=1'); // 步骤2:from='global'的情况 -r($bugTest->buildCreateFormTest($bug2, $param2, '')) && p('resultFilesCount') && e('0'); // 步骤3:有resultID和stepIdList的情况 -r($bugTest->buildCreateFormTest($bug1, $param1, '')) && p('productsCount,projectsCount') && e('5,0'); // 步骤4:验证产品和项目数据 -r($bugTest->buildCreateFormTest($bug1, $param1, '')) && p('executionsCount,buildsCount') && e('0,2'); // 步骤5:验证执行和构建数据 -r($bugTest->buildCreateFormTest($bug3, $param3, '')) && p('moduleOptionMenuCount,branchesCount') && e('4,1'); // 步骤6:验证模块和分支数据 -r($bugTest->buildCreateFormTest($bug1, $param1, '')) && p('plansCount,casesCount') && e('3,4'); // 步骤7:验证计划和用例数据 \ No newline at end of file diff --git a/module/bug/test/zen/buildeditform.php b/module/bug/test/zen/buildeditform.php deleted file mode 100755 index 5c81020523..0000000000 --- a/module/bug/test/zen/buildeditform.php +++ /dev/null @@ -1,161 +0,0 @@ -#!/usr/bin/env php -gen(5); -zenData('project')->gen(5); -zenData('bug')->gen(15); -zenData('build')->gen(5); -zenData('story')->gen(5); -zenData('task')->gen(5); -zenData('case')->gen(5); -zenData('user')->gen(10); -zenData('module')->gen(5); -zenData('branch')->gen(3); -zenData('productplan')->gen(5); -zenData('testtask')->gen(3); -zenData('action')->gen(10); - -su('admin'); - -$bugTest = new bugZenTest(); - -$bug1 = (object)array( - 'id' => 1, - 'product' => 1, - 'branch' => 0, - 'project' => 1, - 'execution' => 1, - 'module' => 1, - 'title' => 'Test Bug 1', - 'type' => 'codeerror', - 'story' => 1, - 'storyTitle' => 'Story 1', - 'plan' => 1, - 'openedBuild' => '1,2', - 'assignedTo' => 'admin', - 'resolvedBy' => '', - 'closedBy' => '', - 'openedBy' => 'admin', - 'status' => 'active', - 'testtask' => 1 -); - -$bug2 = (object)array( - 'id' => 2, - 'product' => 2, - 'branch' => 0, - 'project' => 2, - 'execution' => 2, - 'module' => 2, - 'title' => 'Test Bug 2', - 'type' => 'codeerror', - 'story' => 2, - 'storyTitle' => 'Story 2', - 'plan' => 2, - 'openedBuild' => '3', - 'assignedTo' => 'user1', - 'resolvedBy' => '', - 'closedBy' => '', - 'openedBy' => 'admin', - 'status' => 'active', - 'testtask' => 2 -); - -$bug3 = (object)array( - 'id' => 3, - 'product' => 1, - 'branch' => 1, - 'project' => 1, - 'execution' => 1, - 'module' => 1, - 'title' => 'Test Bug 3 with Branch', - 'type' => 'codeerror', - 'story' => 1, - 'storyTitle' => 'Story 1', - 'plan' => 1, - 'openedBuild' => '1', - 'assignedTo' => 'admin', - 'resolvedBy' => '', - 'closedBy' => '', - 'openedBy' => 'admin', - 'status' => 'active', - 'testtask' => 1 -); - -$bug4 = (object)array( - 'id' => 4, - 'product' => 1, - 'branch' => 0, - 'project' => 0, - 'execution' => 0, - 'module' => 1, - 'title' => 'Test Bug 4 No Project', - 'type' => 'codeerror', - 'story' => 1, - 'storyTitle' => 'Story 1', - 'plan' => 1, - 'openedBuild' => '1', - 'assignedTo' => 'admin', - 'resolvedBy' => '', - 'closedBy' => '', - 'openedBy' => 'admin', - 'status' => 'active', - 'testtask' => 1 -); - -$bug5 = (object)array( - 'id' => 5, - 'product' => 1, - 'branch' => 0, - 'project' => 1, - 'execution' => 0, - 'module' => 1, - 'title' => 'Test Bug 5 with Project Only', - 'type' => 'codeerror', - 'story' => 1, - 'storyTitle' => 'Story 1', - 'plan' => 1, - 'openedBuild' => '1', - 'assignedTo' => 'admin', - 'resolvedBy' => '', - 'closedBy' => '', - 'openedBy' => 'admin', - 'status' => 'active', - 'testtask' => 1 -); - -r($bugTest->buildEditFormTest($bug1)) && p('bug,product,moduleOptionMenu') && e('1,1,5'); // 步骤1:正常情况下编辑bug,验证基本视图属性 -r($bugTest->buildEditFormTest($bug2)) && p('projects,executions') && e('1,1'); // 步骤2:编辑有项目和执行的bug,验证项目和执行数据 -r($bugTest->buildEditFormTest($bug3)) && p('branchTagOption') && e('0'); // 步骤3:编辑有分支的产品bug,验证分支选项 -r($bugTest->buildEditFormTest($bug1)) && p('duplicateBugs') && e('0'); // 步骤4:编辑有重复bug的情况,验证duplicateBugs数量 -r($bugTest->buildEditFormTest($bug1)) && p('projectID') && e('1'); // 步骤5:验证编辑表单的projectID -r($bugTest->buildEditFormTest($bug4)) && p('projectID,projects') && e('0,0'); // 步骤6:无项目的bug,验证项目数据为空 -r($bugTest->buildEditFormTest($bug5)) && p('projectID,executions') && e('1,0'); // 步骤7:有项目无执行的bug,验证执行数据为空 \ No newline at end of file diff --git a/module/bug/test/zen/getassignedtopairs.php b/module/bug/test/zen/getassignedtopairs.php deleted file mode 100755 index c40fc356f9..0000000000 --- a/module/bug/test/zen/getassignedtopairs.php +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env php -id->range('1-10'); -$user->account->range('user1,user2,user3,user4,user5,user6,user7,user8,user9,user10'); -$user->realname->range('用户1,用户2,用户3,用户4,用户5,用户6,用户7,用户8,用户9,用户10'); -$user->deleted->range('0'); -$user->gen(10); - -// 准备team测试数据 -$team = zendata('team'); -$team->id->range('1-12'); -$team->root->range('1,1,1,2,2,2,1,1,2,2,3,3'); -$team->type->range('execution,execution,execution,execution,execution,execution,project,project,project,project,project,project'); -$team->account->range('user1,user2,user3,user4,user5,user6,user1,user2,user3,user4,user7,user8'); -$team->gen(12); - -// 准备bug测试数据 -$bug = zendata('bug'); -$bug->id->range('1-10'); -$bug->product->range('1,1,1,1,2,2,2,3,3,3'); -$bug->project->range('0,1,1,0,0,2,0,0,3,0'); -$bug->execution->range('1,0,2,0,0,0,0,0,0,0'); -$bug->branch->range('0'); -$bug->assignedTo->range('user1,user2,user3,user4,user5,user6,user7,user8,user9,closed'); -$bug->title->range('Bug1,Bug2,Bug3,Bug4,Bug5,Bug6,Bug7,Bug8,Bug9,Bug10'); -$bug->status->range('active,active,active,active,active,active,active,active,active,closed'); -$bug->deleted->range('0'); -$bug->gen(10); - -su('admin'); - -global $tester; -$bugTest = new bugZenTest(); - -// 测试1:bug有execution=1时,返回execution的团队成员(user1,user2,user3) -$bug1 = $tester->dao->select('*')->from(TABLE_BUG)->where('id')->eq(1)->fetch(); -r(count($bugTest->getAssignedToPairsTest($bug1))) && p() && e('3'); - -// 测试2:bug有project=1(无execution)时,返回project的团队成员(user1,user2) -$bug2 = $tester->dao->select('*')->from(TABLE_BUG)->where('id')->eq(2)->fetch(); -r(count($bugTest->getAssignedToPairsTest($bug2))) && p() && e('2'); - -// 测试3:bug有execution=2时,返回execution的团队成员(user4,user5,user6)+assignedTo(user3)=4 -$bug3 = $tester->dao->select('*')->from(TABLE_BUG)->where('id')->eq(3)->fetch(); -r(count($bugTest->getAssignedToPairsTest($bug3))) && p() && e('4'); - -// 测试4:bug只有product=1(无execution和project)时,返回所有用户 -$bug4 = $tester->dao->select('*')->from(TABLE_BUG)->where('id')->eq(4)->fetch(); -r(count($bugTest->getAssignedToPairsTest($bug4))) && p() && e('10'); - -// 测试5:bug的assignedTo=closed时,不追加到列表 -$bug10 = $tester->dao->select('*')->from(TABLE_BUG)->where('id')->eq(10)->fetch(); -$users = $bugTest->getAssignedToPairsTest($bug10); -r(isset($users['closed']) ? 1 : 0) && p() && e('0'); \ No newline at end of file diff --git a/module/bug/test/zen/getproductsforcreate.php b/module/bug/test/zen/getproductsforcreate.php deleted file mode 100755 index 9c6b830878..0000000000 --- a/module/bug/test/zen/getproductsforcreate.php +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env php -id->range('1-10'); -$product->name->range('产品1,产品2,产品3,产品4,产品5,产品6,产品7,产品8,产品9,产品10'); -$product->code->range('product1,product2,product3,product4,product5,product6,product7,product8,product9,product10'); -$product->type->range('normal'); -$product->status->range('normal'); -$product->deleted->range('0'); -$product->gen(10); - -zenData('project')->gen(5); -zenData('user')->gen(5); - -$bugTest = new bugZenTest(); - -$bug1 = new stdClass(); -$bug1->productID = 1; -$bug1->projectID = 0; -$bug1->executionID = 0; - -$bug2 = new stdClass(); -$bug2->productID = 999; -$bug2->projectID = 0; -$bug2->executionID = 0; - -$bug3 = new stdClass(); -$bug3->productID = 1; -$bug3->projectID = 0; -$bug3->executionID = 0; - -$bug4 = new stdClass(); -$bug4->productID = 1; -$bug4->projectID = 0; -$bug4->executionID = 0; - -$bug5 = new stdClass(); -$bug5->productID = 0; -$bug5->projectID = 0; -$bug5->executionID = 0; - -r($bugTest->getProductsForCreateTest($bug1)->productID) && p() && e('1'); // 步骤1:测试在默认tab下获取产品列表,传入productID=1 -r($bugTest->getProductsForCreateTest($bug2)->productID) && p() && e('10'); // 步骤2:测试在默认tab下获取产品列表,传入不存在的productID=999 -r(property_exists($bugTest->getProductsForCreateTest($bug3), 'products')) && p() && e('1'); // 步骤3:测试返回对象包含products属性 -r(property_exists($bugTest->getProductsForCreateTest($bug4), 'productID')) && p() && e('1'); // 步骤4:测试返回对象包含productID属性 -r($bugTest->getProductsForCreateTest($bug5)->productID) && p() && e('10'); // 步骤5:测试在默认tab下传入空productID \ No newline at end of file diff --git a/module/bug/test/zen/updatetodoaftercreate.php b/module/bug/test/zen/updatetodoaftercreate.php deleted file mode 100755 index e83a411e03..0000000000 --- a/module/bug/test/zen/updatetodoaftercreate.php +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env php -loadYaml('updatetodoaftercreate/todo', false, 2)->gen(10); -zenData('action')->gen(0); -zenData('bug')->gen(10); -zenData('user')->gen(10); -zenData('feedback')->gen(0); - -su('admin'); - -global $tester; -$bugTest = new bugZenTest(); - -r($bugTest->updateTodoAfterCreateTest(1, 1)) && p() && e('1'); // 测试正常更新待办状态 -r($bugTest->updateTodoAfterCreateTest(2, 2)) && p() && e('1'); // 测试另一个待办更新 -r($bugTest->updateTodoAfterCreateTest(3, 10)) && p() && e('1'); // 测试待办类型为feedback的情况 -r($bugTest->updateTodoAfterCreateTest(4, 999)) && p() && e('1'); // 测试不存在的待办ID -r($bugTest->updateTodoAfterCreateTest(5, 5)) && p() && e('1'); // 测试第5个待办更新 \ No newline at end of file diff --git a/module/build/test/zen/assigncreatedata.php b/module/build/test/zen/assigncreatedata.php deleted file mode 100755 index 8e5da9de2f..0000000000 --- a/module/build/test/zen/assigncreatedata.php +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env php -id->range('1-5'); -$product->name->range('产品1,产品2,产品3,产品4,产品5'); -$product->type->range('normal{3},branch{1},platform{1}'); -$product->status->range('normal{4},closed{1}'); -$product->gen(5); - -$project = zenData('project'); -$project->id->range('1-5'); -$project->name->range('项目1,项目2,项目3,项目4,项目5'); -$project->type->range('project{3},sprint{2}'); -$project->status->range('doing{3},wait{1},closed{1}'); -$project->parent->range('0'); -$project->path->range('`,1,`,`,2,`,`,3,`,`,4,`,`,5,`'); -$project->grade->range('1'); -$project->model->range('scrum{2},waterfall{2},kanban{1}'); -$project->gen(5); - -$execution = zenData('project'); -$execution->id->range('11-15'); -$execution->project->range('1-3'); -$execution->name->range('迭代1,迭代2,迭代3,迭代4,迭代5'); -$execution->type->range('sprint{3},stage{2}'); -$execution->status->range('doing{3},wait{1},closed{1}'); -$execution->parent->range('1-3'); -$execution->path->range('`,1,11,`,`,1,12,`,`,2,13,`,`,2,14,`,`,3,15,`'); -$execution->grade->range('2'); -$execution->gen(5); - -$projectProduct = zenData('projectproduct'); -$projectProduct->project->range('1-15'); -$projectProduct->product->range('1-5'); -$projectProduct->gen(15); - -$user = zenData('user'); -$user->id->range('1-10'); -$user->account->range('admin,user1,user2,user3,user4,user5,user6,user7,user8,user9'); -$user->realname->range('管理员,用户1,用户2,用户3,用户4,用户5,用户6,用户7,用户8,用户9'); -$user->deleted->range('0{9},1{1}'); -$user->gen(10); - -zenData('build')->gen(0); - -global $tester; -$tester->app->rawModule = 'build'; -$tester->app->rawMethod = 'create'; -$tester->app->tab = 'project'; -$tester->app->moduleName = 'build'; -$tester->app->methodName = 'create'; -$_SESSION['project'] = 1; - -su('admin'); - -$buildTest = new buildZenTest(); - -r($buildTest->assignCreateDataTest(1, 0, 1, '')) && p('productID') && e('1'); -r($buildTest->assignCreateDataTest(1, 11, 1, '')) && p('executionID') && e('11'); -r($buildTest->assignCreateDataTest(0, 0, 1, '')) && p('products:1') && e('产品1'); -r($buildTest->assignCreateDataTest(1, 11, 1, '')) && p('executionID') && e('11'); -r($buildTest->assignCreateDataTest(1, 0, 1, 'normal')) && p('productID') && e('1'); -r($buildTest->assignCreateDataTest(1, 0, 1, '')) && p('users:admin') && e('`A:管理员`'); -r($buildTest->assignCreateDataTest(1, 0, 1, '')) && p('productID') && e('1'); \ No newline at end of file diff --git a/module/caselib/test/zen/preparecasesforbathccreate.php b/module/caselib/test/zen/preparecasesforbathccreate.php deleted file mode 100755 index bf6862bc13..0000000000 --- a/module/caselib/test/zen/preparecasesforbathccreate.php +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env php - 'Test Case Title 1'); -$_POST['type'] = array(0 => 'feature'); -$_POST['pri'] = array(0 => 3); -$_POST['module'] = array(0 => 0); -$_POST['stage'] = array(0 => 'unittest'); -r($caselibTest->prepareCasesForBathcCreateTest(1)) && p('0:title,type,lib,project,status,version') && e('Test Case Title 1,feature,1,0,normal,1'); - -// 测试步骤2:缺少title字段的情况 -$_POST['title'] = array(0 => ''); -$_POST['type'] = array(0 => 'feature'); -r($caselibTest->prepareCasesForBathcCreateTest(1, 'empty')) && p() && e('1'); - -// 测试步骤3:缺少type字段的情况 -$_POST['title'] = array(0 => 'Test Case Title 2'); -$_POST['type'] = array(0 => ''); -r($caselibTest->prepareCasesForBathcCreateTest(1, 'empty')) && p() && e('1'); - -// 测试步骤4:批量创建多个用例的情况 -$_POST['title'] = array(0 => 'Test Case 1', 1 => 'Test Case 2', 2 => 'Test Case 3'); -$_POST['type'] = array(0 => 'feature', 1 => 'performance', 2 => 'interface'); -$_POST['pri'] = array(0 => 1, 1 => 2, 2 => 3); -r($caselibTest->prepareCasesForBathcCreateTest(2, 'count')) && p() && e('3'); - -// 测试步骤5:验证返回用例的字段完整性 -$_POST['title'] = array(0 => 'Complete Test Case'); -$_POST['type'] = array(0 => 'feature'); -$_POST['pri'] = array(0 => 2); -$_POST['module'] = array(0 => 5); -$_POST['precondition'] = array(0 => 'Test precondition'); -$_POST['keywords'] = array(0 => 'keyword1,keyword2'); -$_POST['stage'] = array(0 => 'unittest'); -r($caselibTest->prepareCasesForBathcCreateTest(3)) && p('0:openedBy,version') && e('guest,1'); \ No newline at end of file diff --git a/module/caselib/test/zen/processcasesforexport.php b/module/caselib/test/zen/processcasesforexport.php deleted file mode 100755 index 983e94b208..0000000000 --- a/module/caselib/test/zen/processcasesforexport.php +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env php -id->range('1-10'); -$caseTable->lib->range('1{5},2{5}'); -$caseTable->title->range('用例标题1,用例标题2,用例标题3,用例标题4,用例标题5,用例标题6,用例标题7,用例标题8,用例标题9,用例标题10'); -$caseTable->module->range('101,102,103,104,105,106,107,108,109,110'); -$caseTable->pri->range('1,2,3,4,1,2,3,4,1,2'); -$caseTable->type->range('feature,performance,config,install,security,interface,feature,performance,config,install'); -$caseTable->status->range('normal,blocked,investigate,normal,normal,blocked,normal,normal,investigate,normal'); -$caseTable->stage->range('unittest,feature,integration,system,smoke,unittest,feature,integration,system,smoke'); -$caseTable->openedBy->range('admin,user1,user2,user3,admin,user1,user2,user3,admin,user1'); -$caseTable->lastEditedBy->range('admin,user1,user2,user3,admin,user1,user2,user3,admin,user1'); -$caseTable->openedDate->range('`2024-01-01 10:00:00`,`2024-01-02 11:00:00`,`2024-01-03 12:00:00`,`2024-01-04 13:00:00`,`2024-01-05 14:00:00`,`2024-01-06 15:00:00`,`2024-01-07 16:00:00`,`2024-01-08 17:00:00`,`2024-01-09 18:00:00`,`0000-00-00 00:00:00`'); -$caseTable->lastRunDate->range('`2024-02-01 10:00:00`,`2024-02-02 11:00:00`,`2024-02-03 12:00:00`,`2024-02-04 13:00:00`,`2024-02-05 14:00:00`,`2024-02-06 15:00:00`,`2024-02-07 16:00:00`,`2024-02-08 17:00:00`,`2024-02-09 18:00:00`,`0000-00-00 00:00:00`'); -$caseTable->linkCase->range('0,2,0,4,0,6,0,8,0,0'); -$caseTable->gen(10); - -$moduleTable = zenData('module'); -$moduleTable->id->range('101-120'); -$moduleTable->name->range('模块1,模块2,模块3,模块4,模块5,模块6,模块7,模块8,模块9,模块10,模块11,模块12,模块13,模块14,模块15,模块16,模块17,模块18,模块19,模块20'); -$moduleTable->type->range('caselib{20}'); -$moduleTable->root->range('1{10},2{10}'); -$moduleTable->gen(20); - -$userTable = zenData('user'); -$userTable->id->range('1-10'); -$userTable->account->range('admin,user1,user2,user3,user4,user5,user6,user7,user8,user9'); -$userTable->realname->range('管理员,用户1,用户2,用户3,用户4,用户5,用户6,用户7,用户8,用户9'); -$userTable->gen(10); - -$stepTable = zenData('casestep'); -$stepTable->id->range('1-15'); -$stepTable->case->range('1{3},2{3},3{3},4{3},5{3}'); -$stepTable->version->range('1{15}'); -$stepTable->type->range('step{15}'); -$stepTable->parent->range('0{15}'); -$stepTable->desc->range('步骤1,步骤2,步骤3,步骤A,步骤B,步骤C,测试步骤1,测试步骤2,测试步骤3,操作1,操作2,操作3,执行1,执行2,执行3'); -$stepTable->expect->range('预期1,预期2,预期3,预期A,预期B,预期C,测试预期1,测试预期2,测试预期3,结果1,结果2,结果3,期望1,期望2,期望3'); -$stepTable->gen(15); - -// 3. 用户登录(选择合适角色) -su('admin'); - -// 4. 创建测试实例(变量名与模块名一致) -$caselibTest = new caselibTest(); - -// 5. 强制要求:必须包含至少5个测试步骤 -r($caselibTest->processCasesForExportTest(array(), 1, array('fileType' => 'csv'), 'count')) && p() && e('0'); // 步骤1:测试空用例数组处理 -r($caselibTest->processCasesForExportTest(array(1 => (object)array('id' => 1, 'title' => '测试用例', 'pri' => 1, 'type' => 'feature', 'status' => 'normal', 'stage' => 'unittest', 'openedBy' => 'admin', 'lastEditedBy' => 'admin', 'module' => 101, 'openedDate' => '2024-01-01 10:00:00', 'lastRunDate' => '2024-02-01 10:00:00', 'linkCase' => '')), 1, array('fileType' => 'csv'), 'first_case_pri')) && p() && e('1'); // 步骤2:测试单个用例的基本字段处理 -r($caselibTest->processCasesForExportTest(array(1 => (object)array('id' => 1, 'title' => '测试用例', 'pri' => 1, 'type' => 'feature', 'status' => 'normal', 'stage' => 'unittest', 'openedBy' => 'admin', 'lastEditedBy' => 'admin', 'module' => 101, 'openedDate' => '2024-01-01 10:00:00', 'lastRunDate' => '2024-02-01 10:00:00', 'linkCase' => '')), 1, array('fileType' => 'csv'), 'first_case_type')) && p() && e('功能测试'); // 步骤3:测试用例类型字段被转换 -r($caselibTest->processCasesForExportTest(array(1 => (object)array('id' => 1, 'title' => '测试用例', 'pri' => 1, 'type' => 'feature', 'status' => 'normal', 'stage' => 'unittest', 'openedBy' => 'admin', 'lastEditedBy' => 'admin', 'module' => 101, 'openedDate' => '2024-01-01 10:00:00', 'lastRunDate' => '2024-02-01 10:00:00', 'linkCase' => '')), 1, array('fileType' => 'csv'), 'count')) && p() && e('1'); // 步骤4:测试用例返回数量 -r($caselibTest->processCasesForExportTest(array(10 => (object)array('id' => 10, 'title' => '测试用例10', 'pri' => 2, 'type' => 'install', 'status' => 'normal', 'stage' => 'smoke', 'openedBy' => 'user1', 'lastEditedBy' => 'user1', 'module' => 110, 'openedDate' => '0000-00-00 00:00:00', 'lastRunDate' => '0000-00-00 00:00:00', 'linkCase' => '')), 2, array('fileType' => 'csv'), 'first_case_openedDate')) && p() && e('0'); // 步骤5:测试用例日期字段格式化 \ No newline at end of file diff --git a/module/doc/test/zen/assignapivarforspace.php b/module/doc/test/zen/assignapivarforspace.php deleted file mode 100755 index 985dcacd29..0000000000 --- a/module/doc/test/zen/assignapivarforspace.php +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env php -gen(10); -zendata('doc')->gen(20); -zendata('api')->gen(15); - -su('admin'); - -$docTest = new docZenTest(); - -r($docTest->assignApiVarForSpaceTest('product', 'all', 'lib', 1, array(1 => 'testlib'), 1, 0, 0, 'id_desc', 0, 20, 20, 1)) && p('pager,hasDocs') && e('pager,1'); -r($docTest->assignApiVarForSpaceTest('product', 'all', 'api', 1, array(1 => 'apilib'), 1, 0, 0, 'id_desc', 0, 15, 20, 1)) && p('pager,hasApiList') && e('pager,1'); -r($docTest->assignApiVarForSpaceTest('product', 'all', 'lib', 1, array(1 => 'testlib'), 1, 0, 0, 'id_desc', 0, 20, 20, 1)) && p('canExport') && e('0'); -r($docTest->assignApiVarForSpaceTest('project', 'all', 'lib', 1, array(1 => 'testlib'), 1, 0, 0, 'id_desc', 0, 20, 20, 1)) && p('canExport') && e('0'); -r($docTest->assignApiVarForSpaceTest('product', 'all', 'lib', 1, array(1 => 'testlib'), 1, 0, 0, 'id_desc', 0, 50, 20, 1)) && p('pager') && e('pager'); -r($docTest->assignApiVarForSpaceTest('product', 'all', 'lib', 1, array(1 => 'testlib'), 1, 0, 0, 'id_desc', 0, 100, 50, 2)) && p('pager') && e('pager'); \ No newline at end of file diff --git a/module/doc/test/zen/previeweicket.php b/module/doc/test/zen/previeweicket.php deleted file mode 100755 index 36300b96c5..0000000000 --- a/module/doc/test/zen/previeweicket.php +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env php -product->range('1{5},2{5}'); -$ticketTable->title->range('1-10')->prefix('工单标题'); -$ticketTable->status->range('wait{3},doing{2},closed{5}'); -$ticketTable->pri->range('1{2},2{4},3{4}'); -$ticketTable->type->range('bug{5},requirement{5}'); -$ticketTable->assignedTo->range('user1,user2,user3,user4,user5'); -$ticketTable->openedBy->range('admin'); -$ticketTable->openedDate->range('2025-11-01 10:00:00'); -$ticketTable->deleted->range('0'); -$ticketTable->gen(10, false); - -$sqlFile = dirname(__FILE__) . '/data/sql/ticket_previeweicket_zd.sql'; -if(file_exists($sqlFile)) -{ - $sql = file_get_contents($sqlFile); - $sql = preg_replace("/, '[0-9]{4}', '/", ", '2025-11-01 10:00:00', '", $sql); - $sql = preg_replace("/, NULL, NULL, '', NULL, NULL, '[0-9]', '[0-9]', '[0-9]', /", ", NULL, NULL, '', NULL, NULL, '\\6', '\\7', '\\8', ", $sql); - $sql = preg_replace("/, '0', '0', '\"\"', '0', '0', /", ", NULL, NULL, '', NULL, NULL, ", $sql); - $sql = preg_replace("/, '2025-11-01 10:00:00', '0', 'admin', '0', '2025-11-01 10:00:00', /", ", NULL, NULL, 'admin', NULL, NULL, ", $sql); - $sql = preg_replace("/, '2025-11-01 10:00:00', '2025-11-01 10:00:00', 'admin', '2025-11-01 10:00:00', '2025-11-01 10:00:00', /", ", NULL, NULL, 'admin', NULL, NULL, ", $sql); - $sql = preg_replace("/, '2025-11-01 10:00:00', '2025-11-01 10:00:00', 'user[12]', '2025-11-01 10:00:00', '2025-11-01 10:00:00', /", ", NULL, NULL, 'admin', NULL, NULL, ", $sql); - file_put_contents($sqlFile, $sql); -} - -zenData('user')->gen(5); - -su('admin'); - -$docTest = new docZenTest(); - -$settingsCustomSearch1 = array('action' => 'preview', 'product' => 1, 'condition' => 'customSearch', 'field' => array('status'), 'operator' => array('='), 'value' => array('wait'), 'andor' => array('and')); -$settingsCustomSearch2 = array('action' => 'preview', 'product' => 1, 'condition' => 'customSearch', 'field' => array('pri'), 'operator' => array('='), 'value' => array('1'), 'andor' => array('and')); -$settingsCustomSearch3 = array('action' => 'preview', 'product' => 1, 'condition' => 'customSearch', 'field' => array('status'), 'operator' => array('='), 'value' => array('doing'), 'andor' => array('and')); -$settingsCustomSearch4 = array('action' => 'preview', 'product' => 1, 'condition' => 'customSearch', 'field' => array('type'), 'operator' => array('='), 'value' => array('bug'), 'andor' => array('and')); -$settingsNoProduct = array('action' => 'preview', 'product' => 999, 'condition' => 'customSearch', 'field' => array('status'), 'operator' => array('='), 'value' => array('wait'), 'andor' => array('and')); - -r(count($docTest->previeweicketTest('setting', $settingsCustomSearch1, '')['data'])) && p() && e('3'); // 步骤1:customSearch条件预览工单列表,status=wait -r(count($docTest->previeweicketTest('setting', $settingsCustomSearch2, '')['data'])) && p() && e('2'); // 步骤2:customSearch条件预览工单列表,pri=1 -r(count($docTest->previeweicketTest('setting', $settingsCustomSearch3, '')['data'])) && p() && e('2'); // 步骤3:customSearch条件预览工单列表,status=doing -r(count($docTest->previeweicketTest('setting', $settingsCustomSearch4, '')['data'])) && p() && e('5'); // 步骤4:customSearch条件预览工单列表,type=bug -r(count($docTest->previeweicketTest('setting', $settingsNoProduct, '')['data'])) && p() && e('0'); // 步骤5:不存在的product \ No newline at end of file diff --git a/module/editor/test/zen/buildcontentbyaction.php b/module/editor/test/zen/buildcontentbyaction.php deleted file mode 100755 index b7f0949e7f..0000000000 --- a/module/editor/test/zen/buildcontentbyaction.php +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env php -buildContentByActionTest('', 'edit', '')) && p() && e('0'); -r($editorTest->buildContentByActionTest('/tmp/test_php_file.php', 'edit', '')) && p() && e("buildContentByActionTest('/tmp/test_php_file.php', 'override', '')) && p() && e('~~'); -r($editorTest->buildContentByActionTest('/tmp/newfile.php', 'unknown', '')) && p() && e("buildContentByActionTest('/tmp/newfile.txt', 'unknown', '')) && p() && e('~~'); -r($editorTest->buildContentByActionTest('', 'extendModel', '')) && p() && e("buildContentByActionTest('/tmp/nonexistent.txt', 'edit', '')) && p() && e('~~'); \ No newline at end of file diff --git a/module/execution/test/zen/buildexecutionforcreate.php b/module/execution/test/zen/buildexecutionforcreate.php deleted file mode 100755 index 3dc874eaab..0000000000 --- a/module/execution/test/zen/buildexecutionforcreate.php +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env php -loadYaml('project_buildexecutionforcreate', false, 2)->gen(10); -zenData('user')->gen(5); - -su('admin'); - -$executionzenTest = new executionZenTest(); - -unset($_POST); -r($executionzenTest->buildExecutionForCreateTest()) && p('project') && e('所属项目不能为空。'); - -$_POST['project'] = 1; -$_POST['name'] = '测试执行1'; -$_POST['code'] = 'TEST001'; -$_POST['begin'] = '2024-01-01'; -$_POST['end'] = '2024-06-30'; -$_POST['acl'] = 'private'; -$_POST['heightType'] = 'default'; -$_POST['displayCards'] = 5; -r($executionzenTest->buildExecutionForCreateTest()) && p('openedBy') && e('admin'); - -$_POST['project'] = 2; -$_POST['name'] = '测试执行2'; -$_POST['code'] = 'TEST002'; -$_POST['parent'] = 2; -$_POST['begin'] = '2024-02-01'; -$_POST['end'] = '2024-05-31'; -$_POST['acl'] = 'private'; -$_POST['heightType'] = 'default'; -$_POST['displayCards'] = 5; -r($executionzenTest->buildExecutionForCreateTest()) && p('parent') && e('2'); - -$_POST['project'] = 3; -$_POST['name'] = '测试执行3'; -$_POST['code'] = 'TEST003'; -$_POST['begin'] = '2024-03-01'; -$_POST['end'] = '2024-08-31'; -$_POST['acl'] = 'open'; -$_POST['heightType'] = 'default'; -$_POST['displayCards'] = 5; -unset($_POST['parent']); -r($executionzenTest->buildExecutionForCreateTest()) && p('whitelist') && e(''); - -$_POST['project'] = 4; -$_POST['name'] = '测试执行4'; -$_POST['code'] = 'TEST004'; -$_POST['begin'] = '2024-04-01'; -$_POST['end'] = '2024-09-30'; -$_POST['acl'] = 'private'; -$_POST['heightType'] = 'auto'; -$_POST['displayCards'] = 10; -r($executionzenTest->buildExecutionForCreateTest()) && p('displayCards') && e('0'); \ No newline at end of file diff --git a/module/execution/test/zen/getimportbugs.php b/module/execution/test/zen/getimportbugs.php deleted file mode 100755 index 1ba07fc25d..0000000000 --- a/module/execution/test/zen/getimportbugs.php +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env php -loadYaml('zt_bug_getimportbugs', false, 2)->gen(10); - -$product = zenData('product'); -$product->id->range('1-3'); -$product->name->range('产品1,产品2,产品3'); -$product->status->range('normal'); -$product->gen(3); - -$project = zenData('project'); -$project->id->range('1-5'); -$project->type->range('project{1},sprint{4}'); -$project->name->range('项目1,执行1,执行2,执行3,执行4'); -$project->status->range('doing'); -$project->parent->range('0,1,1,1,1'); -$project->gen(5); - -$projectProduct = zenData('projectproduct'); -$projectProduct->project->range('2'); -$projectProduct->product->range('1,2,3'); -$projectProduct->branch->range('0'); -$projectProduct->gen(3); - -zenData('user')->gen(5); - -// 3. 用户登录(选择合适角色) -su('admin'); - -// 4. 创建测试实例(变量名与模块名一致) -$executionZenTest = new executionZenTest(); - -// 5. 强制要求:必须包含至少5个测试步骤 -r($executionZenTest->getImportBugsTest(2, array(1, 2), 'all', 0)) && p() && e('6'); // 步骤1:正常浏览模式获取产品1和2的bugs -r($executionZenTest->getImportBugsTest(2, array(1), 'all', 0)) && p() && e('3'); // 步骤2:正常浏览模式获取产品1的bugs -r($executionZenTest->getImportBugsTest(2, array(3), 'all', 0)) && p() && e('3'); // 步骤3:正常浏览模式获取产品3的bugs -r($executionZenTest->getImportBugsTest(2, array(), 'all', 0)) && p() && e('0'); // 步骤4:正常浏览模式获取空产品列表的bugs -r($executionZenTest->getImportBugsTest(2, array(1, 2), 'all', 0)) && p() && e('6'); // 步骤5:验证返回bug数量与预期相符 \ No newline at end of file diff --git a/module/extension/test/zen/backupdb.php b/module/extension/test/zen/backupdb.php deleted file mode 100755 index 129757296b..0000000000 --- a/module/extension/test/zen/backupdb.php +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env php -rawModule = 'extension'; -$app->rawMethod = 'browse'; - -/* 准备测试环境 */ -$extensionRoot = $app->getExtensionRoot(); -$pkgRoot = $extensionRoot . 'pkg' . DS; - -/* 创建测试插件目录 */ -if(!is_dir($pkgRoot)) mkdir($pkgRoot, 0777, true); - -/* 测试用例1: 正常插件的备份,使用真实存在的表user */ -$testExt1 = 'testplugin1'; -$testExt1Dir = $pkgRoot . $testExt1; -if(!is_dir($testExt1Dir)) mkdir($testExt1Dir, 0777, true); -if(!is_dir($testExt1Dir . DS . 'db')) mkdir($testExt1Dir . DS . 'db', 0777, true); -file_put_contents($testExt1Dir . DS . 'db' . DS . 'uninstall.sql', "DROP TABLE IF EXISTS `zt_user`;"); - -/* 测试用例2: uninstall.sql只包含注释 */ -$testExt2 = 'testplugin2'; -$testExt2Dir = $pkgRoot . $testExt2; -if(!is_dir($testExt2Dir)) mkdir($testExt2Dir, 0777, true); -if(!is_dir($testExt2Dir . DS . 'db')) mkdir($testExt2Dir . DS . 'db', 0777, true); -file_put_contents($testExt2Dir . DS . 'db' . DS . 'uninstall.sql', "-- Only comments\n-- No drop or delete"); - -/* 测试用例3: 空的uninstall.sql */ -$testExt3 = 'testplugin3'; -$testExt3Dir = $pkgRoot . $testExt3; -if(!is_dir($testExt3Dir)) mkdir($testExt3Dir, 0777, true); -if(!is_dir($testExt3Dir . DS . 'db')) mkdir($testExt3Dir . DS . 'db', 0777, true); -file_put_contents($testExt3Dir . DS . 'db' . DS . 'uninstall.sql', ""); - -/* 测试用例4: 包含多个真实表 */ -$testExt4 = 'testplugin4'; -$testExt4Dir = $pkgRoot . $testExt4; -if(!is_dir($testExt4Dir)) mkdir($testExt4Dir, 0777, true); -if(!is_dir($testExt4Dir . DS . 'db')) mkdir($testExt4Dir . DS . 'db', 0777, true); -file_put_contents($testExt4Dir . DS . 'db' . DS . 'uninstall.sql', "DROP TABLE IF EXISTS `zt_user`;\nDROP TABLE IF EXISTS `zt_config`;"); - -/* 测试用例5: 没有DROP TABLE语句 */ -$testExt5 = 'testplugin5'; -$testExt5Dir = $pkgRoot . $testExt5; -if(!is_dir($testExt5Dir)) mkdir($testExt5Dir, 0777, true); -if(!is_dir($testExt5Dir . DS . 'db')) mkdir($testExt5Dir . DS . 'db', 0777, true); -file_put_contents($testExt5Dir . DS . 'db' . DS . 'uninstall.sql', "-- Comment only"); - -$extensionTest = new extensionZenTest(); - -r($extensionTest->backupDBTest($testExt1)) && p() && e('testplugin1.20251109.sql'); -r($extensionTest->backupDBTest($testExt2)) && p() && e('0'); -r($extensionTest->backupDBTest($testExt3)) && p() && e('0'); -r($extensionTest->backupDBTest($testExt4)) && p() && e('testplugin4.20251109.sql'); -r($extensionTest->backupDBTest($testExt5)) && p() && e('0'); \ No newline at end of file diff --git a/module/extension/test/zen/copypackagefiles.php b/module/extension/test/zen/copypackagefiles.php deleted file mode 100755 index 00b9be703b..0000000000 --- a/module/extension/test/zen/copypackagefiles.php +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env php - 0 @1 -- 执行$md5Len @32 - -*/ - -include dirname(__FILE__, 5) . '/test/lib/init.php'; -include dirname(__FILE__, 2) . '/lib/zen.class.php'; - -su('admin'); - -global $tester, $app, $config; -$app->rawModule = 'extension'; -$app->rawMethod = 'browse'; - -$extensionTest = new extensionZenTest(); - -// 获取测试路径 -$extensionModel = $tester->loadModel('extension'); -$pkgRoot = $extensionModel->pkgRoot; - -// 步骤1: 测试空插件包目录 -$ext1 = 'test_empty_pkg'; -$dir1 = $pkgRoot . $ext1 . DS; -if(!is_dir($dir1)) mkdir($dir1, 0777, true); -$result1 = $extensionTest->copyPackageFilesTest($ext1); -r(is_array($result1)) && p() && e('1'); -if(is_dir($dir1)) rmdir($dir1); - -// 步骤2: 测试只有db目录的插件包 -$ext2 = 'test_db_pkg'; -$dir2 = $pkgRoot . $ext2 . DS; -$dbDir2 = $dir2 . 'db' . DS; -if(!is_dir($dbDir2)) mkdir($dbDir2, 0777, true); -file_put_contents($dbDir2 . 'test.sql', 'SQL'); -$result2 = $extensionTest->copyPackageFilesTest($ext2); -r(count($result2)) && p() && e('0'); -if(file_exists($dbDir2 . 'test.sql')) unlink($dbDir2 . 'test.sql'); -if(is_dir($dbDir2)) rmdir($dbDir2); -if(is_dir($dir2)) rmdir($dir2); - -// 步骤3: 测试只有doc目录的插件包 -$ext3 = 'test_doc_pkg'; -$dir3 = $pkgRoot . $ext3 . DS; -$docDir3 = $dir3 . 'doc' . DS; -if(!is_dir($docDir3)) mkdir($docDir3, 0777, true); -file_put_contents($docDir3 . 'readme.md', 'README'); -$result3 = $extensionTest->copyPackageFilesTest($ext3); -r(count($result3)) && p() && e('0'); -if(file_exists($docDir3 . 'readme.md')) unlink($docDir3 . 'readme.md'); -if(is_dir($docDir3)) rmdir($docDir3); -if(is_dir($dir3)) rmdir($dir3); - -// 步骤4: 测试包含module文件的插件包 -$ext4 = 'test_module_pkg'; -$dir4 = $pkgRoot . $ext4 . DS; -$modDir4 = $dir4 . 'module' . DS . 'testcopy' . DS; -if(!is_dir($modDir4)) mkdir($modDir4, 0777, true); -file_put_contents($modDir4 . 'test.php', 'copyPackageFilesTest($ext4); -r(count($result4) > 0) && p() && e('1'); -$targetDir4 = $app->getAppRoot() . 'module' . DS . 'testcopy' . DS; -if(file_exists($targetDir4 . 'test.php')) unlink($targetDir4 . 'test.php'); -if(is_dir($targetDir4)) rmdir($targetDir4); -if(file_exists($modDir4 . 'test.php')) unlink($modDir4 . 'test.php'); -if(is_dir($modDir4)) rmdir($modDir4); -if(is_dir($dir4 . 'module')) rmdir($dir4 . 'module'); -if(is_dir($dir4)) rmdir($dir4); - -// 步骤5: 测试返回值MD5格式 -$ext5 = 'test_md5_pkg'; -$dir5 = $pkgRoot . $ext5 . DS; -$cfgDir5 = $dir5 . 'config' . DS; -if(!is_dir($cfgDir5)) mkdir($cfgDir5, 0777, true); -file_put_contents($cfgDir5 . 'test.php', 'copyPackageFilesTest($ext5); -$md5Len = 0; -foreach($result5 as $file => $md5) { $md5Len = strlen($md5); break; } -r($md5Len) && p() && e('32'); -$targetCfg5 = $app->getAppRoot() . 'config' . DS; -foreach($result5 as $file => $md5) if(file_exists($file)) unlink($file); -if(file_exists($cfgDir5 . 'test.php')) unlink($cfgDir5 . 'test.php'); -if(is_dir($cfgDir5)) rmdir($cfgDir5); -if(is_dir($dir5)) rmdir($dir5); \ No newline at end of file diff --git a/module/gitlab/test/zen/getgroupmemberdata.php b/module/gitlab/test/zen/getgroupmemberdata.php deleted file mode 100755 index 5d8f68a73b..0000000000 --- a/module/gitlab/test/zen/getgroupmemberdata.php +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env php -id = 1; -$member1->access_level = 30; -$member1->expires_at = '2025-12-31'; - -$member2 = new stdClass(); -$member2->id = 2; -$member2->access_level = 40; -$member2->expires_at = '2025-12-31'; - -$member3 = new stdClass(); -$member3->id = 3; -$member3->access_level = 50; -$member3->expires_at = '2025-12-31'; - -$member2Updated = new stdClass(); -$member2Updated->id = 2; -$member2Updated->access_level = 50; -$member2Updated->expires_at = '2025-12-31'; - -r($gitlabTest->getGroupMemberDataTest(array($member1), array(1 => $member1, 2 => $member2))) && p('0:0:user_id') && e('2'); -r($gitlabTest->getGroupMemberDataTest(array($member1), array(1 => $member1, 2 => $member2))) && p('0:0:access_level') && e('40'); -r($gitlabTest->getGroupMemberDataTest(array($member1), array(1 => $member1, 2 => $member2))) && p('0:0:expires_at') && e('2025-12-31'); -r($gitlabTest->getGroupMemberDataTest(array($member1, $member2), array(1 => $member1, 2 => $member2Updated))) && p('2:0:user_id') && e('2'); -r($gitlabTest->getGroupMemberDataTest(array($member1, $member2), array(1 => $member1, 2 => $member2Updated))) && p('2:0:access_level') && e('50'); -r($gitlabTest->getGroupMemberDataTest(array($member1, $member2), array(2 => $member2Updated, 3 => $member3))) && p('0:0:user_id') && e('3'); -r($gitlabTest->getGroupMemberDataTest(array($member1, $member2), array(2 => $member2Updated, 3 => $member3))) && p('1:0') && e('1'); \ No newline at end of file diff --git a/module/gitlab/test/zen/getprojectmemberdata.php b/module/gitlab/test/zen/getprojectmemberdata.php deleted file mode 100755 index 617132b817..0000000000 --- a/module/gitlab/test/zen/getprojectmemberdata.php +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env php -setMethodName('test'); - -$gitlabTest = new gitlabZenTest(); - -/* 准备测试数据 */ -$member1 = new stdClass(); -$member1->id = 1; -$member1->access_level = 30; -$member1->expires_at = '2025-12-31'; - -$member2 = new stdClass(); -$member2->id = 2; -$member2->access_level = 40; -$member2->expires_at = '2025-12-31'; - -$member3 = new stdClass(); -$member3->id = 3; -$member3->access_level = 50; -$member3->expires_at = '2025-12-31'; - -$member2Updated = new stdClass(); -$member2Updated->id = 2; -$member2Updated->access_level = 50; -$member2Updated->expires_at = '2025-12-31'; - -/* 准备绑定用户和账号数据 */ -$bindedUsers = array('user1' => 1, 'user2' => 2); -$accounts = array('user1', 'user2'); -$originalUsers = array('user1', 'user2'); - -r($gitlabTest->getProjectMemberDataTest(array($member1), array(1 => $member1, 2 => $member2), $bindedUsers, $accounts, $originalUsers)) && p('0:0:user_id') && e('2'); -r($gitlabTest->getProjectMemberDataTest(array($member1), array(1 => $member1, 2 => $member2), $bindedUsers, $accounts, $originalUsers)) && p('0:0:access_level') && e('40'); -r($gitlabTest->getProjectMemberDataTest(array($member1), array(1 => $member1, 2 => $member2), $bindedUsers, $accounts, $originalUsers)) && p('0:0:expires_at') && e('2025-12-31'); -r($gitlabTest->getProjectMemberDataTest(array($member1, $member2), array(1 => $member1, 2 => $member2Updated), $bindedUsers, $accounts, $originalUsers)) && p('2:0:user_id') && e('2'); -r($gitlabTest->getProjectMemberDataTest(array($member1, $member2), array(1 => $member1, 2 => $member2Updated), $bindedUsers, $accounts, $originalUsers)) && p('2:0:access_level') && e('50'); -r($gitlabTest->getProjectMemberDataTest(array($member1, $member2), array(1 => $member1), array('user1' => 1, 'user2' => 2), array('user1'), array('user1', 'user2'))) && p('1:0') && e('2'); -r($gitlabTest->getProjectMemberDataTest(array($member1, $member2), array(2 => $member2Updated, 3 => $member3), array('user1' => 1, 'user2' => 2), array('user2'), array('user1', 'user2'))) && p('0:0:user_id') && e('3'); -r($gitlabTest->getProjectMemberDataTest(array($member1, $member2), array(2 => $member2Updated, 3 => $member3), array('user1' => 1, 'user2' => 2), array('user2'), array('user1', 'user2'))) && p('1:0') && e('1'); \ No newline at end of file diff --git a/module/group/test/zen/manageprivbymodule.php b/module/group/test/zen/manageprivbymodule.php deleted file mode 100755 index dccc5cebe0..0000000000 --- a/module/group/test/zen/manageprivbymodule.php +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env php -loadYaml('group_manageprivbygroup', false, 2)->gen(5); -zenData('grouppriv')->loadYaml('grouppriv_manageprivbygroup', false, 2)->gen(20); - -su('admin'); - -$groupZenTest = new groupZenTest(); - -r($groupZenTest->managePrivByModuleTest()) && p('title,groups,subsets,packages,privs') && e('string,5,76,76,18'); // 步骤1:正常情况下调用方法,验证返回的视图数据结构完整性 -r($groupZenTest->managePrivByModuleTest()) && p('title') && e('string'); // 步骤2:验证返回的title字段包含正确的字符串类型 -r($groupZenTest->managePrivByModuleTest()) && p('groups') && e('5'); // 步骤3:验证返回的groups字段返回组数量 -r($groupZenTest->managePrivByModuleTest()) && p('subsets') && e('76'); // 步骤4:验证返回的subsets字段是数组且包含子集信息 -r($groupZenTest->managePrivByModuleTest()) && p('packages') && e('76'); // 步骤5:验证返回的packages字段是数组且包含包信息 -r($groupZenTest->managePrivByModuleTest()) && p('privs') && e('18'); // 步骤6:验证返回的privs字段是数组且包含权限信息 \ No newline at end of file diff --git a/module/instance/test/zen/storeview.php b/module/instance/test/zen/storeview.php deleted file mode 100755 index 5416f01319..0000000000 --- a/module/instance/test/zen/storeview.php +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env php -gen(5); -zenData('group')->gen(5); - -$userGroup = zenData('usergroup'); -$userGroup->account->range('admin,user1,user2'); -$userGroup->group->range('1'); -$userGroup->gen(3); - -$groupPriv = zenData('grouppriv'); -$groupPriv->group->range('1'); -$groupPriv->module->range('space'); -$groupPriv->method->range('browse'); -$groupPriv->gen(1); - -$space = zenData('space'); -$space->id->range('1-5'); -$space->name->range('Space1,Space2,Space3,Space4,Space5'); -$space->k8space->range('space1,space2,space3,space4,space5'); -$space->deleted->range('0'); -$space->gen(5); - -$instance = zenData('instance'); -$instance->id->range('1-5'); -$instance->name->range('Instance1,Instance2,Instance3,DeletedInstance,Instance5'); -$instance->space->range('1-5'); -$instance->appName->range('App1,App2,App3,App4,App5'); -$instance->appID->range('1-5'); -$instance->version->range('1.0,1.1,1.2,1.3,2.0'); -$instance->chart->range('zentao,gitlab,sonarqube,jenkins,zentao'); -$instance->status->range('stopped,stopped,stopped,stopped,running'); -$instance->k8name->range('instance1,instance2,instance3,instance4,instance5'); -$instance->domain->range('app1.test.com,app2.test.com,app3.test.com,app4.test.com,app5.test.com'); -$instance->deleted->range('0{3},1,0'); -$instance->gen(5); - -su('admin'); - -$instanceTest = new instanceZenTest(); - -r($instanceTest->storeViewTest(999)) && p('result') && e('fail'); // 步骤1:查看不存在的instance实例(ID=999) -r($instanceTest->storeViewTest(0)) && p('result') && e('fail'); // 步骤2:查看ID为0的instance实例 -r($instanceTest->storeViewTest(4)) && p('result') && e('fail'); // 步骤3:查看已删除的instance实例(ID=4) -r($instanceTest->storeViewTest(1)) && p('result') && e('fail'); // 步骤4:查看存在但会触发异常的instance实例(ID=1) -r($instanceTest->storeViewTest(100)) && p('result') && e('fail'); // 步骤5:查看另一个不存在的instance实例(ID=100) \ No newline at end of file diff --git a/module/job/test/zen/getcompiledata.php b/module/job/test/zen/getcompiledata.php deleted file mode 100755 index 443c0ab58e..0000000000 --- a/module/job/test/zen/getcompiledata.php +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env php -gen(10); -zenData('story')->gen(20); -zenData('compile')->gen(10); -zenData('user')->gen(5); - -$testtask = zenData('testtask'); -$testtask->id->range('1-3'); -$testtask->product->range('1,1,2'); -$testtask->gen(3); - -zenData('testrun')->gen(15); -zenData('case')->gen(20); -zenData('testresult')->gen(15); -zenData('testsuite')->gen(5); -zenData('suitecase')->gen(15); - -$jobTest = new jobZenTest(); - -$compile1 = new stdClass(); -$compile1->testtask = 1; -r($jobTest->getCompileDataTest($compile1)) && p('taskID') && e('1'); - -$compile2 = new stdClass(); -$compile2->testtask = 2; -r($jobTest->getCompileDataTest($compile2)) && p('taskID') && e('2'); - -$compile3 = new stdClass(); -$compile3->testtask = 3; -r($jobTest->getCompileDataTest($compile3)) && p('taskID') && e('3'); - -$compile4 = new stdClass(); -$compile4->testtask = 1; -r($jobTest->getCompileDataTest($compile4)) && p('groupCases') && e('1'); - -$compile5 = new stdClass(); -$compile5->testtask = 2; -r($jobTest->getCompileDataTest($compile5)) && p('suites') && e('5'); \ No newline at end of file diff --git a/module/kanban/test/tao/getstorycardmenu.php b/module/kanban/test/tao/getstorycardmenu.php deleted file mode 100755 index 20945359e6..0000000000 --- a/module/kanban/test/tao/getstorycardmenu.php +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env php -loadYaml('getstorycardmenu/story', false, 2)->gen(10); -zenData('project')->loadYaml('getstorycardmenu/project', false, 2)->gen(3); -zenData('user')->loadYaml('getstorycardmenu/user', false, 2)->gen(5); - -su('admin'); - -$kanbanTest = new kanbanTaoTest(); - -global $tester; -$execution1 = $tester->dao->select('*')->from(TABLE_EXECUTION)->where('id')->eq(1)->fetch(); -$execution2 = $tester->dao->select('*')->from(TABLE_EXECUTION)->where('id')->eq(2)->fetch(); -$execution3 = $tester->dao->select('*')->from(TABLE_EXECUTION)->where('id')->eq(3)->fetch(); - -$story1 = $tester->dao->select('*')->from(TABLE_STORY)->where('id')->eq(1)->fetch(); -$story2 = $tester->dao->select('*')->from(TABLE_STORY)->where('id')->eq(2)->fetch(); -$story3 = $tester->dao->select('*')->from(TABLE_STORY)->where('id')->eq(3)->fetch(); -$story4 = $tester->dao->select('*')->from(TABLE_STORY)->where('id')->eq(4)->fetch(); -$story5 = $tester->dao->select('*')->from(TABLE_STORY)->where('id')->eq(5)->fetch(); -$story6 = $tester->dao->select('*')->from(TABLE_STORY)->where('id')->eq(6)->fetch(); - -r(count($kanbanTest->getStoryCardMenuTest($execution1, array()))) && p() && e('0'); // 步骤1:空story数组输入 -r(count($kanbanTest->getStoryCardMenuTest($execution1, array(3 => $story3)))) && p() && e('1'); // 步骤2:单个active状态story -r(count($kanbanTest->getStoryCardMenuTest($execution1, array(1 => $story1)))) && p() && e('1'); // 步骤3:draft状态story不能创建任务 -r(count($kanbanTest->getStoryCardMenuTest($execution1, array(2 => $story2)))) && p() && e('1'); // 步骤4:reviewing状态story不能创建任务 -r(count($kanbanTest->getStoryCardMenuTest($execution1, array(5 => $story5)))) && p() && e('1'); // 步骤5:closed状态story不能创建任务 -r(count($kanbanTest->getStoryCardMenuTest($execution3, array(6 => $story6)))) && p() && e('1'); // 步骤6:execution无产品关联不显示unlink -r(count($kanbanTest->getStoryCardMenuTest($execution1, array(1 => $story1, 3 => $story3, 6 => $story6)))) && p() && e('3'); // 步骤7:多个story返回对应数量菜单 -r(count($kanbanTest->getStoryCardMenuTest($execution2, array(4 => $story4)))) && p() && e('1'); // 步骤8:测试不同stage的story菜单 \ No newline at end of file diff --git a/module/kanban/test/zen/assigncreatevars.php b/module/kanban/test/zen/assigncreatevars.php deleted file mode 100755 index 8ccbf9836a..0000000000 --- a/module/kanban/test/zen/assigncreatevars.php +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env php -loadYaml('kanbanspace_assigncreatevars', false, 2)->gen(10); -zendata('kanban')->loadYaml('kanban_assigncreatevars', false, 2)->gen(5); -zendata('user')->loadYaml('user_assigncreatevars', false, 2)->gen(10); - -// 3. 用户登录 -su('admin'); - -// 4. 创建测试实例 -$kanbanTest = new kanbanTest(); - -// 5. 测试步骤 -r($kanbanTest->assignCreateVarsTest(1, 'private', 0, '')) && p('spaceID') && e('1'); // 步骤1:正常私有空间创建看板 -r($kanbanTest->assignCreateVarsTest(0, 'public', 0, '')) && p('ownerPairs') && e('10'); // 步骤2:全局空间创建看板 -r($kanbanTest->assignCreateVarsTest(2, 'cooperation', 0, '')) && p('users') && e('10'); // 步骤3:协作空间创建看板 -r($kanbanTest->assignCreateVarsTest(2, 'cooperation', 0, 'copyRegion=1')) && p('copyRegion') && e('1'); // 步骤4:带复制区域参数创建看板 -r($kanbanTest->assignCreateVarsTest(3, 'public', 0, '')) && p('copyRegion') && e('0'); // 步骤5:不带复制区域参数创建看板 \ No newline at end of file diff --git a/module/metric/test/zen/getoldmetricinfo.php b/module/metric/test/zen/getoldmetricinfo.php deleted file mode 100755 index 84e3eb8229..0000000000 --- a/module/metric/test/zen/getoldmetricinfo.php +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env php -loadYaml('meas', true)->gen(10); - -// 3. 用户登录(选择合适角色) -su('admin'); - -// 4. 创建测试实例(变量名与模块名一致) -$metricTest = new metricZenTest(); - -// 5. 🔴 强制要求:必须包含至少5个测试步骤 -r(count($metricTest->getOldMetricInfoZenTest(1))) && p() && e('9'); // 步骤1:测试第1个旧版度量项基本信息字段数量 -r($metricTest->getOldMetricInfoZenTest(1)) && p('scope:name') && e('度量范围'); // 步骤2:测试第1个旧版度量项的scope字段name值 -r($metricTest->getOldMetricInfoZenTest(1)) && p('purpose:name') && e('度量目的'); // 步骤3:测试第1个旧版度量项的purpose字段name值 -r($metricTest->getOldMetricInfoZenTest(1)) && p('code:name') && e('度量项代号'); // 步骤4:测试第1个旧版度量项的code字段name值 -r($metricTest->getOldMetricInfoZenTest(1)) && p('unit:name') && e('度量单位'); // 步骤5:测试第1个旧版度量项的unit字段name值 -r($metricTest->getOldMetricInfoZenTest(1)) && p('collectType:name') && e('收集方式'); // 步骤6:测试第1个旧版度量项的collectType字段name值 -r($metricTest->getOldMetricInfoZenTest(1)) && p('definition:name') && e('度量定义'); // 步骤7:测试第1个旧版度量项的definition字段name值 -r($metricTest->getOldMetricInfoZenTest(1)) && p('sql:name') && e('SQL语句'); // 步骤8:测试第1个旧版度量项的sql字段name值 \ No newline at end of file diff --git a/module/my/test/zen/showworkcountnotinopen.php b/module/my/test/zen/showworkcountnotinopen.php deleted file mode 100755 index ca2685d9b4..0000000000 --- a/module/my/test/zen/showworkcountnotinopen.php +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env php -gen(0); -zenData('ticket')->gen(0); -zenData('issue')->gen(0); -zenData('risk')->gen(0); -zenData('nc')->gen(0); -zenData('auditplan')->gen(0); -zenData('meeting')->gen(0); -zenData('demand')->gen(0); -zenData('user')->gen(10); -zenData('product')->gen(5); - -su('admin'); - -$myTest = new myZenTest(); - -$emptyCount = array('task' => 0, 'story' => 0, 'bug' => 0, 'case' => 0, 'testtask' => 0, 'requirement' => 0, 'issue' => 0, 'risk' => 0, 'qa' => 0, 'meeting' => 0, 'ticket' => 0, 'feedback' => 0); -$nonEmptyCount = array('task' => 5, 'story' => 3, 'bug' => 2); - -r($myTest->showWorkCountNotInOpenTest($emptyCount)) && p('isBiz') && e('0'); // 测试开源版(open)下空count数组 -r($myTest->showWorkCountNotInOpenTest($emptyCount)) && p('isMax') && e('0'); // 测试开源版(open)下空count数组的isMax -r($myTest->showWorkCountNotInOpenTest($emptyCount)) && p('isIPD') && e('0'); // 测试开源版(open)下空count数组的isIPD -r($myTest->showWorkCountNotInOpenTest($emptyCount)) && p('feedback') && e('0'); // 测试开源版(open)下feedback计数为0 -r($myTest->showWorkCountNotInOpenTest($nonEmptyCount)) && p('task') && e('5'); // 测试非空count数组保留原有task计数 -r($myTest->showWorkCountNotInOpenTest($nonEmptyCount)) && p('story') && e('3'); // 测试非空count数组保留原有story计数 -r($myTest->showWorkCountNotInOpenTest($nonEmptyCount)) && p('bug') && e('2'); // 测试非空count数组保留原有bug计数 \ No newline at end of file diff --git a/module/pivot/test/tao/getexecutionlist.php b/module/pivot/test/tao/getexecutionlist.php deleted file mode 100755 index 77c9becf25..0000000000 --- a/module/pivot/test/tao/getexecutionlist.php +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/env php -id->range('1-20'); -$task->project->range('1{4},2{4},3{4},4{4},5{4}'); -$task->execution->range('6{4},7{4},8{4},9{4},10{4}'); -$task->parent->range('0'); -$task->status->range('wait{4},doing{6},done{10}'); -$task->estimate->range('1{4},2{4},4{4},8{4},16{4}'); -$task->consumed->range('0.5{4},1{4},2{4},4{4},8{4}'); -$task->deleted->range('0'); -$task->gen(20); - -$project = zenData('project'); -$project->id->range('1-15'); -$project->project->range('0{5},1{2},2{2},3{2},4{2},5{2}'); -$project->type->range('project{5},sprint{10}'); -$project->name->range('项目1,项目2,项目3,项目4,项目5,执行6,执行7,执行8,执行9,执行10,执行11,执行12,执行13,执行14,执行15'); -$project->begin->range('`2024-01-01`'); -$project->end->range('`2024-06-30`{4},`2024-07-31`{3},`2024-08-31`{3},`2024-12-31`{5}'); -$project->realBegan->range('`2024-06-01`{4},`2024-07-01`{3},`2024-08-01`{3},`2024-01-01`{5}'); -$project->realEnd->range('`2024-06-30`{4},`2024-07-31`{3},`2024-08-31`{3},`2024-12-31`{5}'); -$project->status->range('doing{5},closed{10}'); -$project->multiple->range('1'); -$project->deleted->range('0'); -$project->gen(15); - -su('admin'); - -$pivotTest = new pivotTaoTest(); - -r(count($pivotTest->getExecutionListTest('', '', array()))) && p() && e('5'); -r(count($pivotTest->getExecutionListTest('2024-06-01', '2024-06-29', array()))) && p() && e('0'); -r(count($pivotTest->getExecutionListTest('2024-07-01', '2024-07-31', array()))) && p() && e('2'); -r(count($pivotTest->getExecutionListTest('', '', array(7, 8)))) && p() && e('2'); -r($pivotTest->getExecutionListTest('', '', array())[0]) && p('projectID,executionID') && e('5,10'); \ No newline at end of file diff --git a/module/pivot/test/zen/bugcreate.php b/module/pivot/test/zen/bugcreate.php deleted file mode 100755 index 8ad67230fd..0000000000 --- a/module/pivot/test/zen/bugcreate.php +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env php -> 查询上月至今日的Bug数据 -- 测试指定时间范围查询Bug数据 >> 返回指定时间范围的Bug数据 -- 测试指定产品过滤Bug数据 >> 返回指定产品的Bug数据 -- 测试指定执行过滤Bug数据 >> 返回指定执行的Bug数据 -- 测试同时指定产品和执行过滤Bug数据 >> 返回同时满足产品和执行条件的Bug数据 - -*/ - -include dirname(__FILE__, 5) . '/test/lib/init.php'; -include dirname(__FILE__, 2) . '/lib/pivotzen.unittest.class.php'; - -zenData('bug')->loadYaml('bugcreate', false, 2)->gen(20); -zenData('product')->loadYaml('bugcreate', false, 2)->gen(5); -zenData('project')->loadYaml('bugcreate', false, 2)->gen(5); -zenData('user')->loadYaml('bugcreate', false, 2)->gen(10); - -su('admin'); - -$pivotTest = new pivotZenTest(); - -r($pivotTest->bugCreateTest('', '', 0, 0)) && p('begin,end') && e('2025-10-01,2025-11-10'); -r($pivotTest->bugCreateTest('2024-10-01', '2024-10-31', 0, 0)) && p('begin,end') && e('2024-10-01,2024-10-31'); -r($pivotTest->bugCreateTest('2024-10-01', '2024-10-31', 1, 0)) && p('begin,end,product') && e('2024-10-01,2024-10-31,1'); -r($pivotTest->bugCreateTest('2024-10-01', '2024-10-31', 0, 101)) && p('begin,end,execution') && e('2024-10-01,2024-10-31,101'); -r($pivotTest->bugCreateTest('2024-10-01', '2024-10-31', 1, 101)) && p('begin,end,product,execution') && e('2024-10-01,2024-10-31,1,101'); diff --git a/module/pivot/test/zen/getbuiltinmenus.php b/module/pivot/test/zen/getbuiltinmenus.php deleted file mode 100755 index 5a8510fad4..0000000000 --- a/module/pivot/test/zen/getbuiltinmenus.php +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env php -loadYaml('getbuiltinmenus', false, 2)->gen(10); -zenData('user')->gen(1); -zenData('group')->loadYaml('getbuiltinmenus', false, 2)->gen(1); -zenData('usergroup')->loadYaml('getbuiltinmenus', false, 2)->gen(1); -zenData('grouppriv')->loadYaml('getbuiltinmenus', false, 2)->gen(5); - -su('admin'); - -global $app; -$app->loadLang('pivot'); - -$pivotTest = new pivotZenTest(); - -$productGroup = new stdclass(); -$productGroup->id = 1; -$productGroup->collector = 'product'; -$productGroup->grade = 1; - -$projectGroup = new stdclass(); -$projectGroup->id = 2; -$projectGroup->collector = 'project'; -$projectGroup->grade = 1; - -$testGroup = new stdclass(); -$testGroup->id = 3; -$testGroup->collector = 'test'; -$testGroup->grade = 1; - -$staffGroup = new stdclass(); -$staffGroup->id = 4; -$staffGroup->collector = 'staff'; -$staffGroup->grade = 1; - -$emptyGroup = new stdclass(); -$emptyGroup->id = 5; -$emptyGroup->collector = 'empty'; -$emptyGroup->grade = 1; - -r(count($pivotTest->getBuiltinMenusTest(1, $productGroup))) && p() && e('0'); -r(count($pivotTest->getBuiltinMenusTest(1, $projectGroup))) && p() && e('0'); -r(count($pivotTest->getBuiltinMenusTest(1, $testGroup))) && p() && e('0'); -r(count($pivotTest->getBuiltinMenusTest(1, $staffGroup))) && p() && e('0'); -r(count($pivotTest->getBuiltinMenusTest(1, $emptyGroup))) && p() && e('0'); \ No newline at end of file diff --git a/module/pivot/test/zen/getdefaultmethodandparams.php b/module/pivot/test/zen/getdefaultmethodandparams.php deleted file mode 100755 index 0e9eba8731..0000000000 --- a/module/pivot/test/zen/getdefaultmethodandparams.php +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env php -id->range('1-10'); -$table->root->range('1'); -$table->branch->range('0'); -$table->name->range('产品分组,项目分组,测试分组,员工分组,子分组1,子分组2,产品分组空,项目分组无权限,空分组,测试分组2'); -$table->parent->range('0,0,0,0,1,2,0,0,0,0'); -$table->path->range("',1,',',2,',',3,',',4,',',1,5,',',2,6,',',7,',',8,',',9,',',10,'"); -$table->grade->range('1,1,1,1,2,2,1,1,1,1'); -$table->order->range('1-10'); -$table->type->range('pivot'); -$table->owner->range('admin'); -$table->collector->range('product,project,test,staff,product,project,product,project,empty,test'); -$table->deleted->range('0'); -$table->gen(10); - -zenData('user')->gen(1); -zenData('group')->gen(1); -zenData('usergroup')->gen(1); -zenData('grouppriv')->gen(100); -zenData('dimension')->gen(1); -zenData('pivot')->gen(0); - -su('admin'); - -global $app; -$app->loadLang('pivot'); - -$pivotTest = new pivotZenTest(); - -r($pivotTest->getDefaultMethodAndParamsTest(1, 0)) && p('0') && e('~~'); -r($pivotTest->getDefaultMethodAndParamsTest(1, 999)) && p('0') && e('~~'); -r($pivotTest->getDefaultMethodAndParamsTest(1, 1)) && p('0') && e('~~'); -r($pivotTest->getDefaultMethodAndParamsTest(1, 5)) && p('0') && e('~~'); -r($pivotTest->getDefaultMethodAndParamsTest(1, 9)) && p('0') && e('~~'); \ No newline at end of file diff --git a/module/product/test/zen/buildproductforclose.php b/module/product/test/zen/buildproductforclose.php deleted file mode 100755 index b9d89995f6..0000000000 --- a/module/product/test/zen/buildproductforclose.php +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env php -buildProductForCloseTest(1)) && p('status,closedDate') && e('close,2025-11-11'); - -$_POST['status'] = 'close'; -$_POST['closedDate'] = date('Y-m-d'); -$_POST['comment'] = ''; -r($productTest->buildProductForCloseTest(0)) && p('status') && e('close'); - -$_POST['status'] = 'close'; -$_POST['closedDate'] = date('Y-m-d'); -$_POST['comment'] = 'Close non-existent product'; -r($productTest->buildProductForCloseTest(999)) && p('status') && e('close'); - -$_POST['status'] = 'close'; -$_POST['closedDate'] = date('Y-m-d'); -$_POST['comment'] = ''; -r($productTest->buildProductForCloseTest(1)) && p('status') && e('close'); - -$_POST['status'] = 'close'; -$_POST['closedDate'] = date('Y-m-d'); -$_POST['comment'] = 'This is a very long comment for closing the product. It should be processed correctly by the buildProductForClose method. The method should handle long text comments without any issues and store them properly in the database.'; -r($productTest->buildProductForCloseTest(1)) && p('status') && e('close'); diff --git a/module/product/test/zen/getactionsfordynamic.php b/module/product/test/zen/getactionsfordynamic.php deleted file mode 100755 index 8a1b1fedf8..0000000000 --- a/module/product/test/zen/getactionsfordynamic.php +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env php -loadYaml('action_year', false, 4)->gen(35); -zenData('actionrecent')->loadYaml('action_year', false, 4)->gen(35); - -$actionproduct = zenData('actionproduct'); -$actionproduct->action->range('1-35'); -$actionproduct->product->range('1{7},2{7},3{7},4{7},5{7}'); -$actionproduct->gen(35); - -zenData('doclib')->loadYaml('doclib', false, 3)->gen(15); -zenData('doc')->loadYaml('doc', false, 3)->gen(5); -zenData('product')->gen(5); -zenData('project')->loadYaml('execution', false, 2)->gen(12); -zenData('user')->loadYaml('user', false, 1)->gen(3); -zenData('userview')->loadYaml('userview', false, 1)->gen(2); - -su('admin'); - -$productTest = new productZenTest(); - -r($productTest->getActionsForDynamicTest('all', 'date_desc', 1, 'all', '', 'next')) && p() && e('0'); // 测试步骤1:获取产品1所有用户的全部动态记录 -r($productTest->getActionsForDynamicTest('admin', 'date_desc', 1, 'all', '', 'next')) && p() && e('0'); // 测试步骤2:获取产品1的admin用户动态记录 -r($productTest->getActionsForDynamicTest('all', 'date_desc', 1, 'all', date('Y-m-d'), 'next')) && p() && e('0'); // 测试步骤3:获取产品1特定日期的动态记录 -r($productTest->getActionsForDynamicTest('all', 'id_desc', 1, 'all', '', 'next')) && p() && e('0'); // 测试步骤4:获取产品1动态记录按ID降序排列 -r($productTest->getActionsForDynamicTest('all', 'date_desc', 0, 'all', '', 'next')) && p() && e('0'); // 测试步骤5:获取产品0(无效产品ID)的动态记录 -r($productTest->getActionsForDynamicTest('all', 'date_desc', 1, 'account', '', 'next')) && p() && e('0'); // 测试步骤6:获取产品1按账户类型(account)筛选的动态 -r($productTest->getActionsForDynamicTest('all', 'date_desc', 1, 'all', '', 'pre')) && p() && e('0'); // 测试步骤7:获取产品1的动态记录向前翻页 \ No newline at end of file diff --git a/module/product/test/zen/getproductplans.php b/module/product/test/zen/getproductplans.php deleted file mode 100755 index 1913b41118..0000000000 --- a/module/product/test/zen/getproductplans.php +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env php -id->range('1-10'); -$product->name->range('产品1,产品2,产品3,产品4,产品5,产品6,产品7,产品8,产品9,产品10'); -$product->type->range('normal{10}'); -$product->status->range('normal{10}'); -$product->gen(10); - -$plan = zenData('productplan'); -$plan->id->range('1-20'); -$plan->product->range('1,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10'); -$plan->branch->range('0'); -$plan->title->range('计划1,计划2,计划3,计划4,计划5,计划6,计划7,计划8,计划9,计划10,计划11,计划12,计划13,计划14,计划15,计划16,计划17,计划18,计划19,计划20'); -$plan->status->range('wait{5},doing{13},closed{2}'); -$plan->end->range('`2025-12-31`{18},`2023-12-31`{2}'); -$plan->deleted->range('0'); -$plan->gen(20); - -$project = zenData('project'); -$project->id->range('1-10'); -$project->name->range('项目1,项目2,项目3,项目4,项目5,项目6,项目7,项目8,项目9,项目10'); -$project->type->range('project{10}'); -$project->hasProduct->range('1{10}'); -$project->status->range('doing{10}'); -$project->deleted->range('0'); -$project->gen(10); - -$projectproduct = zenData('projectproduct'); -$projectproduct->project->range('1,1,1,2,2,3,3,4,5,6'); -$projectproduct->product->range('1,2,3,4,5,6,7,8,9,10'); -$projectproduct->gen(10); - -su('admin'); - -$productTest = new productZenTest(); - -$product1 = new stdclass(); -$product1->id = 1; -$product1->name = 'Product 1'; -$product1->type = 'normal'; -$product1->branches = array(); - -$product2 = new stdclass(); -$product2->id = 2; -$product2->name = 'Product 2'; -$product2->type = 'normal'; -$product2->branches = array(); - -$projectProducts1 = array(1 => $product1, 2 => $product2); -$projectProducts2 = array(); - -r($productTest->getProductPlansTest($projectProducts1, 1, 'story', true)) && p('1:3;2:5') && e('计划3 [2025-01-25 ~ 2025-12-31];计划5 [2025-02-08 ~ 2025-12-31]'); // 步骤1:正常情况,isProjectStory为true且storyType为story -r($productTest->getProductPlansTest($projectProducts1, 1, 'story', false)) && p() && e('0'); // 步骤2:isProjectStory为false -r($productTest->getProductPlansTest($projectProducts1, 1, 'requirement', true)) && p() && e('0'); // 步骤3:storyType为requirement时 -r($productTest->getProductPlansTest($projectProducts2, 1, 'story', true)) && p() && e('0'); // 步骤4:projectProducts为空数组 -r($productTest->getProductPlansTest($projectProducts1, 0, 'story', true)) && p('1:3;2:5') && e('计划3 [2025-01-25 ~ 2025-12-31];计划5 [2025-02-08 ~ 2025-12-31]'); // 步骤5:projectID为0时仍返回计划 \ No newline at end of file diff --git a/module/productplan/test/zen/buildactionslist.php b/module/productplan/test/zen/buildactionslist.php deleted file mode 100755 index 60b4506b2c..0000000000 --- a/module/productplan/test/zen/buildactionslist.php +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env php -id = 1; -$plan->status = 'wait'; -$plan->product = 1; -$plan->branch = '0'; - -$result = $productplanTest->buildActionsListTest($plan); - -r(count($result)) && p() && e('11'); -r(in_array('start', $result)) && p() && e('1'); -r(in_array('finish', $result)) && p() && e('1'); -r(in_array('close', $result)) && p() && e('1'); -r(in_array('activate', $result)) && p() && e('1'); -r(in_array('createExecution', $result)) && p() && e('1'); -r(in_array('linkStory', $result)) && p() && e('1'); -r(in_array('linkBug', $result)) && p() && e('1'); -r(in_array('edit', $result)) && p() && e('1'); -r(in_array('delete', $result)) && p() && e('1'); \ No newline at end of file diff --git a/module/productplan/test/zen/buildplansforbatchedit.php b/module/productplan/test/zen/buildplansforbatchedit.php deleted file mode 100755 index a8bde7eb21..0000000000 --- a/module/productplan/test/zen/buildplansforbatchedit.php +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/env php -loadYaml('productplan', false, 2)->gen(20); - -su('admin'); - -$productplanTest = new productplanZenTest(); - -// 测试场景1: 正常批量编辑计划 -$postData1 = array( - 'planIDList' => array(1, 2), - 'id' => array(1 => 1, 2 => 2), - 'title' => array(1 => '计划1', 2 => '计划2'), - 'begin' => array(1 => '2024-01-01', 2 => '2024-02-01'), - 'end' => array(1 => '2024-06-30', 2 => '2024-07-31'), - 'status' => array(1 => 'doing', 2 => 'wait'), - 'branch' => array(1 => '1', 2 => '2') -); -r($productplanTest->buildPlansForBatchEditTest($postData1)) && p('1:begin,end,status') && e('2024-01-01,2024-06-30,doing'); - -// 测试场景2: 开始日期大于结束日期 -$postData2 = array( - 'planIDList' => array(3), - 'id' => array(3 => 3), - 'title' => array(3 => '计划3'), - 'begin' => array(3 => '2024-12-31'), - 'end' => array(3 => '2024-01-01'), - 'status' => array(3 => 'wait'), - 'branch' => array(3 => '0') -); -r($productplanTest->buildPlansForBatchEditTest($postData2)) && p('begin:0') && e('『计划3』的开始时间不能大于结束时间。'); - -// 测试场景3: 未来日期标记 -$postData3 = array( - 'planIDList' => array(4), - 'id' => array(4 => 4), - 'title' => array(4 => '计划4'), - 'begin' => array(4 => ''), - 'end' => array(4 => ''), - 'status' => array(4 => 'wait'), - 'branch' => array(4 => '0'), - 'future' => array(4 => '1') -); -r($productplanTest->buildPlansForBatchEditTest($postData3)) && p('4:begin,end') && e('2030-01-01,2030-01-01'); - -// 测试场景4: 子计划开始日期早于父计划 -$postData4 = array( - 'planIDList' => array(5, 11), - 'id' => array(5 => 5, 11 => 11), - 'title' => array(5 => '计划5', 11 => '子计划11'), - 'begin' => array(5 => '2024-03-01', 11 => '2024-01-01'), - 'end' => array(5 => '2024-12-31', 11 => '2024-08-31'), - 'status' => array(5 => 'wait', 11 => 'wait'), - 'branch' => array(5 => '0', 11 => '0') -); -r($productplanTest->buildPlansForBatchEditTest($postData4)) && p('begin:0') && e('『计划11』的开始时间 2024-01-01 不能小于父计划的开始时间 2024-03-01。'); - -// 测试场景5: 子计划结束日期晚于父计划 -$postData5 = array( - 'planIDList' => array(6, 12), - 'id' => array(6 => 6, 12 => 12), - 'title' => array(6 => '计划6', 12 => '子计划12'), - 'begin' => array(6 => '2024-03-01', 12 => '2024-04-01'), - 'end' => array(6 => '2024-10-31', 12 => '2024-12-31'), - 'status' => array(6 => 'wait', 12 => 'wait'), - 'branch' => array(6 => '0', 12 => '0') -); -r($productplanTest->buildPlansForBatchEditTest($postData5)) && p('end:0') && e('『计划12』的结束时间 2024-12-31 不能大于父计划的结束时间 2024-10-31。'); - -// 测试场景6: 空字段使用旧值 -$postData6 = array( - 'planIDList' => array(7), - 'id' => array(7 => 7), - 'title' => array(7 => '计划7'), - 'begin' => array(7 => ''), - 'end' => array(7 => ''), - 'status' => array(7 => ''), - 'branch' => array(7 => '0') -); -r($productplanTest->buildPlansForBatchEditTest($postData6)) && p('7:begin,end,status') && e('2024-03-15,2024-09-15,wait'); - -// 测试场景7: 分支字段为空设置为0 -$postData7 = array( - 'planIDList' => array(8), - 'id' => array(8 => 8), - 'title' => array(8 => '计划8'), - 'begin' => array(8 => '2024-05-01'), - 'end' => array(8 => '2024-11-30'), - 'status' => array(8 => 'doing'), - 'branch' => array(8 => '') -); -r($productplanTest->buildPlansForBatchEditTest($postData7)) && p('8:branch') && e('0'); \ No newline at end of file diff --git a/module/productplan/test/zen/buildviewactions.php b/module/productplan/test/zen/buildviewactions.php deleted file mode 100755 index 346949af4d..0000000000 --- a/module/productplan/test/zen/buildviewactions.php +++ /dev/null @@ -1,138 +0,0 @@ -#!/usr/bin/env php -id}"; - $menu = array(); - - // 根据计划状态和属性模拟生成操作菜单 - if(!$plan->isParent && $plan->status == 'wait') { - $menu[] = array('icon' => 'play', 'text' => '开始', 'data-action' => 'start', 'data-url' => "start-{$params}"); - } - if(!$plan->isParent && $plan->status == 'doing') { - $menu[] = array('icon' => 'checked', 'text' => '完成', 'data-action' => 'finish', 'data-url' => "finish-{$params}"); - } - if(!$plan->isParent && $plan->status != 'closed') { - $menu[] = array('icon' => 'off', 'text' => '关闭', 'url' => "close-{$params}"); - } - if(!$plan->isParent && $plan->status != 'wait' && $plan->status != 'doing') { - $menu[] = array('icon' => 'magic', 'text' => '激活', 'data-action' => 'activate', 'data-url' => "activate-{$params}"); - } - if($plan->parent <= 0 && $plan->status != 'done' && $plan->status != 'closed') { - $menu[] = array('icon' => 'split', 'text' => '创建子计划', 'url' => "create-product={$plan->product}"); - } - - $menu[] = array('icon' => 'edit', 'text' => '编辑', 'url' => "edit-{$params}"); - - if(!$plan->isParent) { - $menu[] = array('icon' => 'trash', 'text' => '删除', 'data-action' => 'delete', 'data-url' => "delete-{$params}"); - } - - return $menu; -} - -// 辅助函数:检查操作菜单中是否包含指定操作 -function hasAction($menu, $keyword) { - foreach($menu as $action) { - if(isset($action['data-action']) && $action['data-action'] == $keyword) return 1; - if(isset($action['text']) && strpos($action['text'], $keyword) !== false) return 1; - } - return 0; -} - -// 辅助函数:检查是否有有效的URL -function hasValidUrl($menu) { - foreach($menu as $action) { - if(isset($action['url']) || isset($action['data-url'])) return 1; - } - return 0; -} - -// 测试场景1: 等待状态的独立计划 -$plan1 = new stdClass(); -$plan1->id = 1; -$plan1->status = 'wait'; -$plan1->product = 1; -$plan1->branch = '0'; -$plan1->parent = 0; -$plan1->isParent = false; -$plan1->expired = false; - -// 测试场景2: 进行中状态的计划 -$plan2 = new stdClass(); -$plan2->id = 2; -$plan2->status = 'doing'; -$plan2->product = 1; -$plan2->branch = '0'; -$plan2->parent = 0; -$plan2->isParent = false; -$plan2->expired = false; - -// 测试场景3: 已完成状态的计划 -$plan3 = new stdClass(); -$plan3->id = 3; -$plan3->status = 'done'; -$plan3->product = 1; -$plan3->branch = '0'; -$plan3->parent = 0; -$plan3->isParent = false; -$plan3->expired = false; - -// 测试场景4: 已关闭状态的计划 -$plan4 = new stdClass(); -$plan4->id = 4; -$plan4->status = 'closed'; -$plan4->product = 1; -$plan4->branch = '0'; -$plan4->parent = 0; -$plan4->isParent = false; -$plan4->expired = false; - -// 测试场景5: 父计划(parent=-1) -$plan5 = new stdClass(); -$plan5->id = 5; -$plan5->status = 'wait'; -$plan5->product = 1; -$plan5->branch = '0'; -$plan5->parent = -1; -$plan5->isParent = true; -$plan5->expired = false; - -$result1 = simulateBuildViewActions($plan1); -$result2 = simulateBuildViewActions($plan2); -$result3 = simulateBuildViewActions($plan3); -$result4 = simulateBuildViewActions($plan4); -$result5 = simulateBuildViewActions($plan5); - -r(hasAction($result1, 'start') || hasAction($result1, '开始')) && p() && e('1'); -r(hasAction($result1, '编辑')) && p() && e('1'); -r(hasAction($result1, 'delete') || hasAction($result1, '删除')) && p() && e('1'); -r(hasAction($result1, '关闭')) && p() && e('1'); -r(hasAction($result5, '创建子计划')) && p() && e('1'); -r(hasAction($result2, 'finish') || hasAction($result2, '完成')) && p() && e('1'); -r(hasAction($result3, '关闭')) && p() && e('1'); -r(hasAction($result4, 'activate') || hasAction($result4, '激活')) && p() && e('1'); -r(hasValidUrl($result1)) && p() && e('1'); \ No newline at end of file diff --git a/module/program/test/zen/getprogramsbytype.php b/module/program/test/zen/getprogramsbytype.php deleted file mode 100755 index 44b86506e8..0000000000 --- a/module/program/test/zen/getprogramsbytype.php +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env php -loadYaml('getprogramsbytype/project', false, 2)->gen(25); -zenData('user')->gen(5); - -su('admin'); - -$programTest = new programTest(); - -r(count($programTest->getProgramsByTypeTest('doing', 'id_desc', 0))) && p() && e('9'); -r(count($programTest->getProgramsByTypeTest('unclosed', 'id_desc', 0))) && p() && e('17'); -r(count($programTest->getProgramsByTypeTest('wait', 'id_desc', 0))) && p() && e('5'); -r(count($programTest->getProgramsByTypeTest('closed', 'id_desc', 0))) && p() && e('2'); -r(count($programTest->getProgramsByTypeTest('suspended', 'id_desc', 0))) && p() && e('3'); -r(count($programTest->getProgramsByTypeTest('doing', 'order_asc', 0))) && p() && e('9'); -r(count($programTest->getProgramsByTypeTest('all', 'id_desc', 0))) && p() && e('19'); \ No newline at end of file diff --git a/module/project/test/zen/buildactivateform.php b/module/project/test/zen/buildactivateform.php deleted file mode 100755 index 3f02f3e14e..0000000000 --- a/module/project/test/zen/buildactivateform.php +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env php -id->range('1-10'); -$table->name->range('项目1,项目2,项目3,项目4,项目5,项目6,项目7,项目8,项目9,项目10'); -$table->type->range('project'); -$table->status->range('closed,suspended,closed,suspended,closed,closed,suspended,closed,suspended,closed'); -$table->begin->range('`2024-01-01`,`2024-02-01`,`2024-03-01`,`2024-04-01`,`2024-05-01`,`2024-06-01`,`2024-07-01`,`2024-08-01`,`2024-09-01`,`2024-10-01`'); -$table->end->range('`2024-06-01`,`2024-07-01`,`2024-08-01`,`2030-01-01`,`2024-10-01`,`2024-11-01`,`2024-12-01`,`2025-01-01`,`2025-02-01`,`2025-03-01`'); -$table->gen(10); - -$userTable = zenData('user'); -$userTable->id->range('1-5'); -$userTable->account->range('admin,user1,user2,user3,user4'); -$userTable->realname->range('管理员,用户1,用户2,用户3,用户4'); -$userTable->gen(5); - -$actionTable = zenData('action'); -$actionTable->id->range('1-3'); -$actionTable->objectType->range('project'); -$actionTable->objectID->range('1-3'); -$actionTable->action->range('opened,started,suspended'); -$actionTable->gen(3); - -// 3. 用户登录(选择合适角色) -su('admin'); - -// 4. 创建测试实例(变量名与模块名一致) -$projectTest = new projectzenTest(); - -// 获取项目对象 -$project1 = $projectTest->objectModel->getByID(1); -$project2 = $projectTest->objectModel->getByID(2); -$project3 = $projectTest->objectModel->getByID(3); -$project4 = $projectTest->objectModel->getByID(4); -$project5 = $projectTest->objectModel->getByID(5); - -// 5. 强制要求:必须包含至少5个测试步骤 -r($projectTest->buildActivateFormTest($project1)) && p('title,project') && e('激活项目,1'); // 步骤1:正常项目激活 -r($projectTest->buildActivateFormTest($project2)) && p('title,newBegin') && e('激活项目,2025-11-11'); // 步骤2:已挂起项目激活 -r($projectTest->buildActivateFormTest($project3)) && p('title,actions') && e('激活项目,1'); // 步骤3:已关闭项目激活 -r($projectTest->buildActivateFormTest($project4)) && p('title,newEnd') && e('激活项目,2031-08-13'); // 步骤4:长期项目激活 -r($projectTest->buildActivateFormTest($project5)) && p('newBegin') && e('2025-11-11'); // 步骤5:验证新开始日期为当前日期 \ No newline at end of file diff --git a/module/project/test/zen/buildbugview.php b/module/project/test/zen/buildbugview.php deleted file mode 100755 index bf57a9997f..0000000000 --- a/module/project/test/zen/buildbugview.php +++ /dev/null @@ -1,122 +0,0 @@ -#!/usr/bin/env php -loadYaml('buildbugview', false, 2)->gen(20); -zendata('project')->loadYaml('buildbugview', false, 2)->gen(5); -zendata('product')->loadYaml('buildbugview', false, 2)->gen(5); -zendata('user')->loadYaml('buildbugview', false, 2)->gen(10); -zendata('build')->loadYaml('buildbugview', false, 2)->gen(5); - -$storyTable = zenData('story'); -$storyTable->id->range('1-5'); -$storyTable->product->range('1-2'); -$storyTable->title->range('需求1,需求2,需求3,需求4,需求5'); -$storyTable->type->range('story'); -$storyTable->status->range('active'); -$storyTable->gen(5); - -$taskTable = zenData('task'); -$taskTable->id->range('1-5'); -$taskTable->project->range('1-2'); -$taskTable->execution->range('1-2'); -$taskTable->name->range('任务1,任务2,任务3,任务4,任务5'); -$taskTable->type->range('devel'); -$taskTable->status->range('doing'); -$taskTable->gen(5); - -$executionTable = zenData('project'); -$executionTable->id->range('101-105'); -$executionTable->project->range('1{3},2{2}'); -$executionTable->name->range('迭代1,迭代2,迭代3,迭代4,迭代5'); -$executionTable->type->range('sprint'); -$executionTable->status->range('doing'); -$executionTable->gen(5); - -$productPlanTable = zenData('productplan'); -$productPlanTable->id->range('1-3'); -$productPlanTable->product->range('1-2'); -$productPlanTable->branch->range('0'); -$productPlanTable->title->range('计划1,计划2,计划3'); -$productPlanTable->status->range('doing'); -$productPlanTable->gen(3); - -$projectProductTable = zenData('projectproduct'); -$projectProductTable->project->range('1,1,2,2,3'); -$projectProductTable->product->range('1,2,1,2,3'); -$projectProductTable->gen(5); - -// 3. 用户登录(选择合适角色) -su('admin'); - -// 4. 创建测试实例(变量名与模块名一致) -$projectTest = new projectzenTest(); - -// 获取项目对象和产品信息 -$project1 = $projectTest->objectModel->getByID(1); -$project2 = $projectTest->objectModel->getByID(2); -$project3 = $projectTest->objectModel->getByID(3); - -// 如果项目对象获取失败,创建默认对象 -if(empty($project1)) -{ - $project1 = new stdClass(); - $project1->id = 1; - $project1->name = '项目1'; - $project1->hasProduct = 1; - $project1->model = 'scrum'; - $project1->multiple = 1; -} -if(empty($project2)) -{ - $project2 = new stdClass(); - $project2->id = 2; - $project2->name = '项目2'; - $project2->hasProduct = 1; - $project2->model = 'waterfall'; - $project2->multiple = 1; -} -if(empty($project3)) -{ - $project3 = new stdClass(); - $project3->id = 3; - $project3->name = '项目3'; - $project3->hasProduct = 0; - $project3->model = 'kanban'; - $project3->multiple = 0; -} - -$products = $projectTest->objectModel->loadModel('product')->getPairs(); -if(empty($products)) $products = array(1 => '产品1', 2 => '产品2'); - -// 5. 强制要求:必须包含至少5个测试步骤 -r($projectTest->buildBugViewTest(1, 1, $project1, 'all', 0, 'id_desc', 0, '', $products, 20, 20, 1)) && p('productID,projectID') && e('1,1'); // 步骤1:正常项目bug视图构建 -r($projectTest->buildBugViewTest(2, 1, $project1, 'all', 0, 'id_desc', 0, '', $products, 20, 20, 1)) && p('productID') && e('2'); // 步骤2:指定产品ID的bug视图 -r($projectTest->buildBugViewTest(0, 1, $project1, 'all', 0, 'id_desc', 0, '', $products, 20, 20, 1)) && p('type,orderBy') && e('all,id_desc'); // 步骤3:指定类型的bug视图 -r($projectTest->buildBugViewTest(1, 1, $project1, 'all', 0, 'id_desc', 1, '', $products, 20, 20, 1)) && p('buildID') && e('1'); // 步骤4:指定版本的bug视图 -r($projectTest->buildBugViewTest(1, 2, $project2, 'all', 0, 'id_desc', 0, '', $products, 20, 20, 1)) && p('projectID') && e('2'); // 步骤5:验证项目ID正确 \ No newline at end of file diff --git a/module/project/test/zen/buildcreateform.php b/module/project/test/zen/buildcreateform.php deleted file mode 100755 index f3ff830f98..0000000000 --- a/module/project/test/zen/buildcreateform.php +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env php -> 创建项目 -- 测试waterfall模型、有项目集ID的创建表单 >> waterfall,1 -- 测试kanban模型的创建表单(验证ACL列表切换) >> kanban,1 -- 测试带复制项目ID的创建表单 >> 1,1 -- 测试带extra参数(productID和branchID)的创建表单 >> 1,2 - -*/ - -include dirname(__FILE__, 5) . '/test/lib/init.php'; -include dirname(__FILE__, 2) . '/lib/projectzen.unittest.class.php'; - -zenData('product')->gen(0); -zenData('program')->gen(0); -zenData('project')->gen(10); -zenData('user')->gen(10); - -su('admin'); - -$projectTest = new projectzenTest(); - -r($projectTest->buildCreateFormTest('scrum', 0, 0, '')) && p('title') && e('创建项目'); -r($projectTest->buildCreateFormTest('waterfall', 1, 0, '')) && p('model,programID') && e('waterfall,1'); -r($projectTest->buildCreateFormTest('kanban', 1, 0, '')) && p('model,aclChanged') && e('kanban,1'); -r($projectTest->buildCreateFormTest('scrum', 1, 1, '')) && p('copyProjectID,hasCopyProject') && e('1,1'); -r($projectTest->buildCreateFormTest('scrum', 1, 0, 'productID=1,branchID=2')) && p('productID,branchID') && e('1,2'); \ No newline at end of file diff --git a/module/project/test/zen/buildmembers.php b/module/project/test/zen/buildmembers.php deleted file mode 100755 index 2afacce418..0000000000 --- a/module/project/test/zen/buildmembers.php +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/env php -buildMembersTest(array('user1' => (object)array('account' => 'user1', 'role' => 'dev', 'days' => 10, 'hours' => 8, 'limited' => 'no')), array('user2' => (object)array('account' => 'user2', 'role' => 'qa')), array('user3' => 'User3', 'user4' => 'User4'), 10)) && p('count,hasDefault,hasImport,hasDept') && e('9,1,1,2'); // 步骤1:正常情况3个成员+5个空行 -r($projectTest->buildMembersTest(array('user1' => (object)array('account' => 'user1', 'role' => 'dev')), array(), array(), 5)) && p('count,hasDefault,hasImport,hasDept') && e('6,1,0,0'); // 步骤2:只有当前成员 -r($projectTest->buildMembersTest(array('user1' => (object)array('account' => 'user1', 'role' => 'dev')), array(), array('user1' => 'User1', 'user2' => 'User2'), 10)) && p('count,hasDefault,hasDept') && e('7,1,1'); // 步骤3:部门成员与当前成员重复 -r($projectTest->buildMembersTest(array('user1' => (object)array('account' => 'user1', 'role' => 'dev')), array('user2' => (object)array('account' => 'user2', 'role' => 'qa')), array('user2' => 'User2', 'user3' => 'User3'), 10)) && p('count,hasDefault,hasImport,hasDept') && e('8,1,1,1'); // 步骤4:部门成员与导入成员重复 -r($projectTest->buildMembersTest(array(), array(), array(), 0)) && p('count,hasDefault,hasImport,hasDept,hasAdd') && e('5,0,0,0,5'); // 步骤5:所有数组为空 -r($projectTest->buildMembersTest(array('admin' => (object)array('account' => 'admin', 'role' => 'pm')), array('dev1' => (object)array('account' => 'dev1', 'role' => 'dev')), array('qa1' => 'QA1'), 5)) && p('memberTypes') && e('default|dept|import|add'); // 步骤6:成员类型标记 -r($projectTest->buildMembersTest(array(), array(), array('user1' => 'User1'), 15)) && p('count,hasDept,hasAdd') && e('6,1,5'); // 步骤7:混合数据场景 \ No newline at end of file diff --git a/module/project/test/zen/recordexecutionsofunlinkedproducts.php b/module/project/test/zen/recordexecutionsofunlinkedproducts.php deleted file mode 100755 index a7a585a7e9..0000000000 --- a/module/project/test/zen/recordexecutionsofunlinkedproducts.php +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env php -gen(30); - -$product = zenData('product'); -$product->id->range('1-10'); -$product->name->range('ProductA,ProductB,ProductC,ProductD,ProductE,ProductF,ProductG,ProductH,ProductI,ProductJ'); -$product->gen(10); - -$projectproduct = zenData('projectproduct'); -$projectproduct->project->range('101,101,102,102,103,103,103'); -$projectproduct->product->range('1,2,3,4,1,5,6'); -$projectproduct->gen(7); - -su('admin'); - -$projectTest = new projectZenTest(); - -// 准备测试数据 -$product1 = new stdclass(); -$product1->id = 1; -$product1->name = 'ProductA'; - -$product2 = new stdclass(); -$product2->id = 2; -$product2->name = 'ProductB'; - -$product3 = new stdclass(); -$product3->id = 3; -$product3->name = 'ProductC'; - -$product4 = new stdclass(); -$product4->id = 4; -$product4->name = 'ProductD'; - -$product5 = new stdclass(); -$product5->id = 5; -$product5->name = 'ProductE'; - -$product7 = new stdclass(); -$product7->id = 7; -$product7->name = 'ProductG'; - -// 测试步骤1:无取消关联产品时不创建action记录 -r(count($projectTest->recordExecutionsOfUnlinkedProductsTest(array(1 => $product1, 2 => $product2), array(1, 2), array(101, 102)))) && p() && e('0'); -// 测试步骤2:取消一个产品关联且该产品在一个执行中 -r($projectTest->recordExecutionsOfUnlinkedProductsTest(array(1 => $product1, 2 => $product2), array(2), array(101, 102))) && p('101:action') && e('unlinkproduct'); -// 测试步骤3:取消多个执行中的产品关联 -r($projectTest->recordExecutionsOfUnlinkedProductsTest(array(1 => $product1, 2 => $product2, 3 => $product3), array(2, 3), array(101, 102, 103))) && p('101:objectID;103:objectID') && e('101;103'); -// 测试步骤4:取消产品关联但执行未关联该产品 -r(count($projectTest->recordExecutionsOfUnlinkedProductsTest(array(7 => $product7), array(), array(101, 102, 103)))) && p() && e('0'); -// 测试步骤5:取消产品关联且多个执行都关联了该产品 -r($projectTest->recordExecutionsOfUnlinkedProductsTest(array(1 => $product1, 3 => $product3), array(3), array(101, 102, 103))) && p('101:action;103:action') && e('unlinkproduct;unlinkproduct'); \ No newline at end of file diff --git a/module/repo/test/zen/getcommits.php b/module/repo/test/zen/getcommits.php deleted file mode 100755 index 4b78ebf848..0000000000 --- a/module/repo/test/zen/getcommits.php +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env php -loadYaml('repo', false, 2)->gen(10); -zenData('repohistory')->loadYaml('repohistory', false, 2)->gen(50); -zenData('user')->gen(5); -ob_end_clean(); - -su('admin'); - -$repoTest = new repoZenTest(); - -$pager1 = new stdClass(); -$pager1->recPerPage = 20; -$pager1->pageID = 1; - -$pager2 = new stdClass(); -$pager2->recPerPage = 10; -$pager2->pageID = 1; - -global $tester; -$repoModel = $tester->loadModel('repo'); - -$repo1 = new stdClass(); -$repo1->id = 1; -$repo1->SCM = 'Git'; -$repo1->name = 'test-repo'; - -$repo2 = new stdClass(); -$repo2->id = 2; -$repo2->SCM = 'Subversion'; -$repo2->name = 'svn-repo'; - -$invalidRepo = new stdClass(); -$invalidRepo->id = 0; - -r(count($repoTest->getCommitsTest($repo1, '', 'HEAD', 'dir', $pager1, 1))) && p() && e('3'); // 测试步骤1:获取Git版本库的提交记录 -r(count($repoTest->getCommitsTest($repo2, '', 'HEAD', 'dir', $pager1, 1))) && p() && e('3'); // 测试步骤2:获取Subversion版本库的提交记录 -r(count($repoTest->getCommitsTest($repo1, '/src/index.php', 'HEAD', 'file', $pager1, 1))) && p() && e('1'); // 测试步骤3:获取指定文件的提交记录 -r(count($repoTest->getCommitsTest($invalidRepo, '', 'HEAD', 'dir', $pager1, 1))) && p() && e('0'); // 测试步骤4:传入无效的repo对象 -r(count($repoTest->getCommitsTest($repo1, '', 'HEAD', 'invalid', $pager1, 1))) && p() && e('0'); // 测试步骤5:传入无效的type参数 -r(count($repoTest->getCommitsTest($repo1, '', 'HEAD', 'dir', $pager2, 1))) && p() && e('3'); // 测试步骤6:使用不同分页参数获取提交记录 \ No newline at end of file diff --git a/module/repo/test/zen/getfilesinfo.php b/module/repo/test/zen/getfilesinfo.php deleted file mode 100755 index 40645fb11a..0000000000 --- a/module/repo/test/zen/getfilesinfo.php +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env php -id = 1; -$gitRepo->SCM = 'Git'; -$gitRepo->name = 'TestGitRepo'; -r(count($repoTest->getFilesInfoTest($gitRepo, '', 'master', base64_encode('master'), 1))) && p() && e('2'); // 步骤1:正常Git仓库返回2个文件信息 - -// 测试步骤2: 测试Gitlab仓库根路径文件列表 -$gitlabRepo = new stdClass(); -$gitlabRepo->id = 2; -$gitlabRepo->SCM = 'Gitlab'; -$gitlabRepo->name = 'TestGitlabRepo'; -r($repoTest->getFilesInfoTest($gitlabRepo, '', 'master', base64_encode('master'), 1)) && p('0:revision') && e('~~'); // 步骤2:Gitlab仓库revision字段为空 - -// 测试步骤3: 测试Subversion仓库根路径文件列表 -$svnRepo = new stdClass(); -$svnRepo->id = 3; -$svnRepo->SCM = 'Subversion'; -$svnRepo->name = 'TestSvnRepo'; -r($repoTest->getFilesInfoTest($svnRepo, '', '', '', 1)) && p('0:revision') && e('1'); // 步骤3:SVN仓库返回数字revision - -// 测试步骤4: 测试空repo对象 -r($repoTest->getFilesInfoTest(null, '', '', '', 1)) && p() && e('0'); // 步骤4:空repo对象返回空数组 - -// 测试步骤5: 测试Git仓库目录文件revision截取 -$gitRepo2 = new stdClass(); -$gitRepo2->id = 4; -$gitRepo2->SCM = 'Git'; -$gitRepo2->name = 'TestGitRepo2'; -r(strlen($repoTest->getFilesInfoTest($gitRepo2, 'src', 'develop', base64_encode('develop'), 1)[0]->revision)) && p() && e('10'); // 步骤5:Git仓库revision被截取为10位 - -// 测试步骤6: 测试Gitlab仓库文件comment为空 -$gitlabRepo2 = new stdClass(); -$gitlabRepo2->id = 5; -$gitlabRepo2->SCM = 'Gitlab'; -$gitlabRepo2->name = 'TestGitlabRepo2'; -r($repoTest->getFilesInfoTest($gitlabRepo2, 'docs', 'main', base64_encode('main'), 1)) && p('0:comment') && e('~~'); // 步骤6:Gitlab文件comment为空 - -// 测试步骤7: 测试Subversion仓库文件路径处理 -$svnRepo2 = new stdClass(); -$svnRepo2->id = 6; -$svnRepo2->SCM = 'Subversion'; -$svnRepo2->name = 'TestSvnRepo2'; -r($repoTest->getFilesInfoTest($svnRepo2, 'trunk', '', '', 1)) && p('0:kind') && e('file'); // 步骤7:SVN仓库返回文件类型 \ No newline at end of file diff --git a/module/repo/test/zen/getlinkbranches.php b/module/repo/test/zen/getlinkbranches.php deleted file mode 100755 index 11e94afdd1..0000000000 --- a/module/repo/test/zen/getlinkbranches.php +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env php -gen(0); -zendata('branch')->gen(0); - -su('admin'); - -$repoTest = new repoZenTest(); - -$emptyProducts = array(); -$normalProducts = array(); -$product1 = new stdClass(); -$product1->id = 1; -$product1->name = 'Normal Product'; -$product1->type = 'normal'; -$normalProducts[1] = $product1; - -$branchProducts = array(); -$product2 = new stdClass(); -$product2->id = 2; -$product2->name = 'Branch Product'; -$product2->type = 'branch'; -$branchProducts[2] = $product2; - -$platformProducts = array(); -$product3 = new stdClass(); -$product3->id = 3; -$product3->name = 'Platform Product'; -$product3->type = 'platform'; -$platformProducts[3] = $product3; - -$mixedProducts = array(); -$product4 = new stdClass(); -$product4->id = 1; -$product4->name = 'Normal Product 1'; -$product4->type = 'normal'; -$mixedProducts[1] = $product4; - -$product5 = new stdClass(); -$product5->id = 2; -$product5->name = 'Branch Product 1'; -$product5->type = 'branch'; -$mixedProducts[2] = $product5; - -$product6 = new stdClass(); -$product6->id = 3; -$product6->name = 'Platform Product 1'; -$product6->type = 'platform'; -$mixedProducts[3] = $product6; - -r($repoTest->getLinkBranchesTest($emptyProducts)) && p() && e('0'); // 测试步骤1:空产品数组 -r($repoTest->getLinkBranchesTest($normalProducts)) && p() && e('0'); // 测试步骤2:仅包含normal类型产品 -r($repoTest->getLinkBranchesTest($branchProducts)) && p() && e('0'); // 测试步骤3:包含branch类型产品但无分支 -r(count($repoTest->getLinkBranchesTest($branchProducts))) && p() && e('0'); // 测试步骤4:验证branch类型产品返回0个分支(无分支数据) -r(count($repoTest->getLinkBranchesTest($mixedProducts))) && p() && e('0'); // 测试步骤5:包含多个产品类型,返回0个分支(无分支数据) \ No newline at end of file diff --git a/module/repo/test/zen/getsearchformquery.php b/module/repo/test/zen/getsearchformquery.php deleted file mode 100755 index d3a4f35f55..0000000000 --- a/module/repo/test/zen/getsearchformquery.php +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env php -gen(0); - -su('admin'); - -// 测试步骤1: 验证查询对象返回begin属性 -$query1 = new stdclass(); -$query1->begin = '2023-01-01'; -$query1->end = ''; -$query1->committer = ''; -$query1->commit = ''; -r($query1) && p('begin') && e('2023-01-01'); // 测试步骤1:验证查询对象返回begin属性 - -// 测试步骤2: 验证查询对象返回end属性 -$query2 = new stdclass(); -$query2->begin = ''; -$query2->end = '2023-12-31'; -$query2->committer = ''; -$query2->commit = ''; -r($query2) && p('end') && e('2023-12-31'); // 测试步骤2:验证查询对象返回end属性 - -// 测试步骤3: 验证查询对象返回committer属性 -$query3 = new stdclass(); -$query3->begin = ''; -$query3->end = ''; -$query3->committer = 'admin'; -$query3->commit = ''; -r($query3) && p('committer') && e('admin'); // 测试步骤3:验证查询对象返回committer属性 - -// 测试步骤4: 验证查询对象返回commit属性 -$query4 = new stdclass(); -$query4->begin = ''; -$query4->end = ''; -$query4->committer = ''; -$query4->commit = 'abc123'; -r($query4) && p('commit') && e('abc123'); // 测试步骤4:验证查询对象返回commit属性 - -// 测试步骤5: 验证多个属性组合返回值 -$query5 = new stdclass(); -$query5->begin = '2024-01-01'; -$query5->end = '2024-12-31'; -$query5->committer = 'user1'; -$query5->commit = 'def456'; -r($query5) && p('begin') && e('2024-01-01'); // 测试步骤5:验证多个属性组合返回值 \ No newline at end of file diff --git a/module/repo/test/zen/preparecreate.php b/module/repo/test/zen/preparecreate.php deleted file mode 100755 index 07df5127f4..0000000000 --- a/module/repo/test/zen/preparecreate.php +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env php - 'Git', - 'client' => 'git', - 'name' => 'test-repo', - 'path' => '/test/path', - 'product' => '1', - 'projects' => '1', - 'acl' => array('acl' => 'open') -); - -$containerFormData = array( - 'SCM' => 'Git', - 'client' => '', - 'name' => 'container-repo', - 'path' => '/test/path' -); - -$gitlabFormData = array( - 'SCM' => 'Gitlab', - 'path' => '/test/gitlab', - 'serviceProject' => '123', - 'name' => 'gitlab-repo' -); - -// 测试步骤1: 正常Git仓库创建 -r($result1 = $repoZenTest->prepareCreateTest($normalFormData, false, 'normal')) && p('acl') && e('{"acl":"open"}'); - -// 测试步骤2: 容器环境下Git仓库 -r($result2 = $repoZenTest->prepareCreateTest($containerFormData, false, 'container_git')) && p('acl') && e('{"acl":"open"}'); - -// 测试步骤3: Gitlab仓库特殊字段处理 - 验证extra字段 -r($result3 = $repoZenTest->prepareCreateTest($gitlabFormData, false, 'gitlab')) && p('extra') && e('123'); - -// 测试步骤4: ACL配置验证失败 -r($result4 = $repoZenTest->prepareCreateTest($normalFormData, false, 'acl_error')) && p() && e('0'); - -// 测试步骤5: 流水线服务器重复项目检查 -r($result5 = $repoZenTest->prepareCreateTest($normalFormData, true, 'duplicate_project')) && p() && e('0'); - -// 测试步骤6: 正常非流水线服务器场景 - 验证返回对象类型 -r(is_object($repoZenTest->prepareCreateTest($normalFormData, false, 'normal'))) && p() && e('1'); - -// 测试步骤7: 验证ACL字段格式包含open -r(strpos(json_encode($repoZenTest->prepareCreateTest($normalFormData, false, 'normal')), 'open') !== false) && p() && e('1'); \ No newline at end of file diff --git a/module/repo/test/zen/synclocalcommit.php b/module/repo/test/zen/synclocalcommit.php deleted file mode 100755 index 1b86a82176..0000000000 --- a/module/repo/test/zen/synclocalcommit.php +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env php -id = 1; -$repo1->SCM = 'Git'; -$repo1->name = 'testrepo1'; - -$repo2 = new stdClass(); -$repo2->id = 2; -$repo2->SCM = 'Subversion'; -$repo2->name = 'testrepo2'; - -$repo3 = new stdClass(); -$repo3->id = 3; -$repo3->SCM = 'Git'; -$repo3->name = 'testrepo3'; - -$repo4 = new stdClass(); -$repo4->id = 4; -$repo4->SCM = 'Git'; -$repo4->name = 'testrepo4'; - -$repo5 = new stdClass(); -$repo5->id = 5; -$repo5->SCM = 'Git'; -$repo5->name = 'testrepo5'; - -$repo6 = new stdClass(); -$repo6->id = 6; -$repo6->SCM = 'Git'; -$repo6->name = 'testrepo6'; - -$repo7 = new stdClass(); -$repo7->id = 7; -$repo7->SCM = 'Git'; -$repo7->name = 'testrepo7'; - -// 5. 🔴 强制要求:必须包含至少5个测试步骤 -r($repoZenTest->syncLocalCommitTest($repo1, '', false)) && p() && e('0'); // 步骤1:日志文件不存在时应返回空字符串 -r($repoZenTest->syncLocalCommitTest($repo2, "Line 1\nLine 2\nfatal: repository not found\n", true)) && p() && e('fatal: repository not found'); // 步骤2:日志包含fatal错误时应返回错误行内容 -r($repoZenTest->syncLocalCommitTest($repo3, "Line 1\nLine 2\nfailed to connect\n", true)) && p() && e('failed to connect'); // 步骤3:日志包含failed错误时应返回错误行内容 -r($repoZenTest->syncLocalCommitTest($repo4, "Line 1\nLine 2\ndone\n", true)) && p() && e('0'); // 步骤4:日志包含done标记且成功完成时应删除文件并返回空字符串 -r($repoZenTest->syncLocalCommitTest($repo5, "Line 1\nempty repository\n", true)) && p() && e('0'); // 步骤5:日志包含empty repository标记时应删除文件并返回空字符串 -r($repoZenTest->syncLocalCommitTest($repo6, "Line 1\nTotal 100 objects\n", true)) && p() && e('1'); // 步骤6:日志包含Total标记但未完成finishCount时应返回处理中状态 -r($repoZenTest->syncLocalCommitTest($repo7, "Line 1\nCounting objects: 100%\nCompressing objects: 100%\nTotal 100 objects\n", true)) && p() && e('0'); // 步骤7:日志包含Total标记和finishCount及finishCompress时应删除文件并返回空字符串 \ No newline at end of file diff --git a/module/report/test/zen/assignannualdata.php b/module/report/test/zen/assignannualdata.php deleted file mode 100755 index 6325321a6d..0000000000 --- a/module/report/test/zen/assignannualdata.php +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env php -gen(20); -zenData('dept')->gen(10); -zenData('action')->gen(100); -zenData('todo')->gen(50); -zenData('effort')->gen(50); -zenData('story')->gen(30); -zenData('task')->gen(40); -zenData('bug')->gen(25); -zenData('case')->gen(30); -zenData('product')->gen(5); - -su('admin'); - -$reportTest = new reportTest(); - -r($reportTest->assignAnnualDataTest('2024', '1', 'admin', array('admin'), 10)) && p('hasLogins') && e('yes'); // 测试有account参数的情况,返回hasLogins标识 -r($reportTest->assignAnnualDataTest('2024', '1', '', array('user1', 'user2'), 10)) && p('hasUsers') && e('yes'); // 测试有dept参数的情况,返回hasUsers标识 -r($reportTest->assignAnnualDataTest('2024', '0', '', array(), 10)) && p('allTimeStatus') && e('yes'); // 测试dept为0且account为空的情况,返回allTimeStatus标识 -r($reportTest->assignAnnualDataTest('2024', '1', '', array(), 10)) && p('deptEmptyAccounts') && e('yes'); // 测试dept不为0且accounts为空的边界情况,返回deptEmptyAccounts标识 -r($reportTest->assignAnnualDataTest('2024', '1', '', array('admin', 'user1'), 10)) && p('hasTodos') && e('yes'); // 测试正常dept和accounts参数的情况,返回hasTodos标识 -r($reportTest->assignAnnualDataTest('2024', '1', '', array('admin', 'user1'), 10)) && p('hasContributions') && e('yes'); // 测试正常参数的情况,返回hasContributions标识 -r($reportTest->assignAnnualDataTest('2024', '1', '', array('admin', 'user1'), 10)) && p('hasConsumed') && e('yes'); // 测试正常参数的情况,返回hasConsumed标识 \ No newline at end of file diff --git a/module/search/test/tao/checkfeedbackandticketpriv.php b/module/search/test/tao/checkfeedbackandticketpriv.php deleted file mode 100644 index 583aa94610..0000000000 --- a/module/search/test/tao/checkfeedbackandticketpriv.php +++ /dev/null @@ -1,86 +0,0 @@ -#!/usr/bin/env php -> 验证返回结果数量为1 -- 测试feedback类型,用户有产品授权,应保留结果 >> 验证返回结果数量为1 -- 测试feedback类型,用户无授权且非创建者,应移除结果 >> 验证返回结果数量为0 -- 测试ticket类型,用户有产品授权,应保留结果 >> 验证返回结果数量为1 -- 测试ticket类型,用户无产品授权,应移除结果 >> 验证返回结果数量为0 -- 测试多条feedback记录的混合权限过滤 >> 验证保留有权限的记录 -- 测试空结果集输入 >> 验证返回空数组 - -*/ - -include dirname(__FILE__, 5) . '/test/lib/init.php'; -include dirname(__FILE__, 2) . '/lib/tao.class.php'; - -$feedback = zenData('feedback'); -$feedback->id->range('1-10'); -$feedback->product->range('1,1,2,2,3,3,4,4,5,5'); -$feedback->title->range('Feedback1,Feedback2,Feedback3,Feedback4,Feedback5,Feedback6,Feedback7,Feedback8,Feedback9,Feedback10'); -$feedback->openedBy->range('admin,user1,user2,user3,user4,user5,admin,user1,user2,user3'); -$feedback->status->range('noreview'); -$feedback->gen(10); - -$ticket = zenData('ticket'); -$ticket->id->range('1-10'); -$ticket->product->range('1,1,2,2,3,3,4,4,5,5'); -$ticket->title->range('Ticket1,Ticket2,Ticket3,Ticket4,Ticket5,Ticket6,Ticket7,Ticket8,Ticket9,Ticket10'); -$ticket->openedBy->range('admin,user1,user2,user3,user4,user5,admin,user1,user2,user3'); -$ticket->status->range('wait'); -$ticket->gen(10); - -$feedbackview = zenData('feedbackview'); -$feedbackview->account->range('admin,user1,user1'); -$feedbackview->product->range('1,1,2'); -$feedbackview->gen(3); - -su('admin'); - -$searchTest = new searchTaoTest(); - -$results1 = array(1 => (object)array('id' => 1, 'objectID' => 1, 'objectType' => 'feedback', 'title' => 'Feedback Result 1')); -$objectIdList1 = array(1 => 1); -$table1 = TABLE_FEEDBACK; -r(count($searchTest->checkFeedbackAndTicketPrivTest('feedback', $results1, $objectIdList1, $table1))) && p() && e('1'); - -$results2 = array(2 => (object)array('id' => 2, 'objectID' => 2, 'objectType' => 'feedback', 'title' => 'Feedback Result 2')); -$objectIdList2 = array(2 => 2); -$table2 = TABLE_FEEDBACK; -r(count($searchTest->checkFeedbackAndTicketPrivTest('feedback', $results2, $objectIdList2, $table2))) && p() && e('1'); - -su('user2'); -$results3 = array(3 => (object)array('id' => 3, 'objectID' => 3, 'objectType' => 'feedback', 'title' => 'Feedback Result 3')); -$objectIdList3 = array(3 => 3); -$table3 = TABLE_FEEDBACK; -r(count($searchTest->checkFeedbackAndTicketPrivTest('feedback', $results3, $objectIdList3, $table3))) && p() && e('0'); - -su('admin'); -$results4 = array(4 => (object)array('id' => 4, 'objectID' => 1, 'objectType' => 'ticket', 'title' => 'Ticket Result 1')); -$objectIdList4 = array(1 => 4); -$table4 = TABLE_TICKET; -r(count($searchTest->checkFeedbackAndTicketPrivTest('ticket', $results4, $objectIdList4, $table4))) && p() && e('1'); - -su('user3'); -$results5 = array(5 => (object)array('id' => 5, 'objectID' => 5, 'objectType' => 'ticket', 'title' => 'Ticket Result 5')); -$objectIdList5 = array(5 => 5); -$table5 = TABLE_TICKET; -r(count($searchTest->checkFeedbackAndTicketPrivTest('ticket', $results5, $objectIdList5, $table5))) && p() && e('0'); - -su('user1'); -$results6 = array(1 => (object)array('id' => 1, 'objectID' => 1, 'objectType' => 'feedback', 'title' => 'Feedback Result 1'), 2 => (object)array('id' => 2, 'objectID' => 2, 'objectType' => 'feedback', 'title' => 'Feedback Result 2'), 3 => (object)array('id' => 3, 'objectID' => 3, 'objectType' => 'feedback', 'title' => 'Feedback Result 3')); -$objectIdList6 = array(1 => 1, 2 => 2, 3 => 3); -$table6 = TABLE_FEEDBACK; -r(count($searchTest->checkFeedbackAndTicketPrivTest('feedback', $results6, $objectIdList6, $table6))) && p() && e('2'); - -su('admin'); -$results7 = array(); -$objectIdList7 = array(); -$table7 = TABLE_FEEDBACK; -r(count($searchTest->checkFeedbackAndTicketPrivTest('feedback', $results7, $objectIdList7, $table7))) && p() && e('0'); diff --git a/module/search/test/tao/processdocrecord.php b/module/search/test/tao/processdocrecord.php deleted file mode 100755 index 35fc12aa31..0000000000 --- a/module/search/test/tao/processdocrecord.php +++ /dev/null @@ -1,86 +0,0 @@ -#!/usr/bin/env php -loadYaml('processdocrecord', false, 2)->gen(10); - -su('admin'); - -$searchTest = new searchTaoTest(); - -$record1 = new stdClass(); -$record1->objectID = 1; -$record1->objectType = 'doc'; - -$doc1 = new stdClass(); -$doc1->id = 1; -$doc1->assetLib = 0; -$doc1->assetLibType = ''; - -$objectList1 = array('doc' => array(1 => $doc1)); - -$record2 = new stdClass(); -$record2->objectID = 3; -$record2->objectType = 'doc'; - -$doc2 = new stdClass(); -$doc2->id = 3; -$doc2->assetLib = 1; -$doc2->assetLibType = 'practice'; - -$objectList2 = array('doc' => array(3 => $doc2)); - -$record3 = new stdClass(); -$record3->objectID = 5; -$record3->objectType = 'doc'; - -$doc3 = new stdClass(); -$doc3->id = 5; -$doc3->assetLib = 2; -$doc3->assetLibType = 'component'; - -$objectList3 = array('doc' => array(5 => $doc3)); - -$record4 = new stdClass(); -$record4->objectID = 7; -$record4->objectType = 'doc'; - -$doc4 = new stdClass(); -$doc4->id = 7; -$doc4->assetLib = 1; -$doc4->assetLibType = ''; - -$objectList4 = array('doc' => array(7 => $doc4)); - -$record5 = new stdClass(); -$record5->objectID = 9; -$record5->objectType = 'doc'; - -$doc5 = new stdClass(); -$doc5->id = 9; -$doc5->assetLib = 0; -$doc5->assetLibType = ''; - -$objectList5 = array('doc' => array(9 => $doc5)); - -r($searchTest->processDocRecordTest($record1, $objectList1)) && p('url') && e('doc-view-1.html'); // 测试普通文档记录(无assetLib) -r($searchTest->processDocRecordTest($record2, $objectList2)) && p('url') && e('assetlib-practiceView-3.html'); // 测试资产库文档记录(assetLibType为practice) -r($searchTest->processDocRecordTest($record3, $objectList3)) && p('url') && e('assetlib-componentView-5.html'); // 测试资产库文档记录(assetLibType为component) -r($searchTest->processDocRecordTest($record4, $objectList4)) && p('url') && e('assetlib-componentView-7.html'); // 测试资产库文档记录(assetLibType为空) -r($searchTest->processDocRecordTest($record5, $objectList5)) && p('url') && e('doc-view-9.html'); // 测试文档记录的URL是否包含正确的objectID \ No newline at end of file diff --git a/module/search/test/tao/processexecutionrecord.php b/module/search/test/tao/processexecutionrecord.php deleted file mode 100644 index 57fd471e2e..0000000000 --- a/module/search/test/tao/processexecutionrecord.php +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/env php -> 验证URL包含execution-view且extraType为空 -- 测试看板执行类型(kanban),应生成kanban链接 >> 验证URL包含execution-kanban且extraType为kanban -- 测试迭代执行类型(stage),应生成view链接 >> 验证URL包含execution-view且extraType为stage -- 测试空类型执行,应生成view链接 >> 验证URL包含execution-view且extraType为空 -- 测试另一个普通执行,验证ID和URL正确生成 >> 验证URL包含execution-view且record ID正确 - -*/ - -include dirname(__FILE__, 5) . '/test/lib/init.php'; -include dirname(__FILE__, 2) . '/lib/tao.class.php'; - -$project = zenData('project'); -$project->id->range('1-10'); -$project->name->range('项目1,项目2,项目3,项目4,项目5,项目6,项目7,项目8,项目9,项目10'); -$project->type->range('sprint,kanban,stage,sprint,sprint,kanban,sprint,stage,sprint,sprint'); -$project->status->range('doing'); -$project->deleted->range('0'); -$project->gen(10); - -su('admin'); - -$searchTest = new searchTaoTest(); - -$record1 = (object)array('id' => 1, 'objectID' => 1, 'objectType' => 'execution', 'title' => 'Execution 1', 'url' => '', 'extraType' => ''); -$objectList1 = array('execution' => array(1 => (object)array('id' => 1, 'type' => 'sprint', 'project' => 1))); -$result1 = $searchTest->processExecutionRecordTest($record1, $objectList1); -r(strpos($result1->url, 'execution-view') !== false && $result1->extraType == '') && p() && e('1'); - -$record2 = (object)array('id' => 2, 'objectID' => 2, 'objectType' => 'execution', 'title' => 'Execution 2', 'url' => '', 'extraType' => ''); -$objectList2 = array('execution' => array(2 => (object)array('id' => 2, 'type' => 'kanban', 'project' => 2))); -$result2 = $searchTest->processExecutionRecordTest($record2, $objectList2); -r(strpos($result2->url, 'execution-kanban') !== false && $result2->extraType == 'kanban') && p() && e('1'); - -$record3 = (object)array('id' => 3, 'objectID' => 3, 'objectType' => 'execution', 'title' => 'Execution 3', 'url' => '', 'extraType' => ''); -$objectList3 = array('execution' => array(3 => (object)array('id' => 3, 'type' => 'stage', 'project' => 3))); -$result3 = $searchTest->processExecutionRecordTest($record3, $objectList3); -r(strpos($result3->url, 'execution-view') !== false && $result3->extraType == 'stage') && p() && e('1'); - -$record4 = (object)array('id' => 4, 'objectID' => 4, 'objectType' => 'execution', 'title' => 'Execution 4', 'url' => '', 'extraType' => ''); -$objectList4 = array('execution' => array(4 => (object)array('id' => 4, 'type' => '', 'project' => 4))); -$result4 = $searchTest->processExecutionRecordTest($record4, $objectList4); -r(strpos($result4->url, 'execution-view') !== false && $result4->extraType == '') && p() && e('1'); - -$record5 = (object)array('id' => 5, 'objectID' => 5, 'objectType' => 'execution', 'title' => 'Execution 5', 'url' => '', 'extraType' => ''); -$objectList5 = array('execution' => array(5 => (object)array('id' => 5, 'type' => 'sprint', 'project' => 5))); -$result5 = $searchTest->processExecutionRecordTest($record5, $objectList5); -r(strpos($result5->url, 'execution-view') !== false && $result5->id == 5) && p() && e('1'); diff --git a/module/search/test/tao/processprojectrecord.php b/module/search/test/tao/processprojectrecord.php deleted file mode 100644 index ece44925ee..0000000000 --- a/module/search/test/tao/processprojectrecord.php +++ /dev/null @@ -1,92 +0,0 @@ -#!/usr/bin/env php -> url属性包含project-view-1 -- 执行searchTest模块的processProjectRecordTest方法,项目模型为waterfall,参数是$record2, $objectList2 >> url属性包含project-view-2 -- 执行searchTest模块的processProjectRecordTest方法,项目模型为kanban,参数是$record3, $objectList3 >> url属性包含project-index-3 -- 执行searchTest模块的processProjectRecordTest方法,项目模型为空,参数是$record4, $objectList4 >> url属性包含project-view-4 -- 执行searchTest模块的processProjectRecordTest方法,项目模型为agileplus,参数是$record5, $objectList5 >> url属性包含project-view-5 -- 执行searchTest模块的processProjectRecordTest方法,项目模型为waterfallplus,参数是$record6, $objectList6 >> url属性包含project-view-6 -- 执行searchTest模块的processProjectRecordTest方法,项目ID为100,参数是$record7, $objectList7 >> url属性包含project-index-100 - -*/ - -include dirname(__FILE__, 5) . '/test/lib/init.php'; -include dirname(__FILE__, 2) . '/lib/tao.class.php'; - -zenData('project')->gen(10); - -su('admin'); - -$searchTest = new searchTaoTest(); - -$record1 = new stdClass(); -$record1->objectType = 'project'; -$record1->objectID = 1; - -$record2 = new stdClass(); -$record2->objectType = 'project'; -$record2->objectID = 2; - -$record3 = new stdClass(); -$record3->objectType = 'project'; -$record3->objectID = 3; - -$record4 = new stdClass(); -$record4->objectType = 'project'; -$record4->objectID = 4; - -$record5 = new stdClass(); -$record5->objectType = 'project'; -$record5->objectID = 5; - -$record6 = new stdClass(); -$record6->objectType = 'project'; -$record6->objectID = 6; - -$record7 = new stdClass(); -$record7->objectType = 'project'; -$record7->objectID = 100; - -$project1 = new stdClass(); -$project1->model = 'scrum'; - -$project2 = new stdClass(); -$project2->model = 'waterfall'; - -$project3 = new stdClass(); -$project3->model = 'kanban'; - -$project4 = new stdClass(); -$project4->model = ''; - -$project5 = new stdClass(); -$project5->model = 'agileplus'; - -$project6 = new stdClass(); -$project6->model = 'waterfallplus'; - -$project7 = new stdClass(); -$project7->model = 'kanban'; - -$objectList1 = array('project' => array(1 => $project1)); -$objectList2 = array('project' => array(2 => $project2)); -$objectList3 = array('project' => array(3 => $project3)); -$objectList4 = array('project' => array(4 => $project4)); -$objectList5 = array('project' => array(5 => $project5)); -$objectList6 = array('project' => array(6 => $project6)); -$objectList7 = array('project' => array(100 => $project7)); - -r($searchTest->processProjectRecordTest($record1, $objectList1)) && p('url') && e('*/project-view-1.html'); -r($searchTest->processProjectRecordTest($record2, $objectList2)) && p('url') && e('*/project-view-2.html'); -r($searchTest->processProjectRecordTest($record3, $objectList3)) && p('url') && e('*/project-index-3.html'); -r($searchTest->processProjectRecordTest($record4, $objectList4)) && p('url') && e('*/project-view-4.html'); -r($searchTest->processProjectRecordTest($record5, $objectList5)) && p('url') && e('*/project-view-5.html'); -r($searchTest->processProjectRecordTest($record6, $objectList6)) && p('url') && e('*/project-view-6.html'); -r($searchTest->processProjectRecordTest($record7, $objectList7)) && p('url') && e('*/project-index-100.html'); diff --git a/module/search/test/tao/processrecord.php b/module/search/test/tao/processrecord.php deleted file mode 100644 index d9ff847e9c..0000000000 --- a/module/search/test/tao/processrecord.php +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env php -> url属性包含issue-view-1 -- 测试project类型的记录处理,项目模型为scrum >> url属性包含project-view-2 -- 测试execution类型的记录处理,执行类型为stage >> url属性包含execution-view-3 -- 测试project类型的记录处理,项目模型为kanban >> url属性包含project-index-4 -- 测试bug类型的记录处理 >> url属性包含bug-view-5 -- 测试story类型的记录处理,lib为空 >> url属性包含story-storyView-6 -- 测试普通类型的记录处理(testcase) >> url属性包含testcase-view-7 - -*/ - -include dirname(__FILE__, 5) . '/test/lib/init.php'; -include dirname(__FILE__, 2) . '/lib/tao.class.php'; - -zenData('project')->gen(10); -zenData('task')->gen(10); - -su('admin'); - -$searchTest = new searchTaoTest(); - -$record1 = new stdClass(); -$record1->objectType = 'issue'; -$record1->objectID = 1; - -$record2 = new stdClass(); -$record2->objectType = 'project'; -$record2->objectID = 2; - -$record3 = new stdClass(); -$record3->objectType = 'execution'; -$record3->objectID = 3; - -$record4 = new stdClass(); -$record4->objectType = 'project'; -$record4->objectID = 4; - -$record5 = new stdClass(); -$record5->objectType = 'bug'; -$record5->objectID = 5; - -$record6 = new stdClass(); -$record6->objectType = 'story'; -$record6->objectID = 6; - -$record7 = new stdClass(); -$record7->objectType = 'testcase'; -$record7->objectID = 7; - -$issue1 = new stdClass(); -$issue1->lib = ''; -$issue1->owner = ''; -$issue1->project = 1; - -$project2 = new stdClass(); -$project2->id = 2; -$project2->model = 'scrum'; - -$execution3 = new stdClass(); -$execution3->id = 3; -$execution3->type = 'stage'; -$execution3->project = 1; - -$project4 = new stdClass(); -$project4->id = 4; -$project4->model = 'kanban'; - -$story6 = new stdClass(); -$story6->id = 6; -$story6->type = 'story'; -$story6->lib = ''; - -$objectList1 = array('issue' => array(1 => $issue1)); -$objectList2 = array('project' => array(2 => $project2)); -$objectList3 = array('execution' => array(3 => $execution3)); -$objectList4 = array('project' => array(4 => $project4)); -$objectList5 = array(); -$objectList6 = array('story' => array(6 => $story6)); -$objectList7 = array(); - -r($searchTest->processRecordTest($record1, $objectList1)) && p('url') && e('*/issue-view-1.html'); -r($searchTest->processRecordTest($record2, $objectList2)) && p('url') && e('*/project-view-2.html'); -r($searchTest->processRecordTest($record3, $objectList3)) && p('url') && e('*/execution-view-3.html'); -r($searchTest->processRecordTest($record4, $objectList4)) && p('url') && e('*/project-index-4.html'); -r($searchTest->processRecordTest($record5, $objectList5)) && p('url') && e('*/bug-view-5.html'); -r($searchTest->processRecordTest($record6, $objectList6)) && p('url') && e('*/story-storyView-6.html'); -r($searchTest->processRecordTest($record7, $objectList7)) && p('url') && e('*/testcase-view-7.html'); diff --git a/module/search/test/tao/processriskrecord.php b/module/search/test/tao/processriskrecord.php deleted file mode 100644 index 38b8a6cf50..0000000000 --- a/module/search/test/tao/processriskrecord.php +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env php -> url属性包含risk-view-1 -- 执行searchTao模块的processRiskRecordTest方法,module为risk,lib不为0 >> url属性包含assetlib-riskView-2 -- 执行searchTao模块的processRiskRecordTest方法,module为opportunity,lib为0 >> url属性包含opportunity-view-3 -- 执行searchTao模块的processRiskRecordTest方法,module为opportunity,lib不为0 >> url属性包含assetlib-opportunityView-4 -- 执行searchTao模块的processRiskRecordTest方法,module为risk,objectID为100,lib为0 >> url属性包含risk-view-100 -- 执行searchTao模块的processRiskRecordTest方法,module为opportunity,objectID为200,lib为0 >> url属性包含opportunity-view-200 -- 执行searchTao模块的processRiskRecordTest方法,module为risk,objectID为50,lib为15 >> url属性包含assetlib-riskView-50 - -*/ - -include dirname(__FILE__, 5) . '/test/lib/init.php'; -include dirname(__FILE__, 2) . '/lib/tao.class.php'; - -zenData('risk')->gen(10); - -su('admin'); - -global $config; -$config->edition = 'max'; - -$searchTest = new searchTaoTest(); - -$record1 = new stdClass(); -$record1->objectType = 'risk'; -$record1->objectID = 1; - -$record2 = new stdClass(); -$record2->objectType = 'risk'; -$record2->objectID = 2; - -$record3 = new stdClass(); -$record3->objectType = 'opportunity'; -$record3->objectID = 3; - -$record4 = new stdClass(); -$record4->objectType = 'opportunity'; -$record4->objectID = 4; - -$record5 = new stdClass(); -$record5->objectType = 'risk'; -$record5->objectID = 100; - -$record6 = new stdClass(); -$record6->objectType = 'opportunity'; -$record6->objectID = 200; - -$record7 = new stdClass(); -$record7->objectType = 'risk'; -$record7->objectID = 50; - -$risk1 = new stdClass(); -$risk1->lib = 0; - -$risk2 = new stdClass(); -$risk2->lib = 5; - -$opportunity1 = new stdClass(); -$opportunity1->lib = 0; - -$opportunity2 = new stdClass(); -$opportunity2->lib = 10; - -$risk3 = new stdClass(); -$risk3->lib = 0; - -$opportunity3 = new stdClass(); -$opportunity3->lib = 0; - -$risk4 = new stdClass(); -$risk4->lib = 15; - -$objectList1 = array('risk' => array(1 => $risk1)); -$objectList2 = array('risk' => array(2 => $risk2)); -$objectList3 = array('opportunity' => array(3 => $opportunity1)); -$objectList4 = array('opportunity' => array(4 => $opportunity2)); -$objectList5 = array('risk' => array(100 => $risk3)); -$objectList6 = array('opportunity' => array(200 => $opportunity3)); -$objectList7 = array('risk' => array(50 => $risk4)); - -r($searchTest->processRiskRecordTest($record1, 'risk', $objectList1)) && p('url') && e('*/risk-view-1.html'); -r($searchTest->processRiskRecordTest($record2, 'risk', $objectList2)) && p('url') && e('*/assetlib-riskView-2.html'); -r($searchTest->processRiskRecordTest($record3, 'opportunity', $objectList3)) && p('url') && e('*/opportunity-view-3.html'); -r($searchTest->processRiskRecordTest($record4, 'opportunity', $objectList4)) && p('url') && e('*/assetlib-opportunityView-4.html'); -r($searchTest->processRiskRecordTest($record5, 'risk', $objectList5)) && p('url') && e('*/risk-view-100.html'); -r($searchTest->processRiskRecordTest($record6, 'opportunity', $objectList6)) && p('url') && e('*/opportunity-view-200.html'); -r($searchTest->processRiskRecordTest($record7, 'risk', $objectList7)) && p('url') && e('*/assetlib-riskView-50.html'); diff --git a/module/search/test/tao/processstoryrecord.php b/module/search/test/tao/processstoryrecord.php deleted file mode 100644 index 2be21f549f..0000000000 --- a/module/search/test/tao/processstoryrecord.php +++ /dev/null @@ -1,100 +0,0 @@ -#!/usr/bin/env php -> url为空字符串 -- 执行searchTao模块的processStoryRecordTest方法,story类型,lib为0,vision为rnd >> url包含story-storyView-1 -- 执行searchTao模块的processStoryRecordTest方法,story类型,lib不为0 >> url包含assetlib-storyView-2 -- 执行searchTao模块的processStoryRecordTest方法,requirement类型,lib为0 >> extraType为requirement -- 执行searchTao模块的processStoryRecordTest方法,epic类型,lib为0 >> extraType为epic -- 执行searchTao模块的processStoryRecordTest方法,vision为lite >> url包含projectstory-storyView-6 -- 执行searchTao模块的processStoryRecordTest方法,story类型,lib为5,vision为rnd >> url包含assetlib-storyView-7且extraType为story - -*/ - -include dirname(__FILE__, 5) . '/test/lib/init.php'; -include dirname(__FILE__, 2) . '/lib/tao.class.php'; - -zenData('story')->gen(10); - -su('admin'); - -global $config; - -$searchTest = new searchTaoTest(); - -$record1 = new stdClass(); -$record1->objectType = 'story'; -$record1->objectID = 999; - -$record2 = new stdClass(); -$record2->objectType = 'story'; -$record2->objectID = 1; - -$record3 = new stdClass(); -$record3->objectType = 'story'; -$record3->objectID = 2; - -$record4 = new stdClass(); -$record4->objectType = 'requirement'; -$record4->objectID = 3; - -$record5 = new stdClass(); -$record5->objectType = 'epic'; -$record5->objectID = 4; - -$record6 = new stdClass(); -$record6->objectType = 'story'; -$record6->objectID = 6; - -$record7 = new stdClass(); -$record7->objectType = 'story'; -$record7->objectID = 7; - -$story1 = new stdClass(); -$story1->lib = 0; -$story1->type = 'story'; - -$story2 = new stdClass(); -$story2->lib = 10; -$story2->type = 'story'; - -$requirement1 = new stdClass(); -$requirement1->lib = 0; -$requirement1->type = 'requirement'; - -$epic1 = new stdClass(); -$epic1->lib = 0; -$epic1->type = 'epic'; - -$story6 = new stdClass(); -$story6->lib = 0; -$story6->type = 'story'; - -$story7 = new stdClass(); -$story7->lib = 5; -$story7->type = 'story'; - -$objectList1 = array('story' => array()); -$objectList2 = array('story' => array(1 => $story1)); -$objectList3 = array('story' => array(2 => $story2)); -$objectList4 = array('requirement' => array(3 => $requirement1)); -$objectList5 = array('epic' => array(4 => $epic1)); -$objectList6 = array('story' => array(6 => $story6)); -$objectList7 = array('story' => array(7 => $story7)); - -$config->vision = 'rnd'; -r($searchTest->processStoryRecordTest($record1, 'story', $objectList1)) && p('url') && e(''); -r($searchTest->processStoryRecordTest($record2, 'story', $objectList2)) && p('url') && e('*/story-storyView-1.html'); -r($searchTest->processStoryRecordTest($record3, 'story', $objectList3)) && p('url') && e('*/assetlib-storyView-2.html'); -r($searchTest->processStoryRecordTest($record4, 'requirement', $objectList4)) && p('extraType') && e('requirement'); -r($searchTest->processStoryRecordTest($record5, 'epic', $objectList5)) && p('extraType') && e('epic'); -$config->vision = 'lite'; -r($searchTest->processStoryRecordTest($record6, 'story', $objectList6)) && p('url') && e('*/projectstory-storyView-6.html'); -$config->vision = 'rnd'; -r($searchTest->processStoryRecordTest($record7, 'story', $objectList7)) && p('url,extraType') && e('*/assetlib-storyView-7.html,story'); diff --git a/module/search/test/tao/processtaskrecord.php b/module/search/test/tao/processtaskrecord.php deleted file mode 100755 index c668d746fe..0000000000 --- a/module/search/test/tao/processtaskrecord.php +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/env php -id->range('1-10'); -$task->project->range('1-10'); -$task->name->range('任务1,任务2,任务3,任务4,任务5,任务6,任务7,任务8,任务9,任务10'); -$task->status->range('wait'); -$task->deleted->range('0'); -$task->gen(10); - -$project = zenData('project'); -$project->id->range('1-10'); -$project->name->range('项目1,项目2,项目3,项目4,项目5,项目6,项目7,项目8,项目9,项目10'); -$project->type->range('project'); -$project->multiple->range('1,0,1,0,1,0,1,0,1,0'); -$project->status->range('doing'); -$project->deleted->range('0'); -$project->gen(10); - -su('admin'); - -/** - -title=测试 searchTao::processTaskRecord(); -timeout=0 -cid=18342 - -- 执行searchTest模块的processTaskRecordTest方法,参数是$record1 属性url @task-view-1 -- 执行searchTest模块的processTaskRecordTest方法,参数是$record2 - - 属性url @task-view-2 - - 属性dataApp @project -- 执行searchTest模块的processTaskRecordTest方法,参数是$record3 属性url @task-view-3 -- 执行searchTest模块的processTaskRecordTest方法,参数是$record4 - - 属性url @task-view-4 - - 属性dataApp @project -- 执行searchTest模块的processTaskRecordTest方法,参数是$record5 属性url @task-view-5 -- 执行searchTest模块的processTaskRecordTest方法,参数是$record6 - - 属性url @task-view-6 - - 属性dataApp @project -- 执行searchTest模块的processTaskRecordTest方法,参数是$record7 属性url @task-view-7 - -*/ - -$searchTest = new searchTaoTest(); - -$record1 = new stdClass(); -$record1->objectType = 'task'; -$record1->objectID = 1; - -$record2 = new stdClass(); -$record2->objectType = 'task'; -$record2->objectID = 2; - -$record3 = new stdClass(); -$record3->objectType = 'task'; -$record3->objectID = 3; - -$record4 = new stdClass(); -$record4->objectType = 'task'; -$record4->objectID = 4; - -$record5 = new stdClass(); -$record5->objectType = 'task'; -$record5->objectID = 5; - -$record6 = new stdClass(); -$record6->objectType = 'task'; -$record6->objectID = 6; - -$record7 = new stdClass(); -$record7->objectType = 'task'; -$record7->objectID = 7; - -r($searchTest->processTaskRecordTest($record1)) && p('url') && e('task-view-1'); -r($searchTest->processTaskRecordTest($record2)) && p('url;dataApp') && e('task-view-2;project'); -r($searchTest->processTaskRecordTest($record3)) && p('url') && e('task-view-3'); -r($searchTest->processTaskRecordTest($record4)) && p('url;dataApp') && e('task-view-4;project'); -r($searchTest->processTaskRecordTest($record5)) && p('url') && e('task-view-5'); -r($searchTest->processTaskRecordTest($record6)) && p('url;dataApp') && e('task-view-6;project'); -r($searchTest->processTaskRecordTest($record7)) && p('url') && e('task-view-7'); \ No newline at end of file diff --git a/module/story/test/tao/getproductreviewers.php b/module/story/test/tao/getproductreviewers.php deleted file mode 100755 index 597dd0f488..0000000000 --- a/module/story/test/tao/getproductreviewers.php +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env php -> 返回包含admin和user1用户 -- 测试步骤2:获取有reviewer字段的private产品的评审人员列表 >> 返回包含admin和user2用户 -- 测试步骤3:获取无reviewer字段但ACL为private的产品评审人员列表 >> 返回有权限查看产品的用户列表 -- 测试步骤4:获取无reviewer字段且ACL为open的产品评审人员列表 >> 返回所有未关闭未删除用户 -- 测试步骤5:传入storyReviewers参数获取评审人员列表 >> 返回包含story评审人员的列表 -- 测试步骤6:获取有reviewer字段但用户已删除的产品评审人员 >> 返回不包含已删除用户的列表 -- 测试步骤7:获取ACL为custom的产品评审人员列表 >> 返回指定的评审人员 - -*/ - -include dirname(__FILE__, 5) . '/test/lib/init.php'; -include dirname(__FILE__, 2) . '/lib/tao.class.php'; - -$product = zenData('product'); -$product->id->range('1-7'); -$product->name->range('产品1,产品2,产品3,产品4,产品5,产品6,产品7'); -$product->acl->range('open,private,custom,open,private,open,private'); -$product->reviewer->range('admin,user1,admin,user2,[]{2},admin,user3,user5'); -$product->deleted->range('0'); -$product->gen(7); - -$user = zenData('user'); -$user->id->range('1-10'); -$user->account->range('admin,user1,user2,user3,user4,user5,user6,user7,user8,user9'); -$user->realname->range('管理员,用户1,用户2,用户3,用户4,用户5,用户6,用户7,用户8,用户9'); -$user->password->range('123456{10}'); -$user->role->range('admin,dev{9}'); -$user->deleted->range('0{8},1,0'); -$user->gen(10); - -$usergroup = zenData('usergroup'); -$usergroup->account->range('admin,user1,user2,user3'); -$usergroup->group->range('1,2,2,2'); -$usergroup->gen(4); - -su('admin'); - -$storyTest = new storyTaoTest(); - -r($storyTest->getProductReviewersTest(1, array())) && p('admin,user1') && e('管理员,用户1'); -r($storyTest->getProductReviewersTest(2, array())) && p('admin,user2') && e('管理员,用户2'); -r($storyTest->getProductReviewersTest(5, array())) && p('admin;user1;user2;user3') && e('管理员;用户1;用户2;用户3'); -r($storyTest->getProductReviewersTest(4, array())) && p('admin;user1;user2;user3;user4;user5;user6;user7;user9') && e('管理员;用户1;用户2;用户3;用户4;用户5;用户6;用户7;用户9'); -r($storyTest->getProductReviewersTest(1, array('user4' => '用户4'))) && p('admin;user1;user4') && e('管理员;用户1;用户4'); -r($storyTest->getProductReviewersTest(7, array())) && p('admin,user3,user5') && e('管理员,用户3,用户5'); -r($storyTest->getProductReviewersTest(3, array())) && p('admin,user3') && e('管理员,用户3'); diff --git a/module/story/test/zen/getformfieldsforcreate.php b/module/story/test/zen/getformfieldsforcreate.php deleted file mode 100755 index c7de11860d..0000000000 --- a/module/story/test/zen/getformfieldsforcreate.php +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/env php -id->range('1-10'); -$product->name->range('产品1,产品2,产品3,产品4,产品5,分支产品1,分支产品2,普通产品1,普通产品2,测试产品1'); -$product->type->range('normal{5},branch{2},normal{3}'); -$product->status->range('normal{10}'); -$product->PO->range('admin{10}'); -$product->createdBy->range('admin{10}'); -$product->acl->range('open{10}'); -$product->gen(10); - -$user = zenData('user'); -$user->id->range('1-10'); -$user->account->range('admin,user1,user2,user3,user4,user5,user6,user7,user8,user9'); -$user->realname->range('管理员,用户1,用户2,用户3,用户4,用户5,用户6,用户7,用户8,用户9'); -$user->deleted->range('0{10}'); -$user->gen(10); - -$productplan = zenData('productplan'); -$productplan->id->range('1-5'); -$productplan->product->range('1-5'); -$productplan->branch->range('0{5}'); -$productplan->title->range('计划1,计划2,计划3,计划4,计划5'); -$productplan->status->range('wait{3},doing{2}'); -$productplan->deleted->range('0{5}'); -$productplan->gen(5); - -$module = zenData('module'); -$module->id->range('1-5'); -$module->root->range('1-5'); -$module->type->range('story{5}'); -$module->name->range('模块1,模块2,模块3,模块4,模块5'); -$module->deleted->range('0{5}'); -$module->gen(5); - -$story = zenData('story'); -$story->id->range('1-10'); -$story->product->range('1-3'); -$story->title->range('需求1,需求2,需求3,需求4,需求5{5}'); -$story->type->range('story{5},requirement{3},epic{2}'); -$story->status->range('active{10}'); -$story->stage->range('wait{10}'); -$story->openedBy->range('admin{10}'); -$story->assignedTo->range('admin{10}'); -$story->reviewedBy->range('admin{10}'); -$story->closedBy->range('admin{10}'); -$story->estimate->range('1-8'); -$story->grade->range('1-3'); -$story->branch->range('0{10}'); -$story->parent->range('-1{2},0{8}'); -$story->gen(10); - -$project = zenData('project'); -$project->id->range('1-5'); -$project->name->range('项目1,项目2,项目3,项目4,项目5'); -$project->type->range('project{5}'); -$project->status->range('doing{5}'); -$project->deleted->range('0{5}'); -$project->gen(5); - -$projectproduct = zenData('projectproduct'); -$projectproduct->project->range('1{3},2{2}'); -$projectproduct->product->range('1,2,3,1,4'); -$projectproduct->gen(5); - -// 3. 用户登录 -su('admin'); - -// 4. 创建测试实例 -$storyTest = new storyZenTest(); - -// 5. 测试步骤(必须至少5个) -r($storyTest->getFormFieldsForCreateTest(1, '0', 0, 'story')) && p('product:name') && e('product'); // 步骤1:测试普通产品创建需求的表单字段包含product字段 -r($storyTest->getFormFieldsForCreateTest(6, '0', 0, 'story')) && p('branch:name') && e('branch'); // 步骤2:测试分支产品创建需求的表单字段包含branch字段 -r($storyTest->getFormFieldsForCreateTest(1, '0', 1, 'story')) && p('product:default') && e('1'); // 步骤3:测试带执行项目创建需求时产品默认值设置正确 -r($storyTest->getFormFieldsForCreateTest(1, '0', 0, 'requirement')) && p('grade:name') && e('grade'); // 步骤4:测试需求类型为requirement时grade字段存在 -r($storyTest->getFormFieldsForCreateTest(1, '0', 0, 'epic')) && p('reviewer:name') && e('reviewer'); // 步骤5:测试需求类型为epic时reviewer字段存在 \ No newline at end of file diff --git a/module/story/test/zen/getformfieldsforreview.php b/module/story/test/zen/getformfieldsforreview.php deleted file mode 100755 index c57dec0381..0000000000 --- a/module/story/test/zen/getformfieldsforreview.php +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env php -loadYaml('getformfieldsforreview/story')->gen(20); -zenData('user')->loadYaml('getformfieldsforreview/user')->gen(10); -zenData('product')->gen(5); - -su('admin'); - -$storyIDs = array(1, 6, 11, 13, 7, 3); - -$storyTester = new storyZenTest(); -r($storyTester->getFormFieldsForReviewTest($storyIDs[0])) && p('result:control,required') && e('picker,1'); // 测试获取软件需求评审表单字段的基本结构 -r($storyTester->getFormFieldsForReviewTest($storyIDs[1])) && p('assignedTo:control') && e('picker'); // 测试获取用户需求评审表单字段的assignedTo字段 -r($storyTester->getFormFieldsForReviewTest($storyIDs[2])) && p('pri:default') && e('3'); // 测试reviewing状态且版本为1的需求评审字段的pri默认值 -r($storyTester->getFormFieldsForReviewTest($storyIDs[3])) && p('estimate:default') && e('9'); // 测试reviewing状态且版本大于1的需求评审字段的estimate默认值 -r($storyTester->getFormFieldsForReviewTest($storyIDs[4])) && p('status:default') && e('closed'); // 测试active状态需求的评审表单字段的status默认值 -r($storyTester->getFormFieldsForReviewTest($storyIDs[5])) && p('comment:control') && e('editor'); // 测试评审表单字段的comment字段control属性 \ No newline at end of file diff --git a/module/story/test/zen/processdataforedit.php b/module/story/test/zen/processdataforedit.php deleted file mode 100755 index a52fb8b52d..0000000000 --- a/module/story/test/zen/processdataforedit.php +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/env php -id->range('1-10'); -$story->product->range('1'); -$story->title->range('需求1,需求2,需求3,需求4,需求5,需求6,需求7,需求8,需求9,需求10'); -$story->type->range('story{5},requirement{5}'); -$story->status->range('draft{3},changing{2},active{5}'); -$story->stage->range('wait{5},planned{5}'); -$story->version->range('1'); -$story->gen(10); - -zenData('user')->gen(5); - -su('admin'); - -$storyTest = new storyZenTest(); - -// 测试1:changing状态需求修改为draft时保持changing状态 -$storyData = new stdClass(); -$storyData->status = 'draft'; -$oldStory = array('id' => 4, 'type' => 'story', 'status' => 'changing', 'stage' => 'wait'); -r($storyTest->processDataForEditTest(4, $storyData, $oldStory)) && p('status') && e('changing'); - -// 测试2:plan参数为数组时转换为字符串并去除首尾逗号 -$_POST['plan'] = array('', '5', ''); -$storyData = new stdClass(); -$oldStory = array('id' => 1, 'type' => 'story', 'status' => 'draft', 'stage' => 'wait'); -r($storyTest->processDataForEditTest(1, $storyData, $oldStory)) && p('plan') && e('5'); -unset($_POST['plan']); - -// 测试3:branch参数为0时设置branch为0 -$_POST['branch'] = 0; -$storyData = new stdClass(); -$oldStory = array('id' => 1, 'type' => 'story', 'status' => 'draft', 'stage' => 'wait'); -r($storyTest->processDataForEditTest(1, $storyData, $oldStory)) && p('branch') && e('0'); -unset($_POST['branch']); - -// 测试4:stage变更为tested时设置stagedBy为当前用户 -$storyData = new stdClass(); -$storyData->stage = 'tested'; -$oldStory = array('id' => 1, 'type' => 'story', 'status' => 'draft', 'stage' => 'wait'); -r($storyTest->processDataForEditTest(1, $storyData, $oldStory)) && p('stagedBy') && e('admin'); - -// 测试5:stage变更为verified时设置stagedBy为当前用户 -$storyData = new stdClass(); -$storyData->stage = 'verified'; -$oldStory = array('id' => 1, 'type' => 'story', 'status' => 'draft', 'stage' => 'wait'); -r($storyTest->processDataForEditTest(1, $storyData, $oldStory)) && p('stagedBy') && e('admin'); - -// 测试6:stage变更为released时设置stagedBy为当前用户 -$storyData = new stdClass(); -$storyData->stage = 'released'; -$oldStory = array('id' => 1, 'type' => 'story', 'status' => 'draft', 'stage' => 'wait'); -r($storyTest->processDataForEditTest(1, $storyData, $oldStory)) && p('stagedBy') && e('admin'); - -// 测试7:stage变更为closed时设置stagedBy为当前用户 -$storyData = new stdClass(); -$storyData->stage = 'closed'; -$oldStory = array('id' => 1, 'type' => 'story', 'status' => 'draft', 'stage' => 'wait'); -r($storyTest->processDataForEditTest(1, $storyData, $oldStory)) && p('stagedBy') && e('admin'); - -// 测试8:stage变更为rejected时设置stagedBy为当前用户 -$storyData = new stdClass(); -$storyData->stage = 'rejected'; -$oldStory = array('id' => 1, 'type' => 'story', 'status' => 'draft', 'stage' => 'wait'); -r($storyTest->processDataForEditTest(1, $storyData, $oldStory)) && p('stagedBy') && e('admin'); \ No newline at end of file diff --git a/module/story/test/zen/processfiltertitle.php b/module/story/test/zen/processfiltertitle.php deleted file mode 100755 index 3acbb16973..0000000000 --- a/module/story/test/zen/processfiltertitle.php +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/env php -id->range('1-10'); -$product->name->range('测试产品A,测试产品B,测试产品C{5}'); -$product->status->range('normal{10}'); -$product->deleted->range('0{10}'); -$product->gen(10); - -$module = zenData('module'); -$module->id->range('1-10'); -$module->name->range('模块1,模块2,模块3{5}'); -$module->type->range('story{10}'); -$module->deleted->range('0{10}'); -$module->gen(10); - -$user = zenData('user'); -$user->id->range('1-10'); -$user->account->range('admin,user1,user2,user3,user4,user5,user6,user7,user8,user9'); -$user->realname->range('管理员,用户1,用户2,用户3,用户4,用户5,用户6,用户7,用户8,用户9'); -$user->deleted->range('0{10}'); -$user->gen(10); - -// 3. 用户登录 -su('admin'); - -// 4. 设置必要的语言变量和配置 -global $lang, $config, $app; -$lang->story->report = new stdclass(); -$lang->story->report->tpl = new stdclass(); -$lang->story->report->tpl->feature = '状态: %s'; -$lang->story->report->tpl->search = '%s %s %s'; -$lang->story->report->tpl->multi = '(%s) %s (%s)'; - -$lang->execution->featureBar['story']['unclosed'] = '未关闭'; -$lang->execution->featureBar['story']['draft'] = '草稿'; -$lang->execution->featureBar['story']['reviewing'] = '评审中'; -$lang->execution->featureBar['story']['all'] = '全部'; - -$lang->search->andor = new stdclass(); -$lang->search->andor->and = ' 并且 '; -$lang->search->andor->or = ' 或者 '; - -$lang->search->operators = new stdclass(); -$lang->search->operators->equal = '='; -$lang->search->operators->include = '包含'; - -$config->execution->search['fields']['module'] = '模块'; -$config->product->search['fields']['module'] = '模块'; - -// 设置搜索配置以避免错误 -$_SESSION['executionStoryForm'] = null; -$_SESSION['executionStorysearchParams'] = array('params' => array('module' => array('values' => array(1 => '模块1', 2 => '模块2')))); -$_SESSION['projectstoryForm'] = null; -$_SESSION['projectstorysearchParams'] = array('params' => array('module' => array('values' => array(1 => '模块1', 2 => '模块2')))); -$_SESSION['multiple'] = false; - -$app->session = new stdclass(); -$app->session->executionStoryForm = null; -$app->session->executionStorysearchParams = array('params' => array('module' => array('values' => array(1 => '模块1', 2 => '模块2')))); -$app->session->projectstoryForm = null; -$app->session->projectstorysearchParams = array('params' => array('module' => array('values' => array(1 => '模块1', 2 => '模块2')))); -$app->session->multiple = false; - -// 5. 创建测试实例 -$storyTest = new storyZenTest(); - -// 6. 强制要求:必须包含至少5个测试步骤 -r($storyTest->processFilterTitleTest('unclosed', 0)) && p() && e('状态: 未关闭'); // 步骤1:普通状态过滤(未关闭) -r($storyTest->processFilterTitleTest('byproduct', 1)) && p() && e('状态: 测试产品A'); // 步骤2:按产品过滤 -r($storyTest->processFilterTitleTest('bymodule', 1)) && p() && e('模块 = 模块1'); // 步骤3:按模块过滤 -r($storyTest->processFilterTitleTest('draft', 0)) && p() && e('状态: 草稿'); // 步骤4:草稿状态过滤 -r($storyTest->processFilterTitleTest('reviewing', 0)) && p() && e('状态: 评审中'); // 步骤5:评审中状态过滤 \ No newline at end of file diff --git a/module/story/test/zen/setformoptionsforbatchedit.php b/module/story/test/zen/setformoptionsforbatchedit.php deleted file mode 100755 index 6d441d9eab..0000000000 --- a/module/story/test/zen/setformoptionsforbatchedit.php +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/env php -id->range('1-5'); -$product->name->range('产品1,产品2,产品3,产品4,产品5'); -$product->code->range('product1,product2,product3,product4,product5'); -$product->type->range('normal{3},branch{2}'); -$product->status->range('normal'); -$product->gen(5); - -$module = zenData('module'); -$module->id->range('1-20'); -$module->root->range('1{5},2{5},3{5},4{3},5{2}'); -$module->branch->range('0{15},1{3},2{2}'); -$module->name->range('模块1,模块2,模块3,模块4,模块5{15}'); -$module->type->range('story'); -$module->gen(20); - -$productplan = zenData('productplan'); -$productplan->id->range('1-10'); -$productplan->product->range('1-5'); -$productplan->branch->range('0{8},1,2'); -$productplan->title->range('计划1,计划2,计划3,计划4,计划5{5}'); -$productplan->gen(10); - -$user = zenData('user'); -$user->id->range('1-5'); -$user->account->range('admin,user1,user2,user3,user4'); -$user->realname->range('管理员,用户1,用户2,用户3,用户4'); -$user->deleted->range('0'); -$user->gen(5); - -su('admin'); - -$storyTest = new storyZenTest(); - -$story1 = new stdClass(); -$story1->id = 1; -$story1->product = 1; -$story1->branch = 0; -$story1->module = 1; -$story1->plan = ''; -$story1->status = 'active'; -$story1->type = 'story'; - -$story2 = new stdClass(); -$story2->id = 2; -$story2->product = 1; -$story2->branch = 0; -$story2->module = 2; -$story2->plan = ''; -$story2->status = 'active'; -$story2->type = 'story'; - -$story3 = new stdClass(); -$story3->id = 3; -$story3->product = 2; -$story3->branch = 0; -$story3->module = 6; -$story3->plan = ''; -$story3->status = 'active'; -$story3->type = 'story'; - -$story4 = new stdClass(); -$story4->id = 4; -$story4->product = 3; -$story4->branch = 0; -$story4->module = 11; -$story4->plan = ''; -$story4->status = 'closed'; -$story4->type = 'story'; - -$singleProductStories = array(1 => $story1, 2 => $story2); -$multiProductStories = array(1 => $story1, 3 => $story3, 4 => $story4); - -r($storyTest->setFormOptionsForBatchEditTest(1, 0, $singleProductStories)) && p('branchProduct') && e('0'); -r($storyTest->setFormOptionsForBatchEditTest(1, 0, $singleProductStories)) && p('users:admin') && e('`A:管理员`'); -r($storyTest->setFormOptionsForBatchEditTest(1, 0, $singleProductStories)) && p('moduleList:0') && e('/'); -r($storyTest->setFormOptionsForBatchEditTest(0, 0, $multiProductStories)) && p('branchProduct') && e('1'); -r($storyTest->setFormOptionsForBatchEditTest(0, 0, $multiProductStories)) && p('plans') && e('0'); diff --git a/module/task/test/zen/buildeffortforfinish.php b/module/task/test/zen/buildeffortforfinish.php deleted file mode 100755 index b5a7d02d2f..0000000000 --- a/module/task/test/zen/buildeffortforfinish.php +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/env php -id = 1; -$oldTask->name = 'Test Task'; - -$task1 = new stdclass(); -$task1->id = 1; -$task1->finishedDate = '2024-01-15 10:30:00'; -$task1->work = 'Original work description'; - -$task2 = new stdclass(); -$task2->id = 1; -$task2->finishedDate = '2024-01-15 10:30:00'; -$task2->work = 'Original work description'; - -$task3 = new stdclass(); -$task3->id = 1; -$task3->finishedDate = '2024-01-15 10:30:00'; -$task3->work = 'Original work description'; - -$task4 = new stdclass(); -$task4->id = 1; -$task4->finishedDate = '2024-01-15 10:30:00'; -$task4->work = 'Original work description'; - -$task5 = new stdclass(); -$task5->id = 1; -$task5->finishedDate = '2024-01-15 10:30:00'; -$task5->work = 'Original work description'; - -$task6 = new stdclass(); -$task6->id = 1; -$task6->finishedDate = '2024-01-15 10:30:00'; -$task6->work = 'Original work description'; - -r($taskTest->buildEffortForFinishTest($oldTask, $task1, '3.5', '')) && p('consumed,left,account,task') && e('3.5,0,admin,1'); -r($taskTest->buildEffortForFinishTest($oldTask, $task2, '0', '')) && p('consumed,left,task') && e('0,0,1'); -r($taskTest->buildEffortForFinishTest($oldTask, $task3, '-1', '')) && p('0') && e('"总计消耗"必须大于之前消耗'); -r($taskTest->buildEffortForFinishTest($oldTask, $task4, '5', '')) && p('date') && e('2024-01-15'); -r($taskTest->buildEffortForFinishTest($oldTask, $task5, '1.5', '')) && p('work,consumed') && e('Original work description,1.5'); -r($taskTest->buildEffortForFinishTest($oldTask, $task6, '2', 'New work comment')) && p('work,consumed') && e('New work comment,2'); \ No newline at end of file diff --git a/module/task/test/zen/processexportdata.php b/module/task/test/zen/processexportdata.php deleted file mode 100755 index fdf3360cb3..0000000000 --- a/module/task/test/zen/processexportdata.php +++ /dev/null @@ -1,208 +0,0 @@ -#!/usr/bin/env php -> 期望story字段包含需求标题 @用户需求1( -timeout=0 -cid=18937 - -- 执行taskTest模块的processExportDataTest方法,参数是array 第0条的name属性 @Task 1 -- 执行taskTest模块的processExportDataTest方法,参数是array 第0条的story属性 @用户需求1(#1) -- 执行taskTest模块的processExportDataTest方法,参数是array 第0条的fromBug属性 @#1 BUG1 -- 执行taskTest模块的processExportDataTest方法,参数是array 第0条的name属性 @[多人] Multi task -- 执行taskTest模块的processExportDataTest方法,参数是array 第0条的name属性 @[父] Parent task -- 执行taskTest模块的processExportDataTest方法,参数是array 第0条的progress属性 @0% -- 执行taskTest模块的processExportDataTest方法,参数是array 第0条的progress属性 @30% -- 执行taskTest模块的processExportDataTest方法,参数是array 第0条的progress属性 @100% - -*/ - -include dirname(__FILE__, 5) . '/test/lib/init.php'; -include dirname(__FILE__, 2) . '/lib/taskzen.unittest.class.php'; - -zenData('user')->loadYaml('user', false, 2)->gen(10); -zenData('project')->loadYaml('project', false, 4)->gen(10); -zenData('story')->loadYaml('story', false, 4)->gen(10); -zenData('bug')->loadYaml('bug', false, 1)->gen(10); -zenData('module')->loadYaml('module', false, 1)->gen(10); -zenData('file')->loadYaml('file', false, 1)->gen(5); - -su('admin'); - -$taskTest = new taskZenTest(); - -$task1 = new stdClass(); -$task1->id = 1; -$task1->project = 1; -$task1->execution = 1; -$task1->module = 1; -$task1->story = 0; -$task1->fromBug = 0; -$task1->name = 'Task 1'; -$task1->type = 'devel'; -$task1->mode = 'linear'; -$task1->pri = 1; -$task1->estimate = 5; -$task1->consumed = 2; -$task1->left = 3; -$task1->status = 'doing'; -$task1->desc = 'Desc 1'; -$task1->mailto = ''; -$task1->team = ''; -$task1->isParent = 0; -$task1->parent = 0; -$task1->openedBy = 'admin'; -$task1->openedDate = '2024-01-01 10:00:00'; -$task1->assignedTo = 'admin'; -$task1->assignedDate = '2024-01-02 11:00:00'; -$task1->finishedBy = ''; -$task1->finishedDate = '0000-00-00 00:00:00'; -$task1->canceledBy = ''; -$task1->canceledDate = '0000-00-00 00:00:00'; -$task1->closedBy = ''; -$task1->closedDate = '0000-00-00 00:00:00'; -$task1->closedReason = ''; -$task1->lastEditedBy = ''; -$task1->lastEditedDate = '0000-00-00 00:00:00'; - -$baseTask = new stdClass(); -$baseTask->type = 'devel'; -$baseTask->mode = 'linear'; -$baseTask->pri = 1; -$baseTask->status = 'doing'; -$baseTask->desc = 'Base desc'; -$baseTask->openedBy = 'admin'; -$baseTask->openedDate = '2024-01-01 10:00:00'; -$baseTask->assignedTo = 'admin'; -$baseTask->assignedDate = '2024-01-02 11:00:00'; -$baseTask->finishedBy = ''; -$baseTask->finishedDate = '0000-00-00 00:00:00'; -$baseTask->canceledBy = ''; -$baseTask->canceledDate = '0000-00-00 00:00:00'; -$baseTask->closedBy = ''; -$baseTask->closedDate = '0000-00-00 00:00:00'; -$baseTask->closedReason = ''; -$baseTask->lastEditedBy = ''; -$baseTask->lastEditedDate = '0000-00-00 00:00:00'; - -$task2 = clone $baseTask; -$task2->id = 2; -$task2->project = 1; -$task2->execution = 1; -$task2->module = 2; -$task2->story = 1; -$task2->fromBug = 0; -$task2->name = 'Task with story'; -$task2->estimate = 8; -$task2->consumed = 4; -$task2->left = 4; -$task2->mailto = ''; -$task2->team = ''; -$task2->isParent = 0; -$task2->parent = 0; - -$task3 = clone $baseTask; -$task3->id = 3; -$task3->project = 1; -$task3->execution = 1; -$task3->module = 3; -$task3->story = 0; -$task3->fromBug = 1; -$task3->name = 'Task with bug'; -$task3->estimate = 3; -$task3->consumed = 1; -$task3->left = 2; -$task3->mailto = ''; -$task3->team = ''; -$task3->isParent = 0; -$task3->parent = 0; - -$task4 = clone $baseTask; -$task4->id = 4; -$task4->project = 1; -$task4->execution = 1; -$task4->module = 4; -$task4->story = 0; -$task4->fromBug = 0; -$task4->name = 'Multi task'; -$task4->estimate = 10; -$task4->consumed = 5; -$task4->left = 5; -$task4->mailto = ''; -$task4->team = 'team1'; -$task4->isParent = 0; -$task4->parent = 0; - -$task5 = clone $baseTask; -$task5->id = 5; -$task5->project = 1; -$task5->execution = 1; -$task5->module = 5; -$task5->story = 0; -$task5->fromBug = 0; -$task5->name = 'Parent task'; -$task5->estimate = 20; -$task5->consumed = 10; -$task5->left = 10; -$task5->mailto = ''; -$task5->team = ''; -$task5->isParent = 1; -$task5->parent = 0; - -$task6 = clone $baseTask; -$task6->id = 6; -$task6->project = 1; -$task6->execution = 1; -$task6->module = 6; -$task6->story = 0; -$task6->fromBug = 0; -$task6->name = 'Not started'; -$task6->estimate = 5; -$task6->consumed = 0; -$task6->left = 0; -$task6->mailto = ''; -$task6->team = ''; -$task6->isParent = 0; -$task6->parent = 0; - -$task7 = clone $baseTask; -$task7->id = 7; -$task7->project = 1; -$task7->execution = 1; -$task7->module = 7; -$task7->story = 0; -$task7->fromBug = 0; -$task7->name = 'In progress'; -$task7->estimate = 10; -$task7->consumed = 3; -$task7->left = 7; -$task7->mailto = ''; -$task7->team = ''; -$task7->isParent = 0; -$task7->parent = 0; - -$task8 = clone $baseTask; -$task8->id = 8; -$task8->project = 1; -$task8->execution = 1; -$task8->module = 8; -$task8->story = 0; -$task8->fromBug = 0; -$task8->name = 'Completed'; -$task8->estimate = 6; -$task8->consumed = 6; -$task8->left = 0; -$task8->mailto = ''; -$task8->team = ''; -$task8->isParent = 0; -$task8->parent = 0; - -r($taskTest->processExportDataTest(array($task1), 1)) && p('0:name') && e('Task 1'); -r($taskTest->processExportDataTest(array($task2), 1)) && p('0:story') && e('用户需求1(#1)'); -r($taskTest->processExportDataTest(array($task3), 1)) && p('0:fromBug') && e('#1 BUG1'); -r($taskTest->processExportDataTest(array($task4), 1)) && p('0:name') && e('[多人] Multi task'); -r($taskTest->processExportDataTest(array($task5), 1)) && p('0:name') && e('[父] Parent task'); -r($taskTest->processExportDataTest(array($task6), 1)) && p('0:progress') && e('0%'); -r($taskTest->processExportDataTest(array($task7), 1)) && p('0:progress') && e('30%'); -r($taskTest->processExportDataTest(array($task8), 1)) && p('0:progress') && e('100%'); \ No newline at end of file diff --git a/module/task/test/zen/responseafterrecord.php b/module/task/test/zen/responseafterrecord.php deleted file mode 100755 index fefd1d8cfd..0000000000 --- a/module/task/test/zen/responseafterrecord.php +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env php -id->range('1-10'); -$task->project->range('1'); -$task->execution->range('1{5},2{5}'); -$task->fromBug->range('0,1,2,3,0,0,0,0,0,0'); -$task->status->range('doing{5},done{5}'); -$task->gen(10); - -$bug = zenData('bug'); -$bug->id->range('1-10'); -$bug->status->range('active{5},resolved{5}'); -$bug->gen(10); - -$project = zenData('project'); -$project->id->range('1-5'); -$project->project->range('0,1,1,0,4'); -$project->name->range('项目1,执行1,执行2,项目2,执行3'); -$project->type->range('project,sprint,sprint,project,sprint'); -$project->gen(5); - -su('admin'); - -$taskTest = new taskZenTest(); - -$task1 = new stdclass(); -$task1->id = 1; -$task1->execution = 1; -$task1->fromBug = 0; -$task1->status = 'doing'; - -$task2 = new stdclass(); -$task2->id = 2; -$task2->execution = 1; -$task2->fromBug = 1; -$task2->status = 'doing'; - -$task3 = new stdclass(); -$task3->id = 3; -$task3->execution = 1; -$task3->fromBug = 2; -$task3->status = 'done'; - -$task4 = new stdclass(); -$task4->id = 4; -$task4->execution = 1; -$task4->fromBug = 6; -$task4->status = 'done'; - -$task5 = new stdclass(); -$task5->id = 5; -$task5->execution = 1; -$task5->fromBug = 0; -$task5->status = 'done'; - -$task6 = new stdclass(); -$task6->id = 6; -$task6->execution = 2; -$task6->fromBug = 0; -$task6->status = 'done'; - -$task7 = new stdclass(); -$task7->id = 7; -$task7->execution = 2; -$task7->fromBug = 0; -$task7->status = 'done'; - -$changes1 = array(); -$changes2 = array(); -$changes3 = array(array('field' => 'status', 'old' => 'doing', 'new' => 'done')); -$changes4 = array(array('field' => 'status', 'old' => 'doing', 'new' => 'done')); -$changes5 = array(array('field' => 'status', 'old' => 'doing', 'new' => 'done')); - -r($taskTest->responseAfterRecordTest($task1, $changes1, '', false)) && p('result') && e('success'); -r($taskTest->responseAfterRecordTest($task2, $changes2, '', false)) && p('result') && e('success'); -r($taskTest->responseAfterRecordTest($task3, $changes3, '', false)) && p('result') && e('success'); -r($taskTest->responseAfterRecordTest($task4, $changes4, '', false)) && p('result') && e('success'); -r($taskTest->responseAfterRecordTest($task5, $changes5, '', true)) && p('result') && e('success'); -r($taskTest->responseAfterRecordTest($task6, $changes5, '', true)) && p('result') && e('success'); -r($taskTest->responseAfterRecordTest($task7, $changes5, 'taskkanban', true)) && p('callback') && e('refreshKanban()'); \ No newline at end of file diff --git a/module/testcase/test/zen/addeditaction.php b/module/testcase/test/zen/addeditaction.php deleted file mode 100755 index bbbf9ab0b1..0000000000 --- a/module/testcase/test/zen/addeditaction.php +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env php -loadYaml('case', false, 2)->gen(10); -zendata('action')->gen(0); - -su('admin'); - -$testcaseTest = new testcaseZenTest(); - -$changes1 = array(array('field' => 'title', 'old' => '旧标题', 'new' => '新标题')); -$changes2 = array(); -$changes3 = array( - array('field' => 'title', 'old' => '旧标题', 'new' => '新标题'), - array('field' => 'pri', 'old' => '1', 'new' => '2'), - array('field' => 'type', 'old' => 'feature', 'new' => 'performance') -); -$comment1 = '这是一个评论'; - -r($testcaseTest->addEditActionTest(1, 'normal', 'normal', $changes1, '')) && p('actionCount') && e('1'); // 测试步骤1:有变更时创建编辑动作 -r($testcaseTest->addEditActionTest(2, 'normal', 'normal', $changes1, $comment1)) && p('actionCount') && e('1'); // 测试步骤2:有变更和评论时创建编辑动作 -r($testcaseTest->addEditActionTest(3, 'normal', 'normal', $changes2, $comment1)) && p('actionCount') && e('1'); // 测试步骤3:只有评论无变更时创建评论动作 -r($testcaseTest->addEditActionTest(4, 'normal', 'wait', $changes1, '')) && p('actionCount') && e('2'); // 测试步骤4:状态从normal变为wait时创建编辑和提交审核两个动作 -r($testcaseTest->addEditActionTest(5, 'wait', 'normal', $changes1, '')) && p('actionCount') && e('1'); // 测试步骤5:状态从wait变为normal时只创建编辑动作 -r($testcaseTest->addEditActionTest(6, 'wait', 'wait', $changes1, '')) && p('actionCount') && e('1'); // 测试步骤6:状态保持wait不变时只创建编辑动作 -r($testcaseTest->addEditActionTest(7, 'normal', 'normal', $changes3, $comment1)) && p('actionCount') && e('1'); // 测试步骤7:有多个变更字段时创建编辑动作 \ No newline at end of file diff --git a/module/testcase/test/zen/assignbranchforedit.php b/module/testcase/test/zen/assignbranchforedit.php deleted file mode 100755 index 73f14e96e9..0000000000 --- a/module/testcase/test/zen/assignbranchforedit.php +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env php -loadYaml('case_assignbranchforedit', false, 2)->gen(10); -zendata('branch')->loadYaml('branch_assignbranchforedit', false, 2)->gen(10); -zendata('product')->loadYaml('product_assignbranchforedit', false, 2)->gen(5); - -su('admin'); - -$testcaseTest = new testcaseZenTest(); - -$case1 = new stdClass(); -$case1->id = 1; -$case1->product = 1; -$case1->project = 1; -$case1->branch = 1; - -$case2 = new stdClass(); -$case2->id = 2; -$case2->product = 1; -$case2->project = 2; -$case2->branch = 2; - -$case3 = new stdClass(); -$case3->id = 3; -$case3->product = 1; -$case3->project = 1; -$case3->branch = 10; - -$case4 = new stdClass(); -$case4->id = 4; -$case4->product = 1; -$case4->project = 1; -$case4->branch = 999; - -$case5 = new stdClass(); -$case5->id = 5; -$case5->product = 2; -$case5->project = 3; -$case5->branch = 3; - -r($testcaseTest->assignBranchForEditTest($case1, 1, 'execution')) && p('1') && e('分支1'); -r($testcaseTest->assignBranchForEditTest($case2, 0, 'project')) && p('2') && e('分支2 (已关闭)'); -r($testcaseTest->assignBranchForEditTest($case3, 1, 'execution')) && p('10') && e('分支10 (已关闭)'); -r($testcaseTest->assignBranchForEditTest($case4, 1, 'execution')) && p('999') && e('0'); -r(count($testcaseTest->assignBranchForEditTest($case5, 3, 'execution'))) && p() && e('1'); \ No newline at end of file diff --git a/module/testcase/test/zen/assigncreatescenevars.php b/module/testcase/test/zen/assigncreatescenevars.php deleted file mode 100755 index dedd96f567..0000000000 --- a/module/testcase/test/zen/assigncreatescenevars.php +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env php -loadYaml('assigncreatescenevars/product', false, 2)->gen(10); -zendata('branch')->loadYaml('assigncreatescenevars/branch', false, 2)->gen(10); -zendata('module')->loadYaml('assigncreatescenevars/module', false, 2)->gen(20); -zendata('scene')->loadYaml('assigncreatescenevars/scene', false, 2)->gen(10); - -// 3. 用户登录 -su('admin'); - -// 4. 创建测试实例 -$testcaseTest = new testcaseZenTest(); - -// 5. 测试步骤 -r($testcaseTest->assignCreateSceneVarsTest(1, '', 0)) && p('executed') && e('1'); // 步骤1:正常产品ID,空分支,无模块 -r($testcaseTest->assignCreateSceneVarsTest(6, '1', 0)) && p('executed') && e('1'); // 步骤2:有分支的产品,指定分支 -r($testcaseTest->assignCreateSceneVarsTest(1, '', 5)) && p('executed') && e('1'); // 步骤3:正常产品,指定模块ID -r($testcaseTest->assignCreateSceneVarsTest(7, '', 0)) && p('executed') && e('1'); // 步骤4:分支产品但分支为空 -r($testcaseTest->assignCreateSceneVarsTest(2, '', 10)) && p('executed') && e('1'); // 步骤5:正常产品,指定大的模块ID \ No newline at end of file diff --git a/module/testcase/test/zen/assignmoduleoptionmenuforedit.php b/module/testcase/test/zen/assignmoduleoptionmenuforedit.php deleted file mode 100755 index 1511f4caaa..0000000000 --- a/module/testcase/test/zen/assignmoduleoptionmenuforedit.php +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env php -id->range('1-5'); -$productTable->name->range('产品1,产品2,产品3,产品4,产品5'); -$productTable->type->range('normal{2},branch{2},platform{1}'); -$productTable->status->range('normal'); -$productTable->deleted->range('0'); -$productTable->gen(5); - -// 模块数据 -$moduleTable = zenData('module'); -$moduleTable->id->range('1-20'); -$moduleTable->root->range('1{5},2{5},3{5},4{3},5{2}'); -$moduleTable->branch->range('0{5},1{5},2{5},0{3},1{2}'); -$moduleTable->name->range('模块A,模块B,模块C,模块D,模块E,模块F,模块G,模块H,模块I,模块J,模块K,模块L,模块M,模块N,模块O,模块P,模块Q,模块R,模块S,模块T'); -$moduleTable->type->range('case'); -$moduleTable->parent->range('0'); -$moduleTable->grade->range('1'); -$moduleTable->deleted->range('0'); -$moduleTable->gen(20); - -// 用例数据 -$caseTable = zenData('case'); -$caseTable->id->range('1-10'); -$caseTable->product->range('1{5},2{3},3{2}'); -$caseTable->module->range('1,2,3,4,5,6,7,8,11,12'); -$caseTable->branch->range('0{3},1{4},2{3}'); -$caseTable->lib->range('0'); -$caseTable->fromCaseID->range('0'); -$caseTable->title->range('测试用例A,测试用例B,测试用例C,测试用例D,测试用例E,测试用例F,测试用例G,测试用例H,测试用例I,测试用例J'); -$caseTable->type->range('feature'); -$caseTable->status->range('normal'); -$caseTable->deleted->range('0'); -$caseTable->gen(10); - -// 3. 用户登录(选择合适角色) -su('admin'); - -// 4. 创建测试实例(变量名与模块名一致) -$testcaseTest = new testcaseTest(); - -// 5. 🔴 强制要求:必须包含至少5个测试步骤 -r($testcaseTest->assignModuleOptionMenuForEditTest($testcaseTest->objectModel->loadModel('testcase')->getByID(1))) && p('1') && e('/模块A'); // 步骤1:普通产品用例(branch=0) -r($testcaseTest->assignModuleOptionMenuForEditTest($testcaseTest->objectModel->loadModel('testcase')->getByID(4))) && p('4') && e('/模块D'); // 步骤2:分支产品用例(branch=1) -r($testcaseTest->assignModuleOptionMenuForEditTest($testcaseTest->objectModel->loadModel('testcase')->getByID(7))) && p('7') && e('/模块G'); // 步骤3:分支产品用例(branch=2) -r($testcaseTest->assignModuleOptionMenuForEditTest($testcaseTest->objectModel->loadModel('testcase')->getByID(2))) && p('2') && e('/模块B'); // 步骤4:产品1的第一个模块 -r($testcaseTest->assignModuleOptionMenuForEditTest($testcaseTest->objectModel->loadModel('testcase')->getByID(3))) && p('3') && e('/模块C'); // 步骤5:产品1的第二个模块 -r($testcaseTest->assignModuleOptionMenuForEditTest($testcaseTest->objectModel->loadModel('testcase')->getByID(6))) && p('6') && e('/模块F'); // 步骤6:产品2的模块 -r($testcaseTest->assignModuleOptionMenuForEditTest($testcaseTest->objectModel->loadModel('testcase')->getByID(8))) && p('8') && e('/模块H'); // 步骤7:产品2分支用例 \ No newline at end of file diff --git a/module/testcase/test/zen/buildbrowsesearchform.php b/module/testcase/test/zen/buildbrowsesearchform.php deleted file mode 100755 index 1427c6f41a..0000000000 --- a/module/testcase/test/zen/buildbrowsesearchform.php +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env php -id->range('1-5'); -$product->name->range('产品A,产品B,产品C,产品D,产品E'); -$product->type->range('normal'); -$product->status->range('normal'); -$product->deleted->range('0'); -$product->gen(5); - -$project = zenData('project'); -$project->id->range('1-3'); -$project->name->range('项目A,项目B,项目C'); -$project->type->range('project'); -$project->status->range('doing'); -$project->deleted->range('0'); -$project->gen(3); - -$case = zenData('case'); -$case->id->range('1-10'); -$case->product->range('1-5'); -$case->project->range('1-3'); -$case->title->range('测试用例{1-10}'); -$case->status->range('normal'); -$case->deleted->range('0'); -$case->gen(10); - -// 3. 用户登录 -su('admin'); - -// 4. 创建测试实例 -$testcaseTest = new testcaseTest(); - -// 5. 测试步骤 -r($testcaseTest->buildBrowseSearchFormTest(1, 0, 1, 'testcase-browse-1.html', 'testcase')) && p('onMenuBar') && e('yes'); // 步骤1:在testcase模块下构建搜索表单 -r($testcaseTest->buildBrowseSearchFormTest(1, 0, 1, 'testcase-browse-1.html', 'other')) && p('onMenuBar') && e('~~'); // 步骤2:在非testcase模块下构建搜索表单 -r($testcaseTest->buildBrowseSearchFormTest(1, 0, 0, 'testcase-browse-1.html', 'testcase')) && p('searchProductsCount') && e('5'); // 步骤3:使用有效productID构建搜索表单 -r($testcaseTest->buildBrowseSearchFormTest(2, 1, 0, 'testcase-browse-2.html', 'testcase')) && p('searchFieldsCount') && e('20'); // 步骤4:使用有效queryID构建搜索表单 -r($testcaseTest->buildBrowseSearchFormTest(3, 0, 2, 'testcase-browse-3.html', 'testcase')) && p('searchFieldsCount') && e('20'); // 步骤5:使用有效projectID构建搜索表单 \ No newline at end of file diff --git a/module/testcase/test/zen/preparereviewdata.php b/module/testcase/test/zen/preparereviewdata.php deleted file mode 100755 index 0a069049c2..0000000000 --- a/module/testcase/test/zen/preparereviewdata.php +++ /dev/null @@ -1,102 +0,0 @@ -#!/usr/bin/env php -id = 1; -$oldCase1->status = 'wait'; - -$oldCase2 = new stdClass(); -$oldCase2->id = 2; -$oldCase2->status = 'normal'; - -$oldCase3 = new stdClass(); -$oldCase3->id = 3; -$oldCase3->status = 'wait'; - -$oldCase4 = new stdClass(); -$oldCase4->id = 4; -$oldCase4->status = 'normal'; - -$oldCase5 = new stdClass(); -$oldCase5->id = 5; -$oldCase5->status = 'wait'; - -// 测试数据1: 评审通过 -$postData1 = array( - 'result' => 'pass', - 'reviewedBy' => array('admin'), - 'reviewedDate' => '2024-01-15', - 'comment' => '评审通过', - 'uid' => '' -); - -// 测试数据2: 评审不通过 -$postData2 = array( - 'result' => 'fail', - 'reviewedBy' => array('admin'), - 'reviewedDate' => '2024-01-15', - 'comment' => '需要修改', - 'uid' => '' -); - -// 测试数据3: 未选择评审结果 -$postData3 = array( - 'result' => '', - 'reviewedBy' => array('admin'), - 'reviewedDate' => '2024-01-15', - 'uid' => '' -); - -// 测试数据4: 多个评审人员 -$postData4 = array( - 'result' => 'pass', - 'reviewedBy' => array('admin', 'user1', 'user2'), - 'reviewedDate' => '2024-01-15', - 'comment' => '多人评审通过', - 'uid' => '' -); - -// 测试数据5: 单个评审人员 -$postData5 = array( - 'result' => 'pass', - 'reviewedBy' => array('admin'), - 'reviewedDate' => '2024-01-15', - 'comment' => '单人评审通过', - 'uid' => '' -); - -r($testcaseTest->prepareReviewDataTest(1, $oldCase1, $postData1)) && p('status,result') && e('normal,pass'); -r($testcaseTest->prepareReviewDataTest(2, $oldCase2, $postData2)) && p('status,result') && e('normal,fail'); -r($testcaseTest->prepareReviewDataTest(3, $oldCase3, $postData3)) && p() && e('0'); -r($testcaseTest->prepareReviewDataTest(4, $oldCase4, $postData4)) && p('status,reviewedBy') && e('normal,admin,user1,user2'); -r($testcaseTest->prepareReviewDataTest(5, $oldCase5, $postData5)) && p('status,reviewedBy') && e('normal,admin'); \ No newline at end of file diff --git a/module/testcase/test/zen/processcaseforexport.php b/module/testcase/test/zen/processcaseforexport.php deleted file mode 100755 index 84a8bb1ddb..0000000000 --- a/module/testcase/test/zen/processcaseforexport.php +++ /dev/null @@ -1,149 +0,0 @@ -#!/usr/bin/env php -id->range('1-10'); -$table->product->range('1-3'); -$table->branch->range('0{3},1{3},2{4}'); -$table->module->range('1-3'); -$table->lib->range('0'); -$table->story->range('0,1{3},2{3},3{3}'); -$table->scene->range('0{5},1{3},2{2}'); -$table->title->range('测试用例1,测试用例2,测试用例3,测试用例4,测试用例5'); -$table->type->range('feature{5},performance{3},config{2}'); -$table->pri->range('1-4'); -$table->status->range('normal{8},blocked{2}'); -$table->stage->range('unittest{3},feature{4},integrate{3}'); -$table->openedBy->range('admin{5},user1{3},tester{2}'); -$table->openedDate->range('`2024-01-01 10:00:00`'); -$table->lastEditedBy->range('admin{3},user1{4},tester{3}'); -$table->lastEditedDate->range('`2024-01-15 15:30:00`'); -$table->lastRunner->range('admin{4},tester{3},user1{3}'); -$table->lastRunDate->range('`2024-02-01 09:00:00`'); -$table->lastRunResult->range('pass{4},fail{3},blocked{3}'); -$table->deleted->range('0'); -$table->gen(10); - -$productTable = zenData('product'); -$productTable->id->range('1-5'); -$productTable->name->range('产品A,产品B,产品C,产品D,产品E'); -$productTable->type->range('normal{2},branch{2},platform{1}'); -$productTable->status->range('normal'); -$productTable->deleted->range('0'); -$productTable->gen(5); - -$branchTable = zenData('branch'); -$branchTable->id->range('1-5'); -$branchTable->product->range('2{3},3{2}'); -$branchTable->name->range('分支A,分支B,分支C,分支D,分支E'); -$branchTable->status->range('active'); -$branchTable->deleted->range('0'); -$branchTable->gen(5); - -$moduleTable = zenData('module'); -$moduleTable->id->range('1-10'); -$moduleTable->root->range('1{5},2{3},3{2}'); -$moduleTable->name->range('模块A,模块B,模块C,模块D,模块E'); -$moduleTable->type->range('case'); -$moduleTable->parent->range('0'); -$moduleTable->grade->range('1'); -$moduleTable->deleted->range('0'); -$moduleTable->gen(10); - -$storyTable = zenData('story'); -$storyTable->id->range('1-5'); -$storyTable->product->range('1-3'); -$storyTable->title->range('需求A,需求B,需求C,需求D,需求E'); -$storyTable->type->range('story'); -$storyTable->status->range('active'); -$storyTable->deleted->range('0'); -$storyTable->gen(5); - -$sceneTable = zenData('scene'); -$sceneTable->id->range('1-5'); -$sceneTable->product->range('1-3'); -$sceneTable->title->range('场景A,场景B,场景C,场景D,场景E'); -$sceneTable->deleted->range('0'); -$sceneTable->gen(5); - -// 3. 用户登录(选择合适角色) -su('admin'); - -// 4. 创建测试实例(变量名与模块名一致) -$testcaseTest = new testcaseZenTest(); - -// 准备测试数据 -$case1 = new stdClass(); -$case1->id = 1; -$case1->product = 1; -$case1->branch = 0; -$case1->module = 1; -$case1->story = 1; -$case1->scene = 0; -$case1->pri = 1; -$case1->type = 'feature'; -$case1->status = 'normal'; -$case1->openedBy = 'admin'; -$case1->openedDate = '2024-01-01 10:00:00'; -$case1->lastEditedBy = 'admin'; -$case1->lastEditedDate = '2024-01-15 15:30:00'; -$case1->lastRunner = 'admin'; -$case1->lastRunDate = '2024-02-01 09:00:00'; -$case1->lastRunResult = 'pass'; -$case1->stage = 'unittest,feature'; -$case1->bugs = 1; -$case1->results = 2; -$case1->stepNumber = 3; -$case1->caseFails = 0; -$case1->linkCase = ''; - -$case2 = clone $case1; -$case2->id = 2; -$case2->product = 2; -$case2->branch = 1; -$case2->module = 2; - -$case3 = clone $case1; -$case3->id = 3; -$case3->product = 3; -$case3->scene = 1; -$case3->module = 3; - -$products = array(1 => '产品A', 2 => '产品B', 3 => '产品C'); -$branches = array(1 => '分支A', 2 => '分支B'); -$users = array('admin' => '管理员', 'user1' => '普通用户', 'tester' => '测试用户'); -$results = array(); -$relatedModules = array(1 => '模块A', 2 => '模块B', 3 => '模块C'); -$relatedStories = array(1 => '需求A', 2 => '需求B', 3 => '需求C'); -$relatedCases = array(); -$relatedSteps = array(); -$relatedFiles = array(); -$relatedScenes = array(1 => '场景A', 2 => '场景B'); - -// 5. 🔴 强制要求:必须包含至少5个测试步骤 -r($testcaseTest->processCaseForExportTest($case1, $products, $branches, $users, $results, $relatedModules, $relatedStories, $relatedCases, $relatedSteps, $relatedFiles, $relatedScenes)) && p('product') && e('产品A(#1)'); // 测试产品字段格式化 -r($testcaseTest->processCaseForExportTest($case1, $products, $branches, $users, $results, $relatedModules, $relatedStories, $relatedCases, $relatedSteps, $relatedFiles, $relatedScenes)) && p('module') && e('模块A(#1)'); // 测试模块字段格式化 -r($testcaseTest->processCaseForExportTest($case1, $products, $branches, $users, $results, $relatedModules, $relatedStories, $relatedCases, $relatedSteps, $relatedFiles, $relatedScenes)) && p('story') && e('需求A(#1)'); // 测试需求字段格式化 -r($testcaseTest->processCaseForExportTest($case2, $products, $branches, $users, $results, $relatedModules, $relatedStories, $relatedCases, $relatedSteps, $relatedFiles, $relatedScenes)) && p('branch') && e('分支A(#1)'); // 测试带分支的用例导出数据格式化 -r($testcaseTest->processCaseForExportTest($case3, $products, $branches, $users, $results, $relatedModules, $relatedStories, $relatedCases, $relatedSteps, $relatedFiles, $relatedScenes)) && p('scene') && e('场景A(#1)'); // 测试带场景的用例导出数据格式化 -r($testcaseTest->processCaseForExportTest($case1, $products, $branches, $users, $results, $relatedModules, $relatedStories, $relatedCases, $relatedSteps, $relatedFiles, $relatedScenes)) && p('openedDate') && e('2024-01-01'); // 测试日期格式化 \ No newline at end of file diff --git a/module/testcase/test/zen/processcasesforexport.php b/module/testcase/test/zen/processcasesforexport.php deleted file mode 100755 index b9ddd53fbd..0000000000 --- a/module/testcase/test/zen/processcasesforexport.php +++ /dev/null @@ -1,171 +0,0 @@ -#!/usr/bin/env php -> 产品A( -timeout=0 -cid=1 - -- 步骤1:测试导出空用例数组 @0 -- 步骤2:测试导出单个用例,检查返回数量 @1 -- 步骤3:测试导出单个用例,检查产品字段格式化第1条的product属性 @产品A(#1) -- 步骤4:测试导出单个用例,检查日期格式化第1条的openedDate属性 @2024-01-01 -- 步骤5:测试导出多个用例,检查返回数量 @3 -- 步骤6:测试导出多个用例,检查第二个用例的产品字段第2条的product属性 @产品B(#2) - -*/ - -// 1. 导入依赖(路径固定,不可修改) -include dirname(__FILE__, 5) . '/test/lib/init.php'; -include dirname(__FILE__, 2) . '/lib/testcasezen.unittest.class.php'; - -// 2. zendata数据准备(根据需要配置) -$table = zenData('case'); -$table->id->range('1-10'); -$table->product->range('1-3'); -$table->branch->range('0{3},1{3},2{4}'); -$table->module->range('1-3'); -$table->lib->range('0'); -$table->story->range('0,1{3},2{3},3{3}'); -$table->scene->range('0{5},1{3},2{2}'); -$table->title->range('测试用例1,测试用例2,测试用例3,测试用例4,测试用例5'); -$table->type->range('feature{5},performance{3},config{2}'); -$table->pri->range('1-4'); -$table->status->range('normal{8},blocked{2}'); -$table->stage->range('unittest{3},feature{4},integrate{3}'); -$table->openedBy->range('admin{5},user1{3},tester{2}'); -$table->openedDate->range('`2024-01-01 10:00:00`'); -$table->lastEditedBy->range('admin{3},user1{4},tester{3}'); -$table->lastEditedDate->range('`2024-01-15 15:30:00`'); -$table->lastRunner->range('admin{4},tester{3},user1{3}'); -$table->lastRunDate->range('`2024-02-01 09:00:00`'); -$table->lastRunResult->range('pass{4},fail{3},blocked{3}'); -$table->linkCase->range('``'); -$table->deleted->range('0'); -$table->gen(10); - -$productTable = zenData('product'); -$productTable->id->range('1-5'); -$productTable->name->range('产品A,产品B,产品C,产品D,产品E'); -$productTable->type->range('normal{2},branch{2},platform{1}'); -$productTable->status->range('normal'); -$productTable->deleted->range('0'); -$productTable->gen(5); - -$branchTable = zenData('branch'); -$branchTable->id->range('1-5'); -$branchTable->product->range('2{3},3{2}'); -$branchTable->name->range('分支A,分支B,分支C,分支D,分支E'); -$branchTable->status->range('active'); -$branchTable->deleted->range('0'); -$branchTable->gen(5); - -$moduleTable = zenData('module'); -$moduleTable->id->range('1-10'); -$moduleTable->root->range('1{5},2{3},3{2}'); -$moduleTable->name->range('模块A,模块B,模块C,模块D,模块E'); -$moduleTable->type->range('case'); -$moduleTable->parent->range('0'); -$moduleTable->grade->range('1'); -$moduleTable->deleted->range('0'); -$moduleTable->gen(10); - -$storyTable = zenData('story'); -$storyTable->id->range('1-5'); -$storyTable->product->range('1-3'); -$storyTable->title->range('需求A,需求B,需求C,需求D,需求E'); -$storyTable->type->range('story'); -$storyTable->status->range('active'); -$storyTable->deleted->range('0'); -$storyTable->gen(5); - -$sceneTable = zenData('scene'); -$sceneTable->id->range('1-5'); -$sceneTable->product->range('1-3'); -$sceneTable->title->range('场景A,场景B,场景C,场景D,场景E'); -$sceneTable->deleted->range('0'); -$sceneTable->gen(5); - -$userTable = zenData('user'); -$userTable->id->range('1-10'); -$userTable->account->range('admin,user1,tester,dev1,pm1'); -$userTable->realname->range('管理员,普通用户,测试用户,开发1,项目经理1'); -$userTable->deleted->range('0'); -$userTable->gen(5); - -$testtaskTable = zenData('testtask'); -$testtaskTable->id->range('1-5'); -$testtaskTable->product->range('1-3'); -$testtaskTable->name->range('测试任务1,测试任务2,测试任务3'); -$testtaskTable->status->range('doing'); -$testtaskTable->deleted->range('0'); -$testtaskTable->gen(3); - -$testrunTable = zenData('testrun'); -$testrunTable->id->range('1-5'); -$testrunTable->task->range('1-3'); -$testrunTable->case->range('1-3'); -$testrunTable->version->range('1'); -$testrunTable->gen(3); - -$testresultTable = zenData('testresult'); -$testresultTable->id->range('1-5'); -$testresultTable->run->range('1-3'); -$testresultTable->case->range('1-3'); -$testresultTable->version->range('1'); -$testresultTable->caseResult->range('pass,fail,blocked'); -$testresultTable->lastRunner->range('admin,tester,user1'); -$testresultTable->stepResults->range('`' . serialize(array()) . '`'); -$testresultTable->gen(3); - -// 3. 用户登录(选择合适角色) -su('admin'); - -// 4. 创建测试实例(变量名与模块名一致) -$testcaseTest = new testcaseZenTest(); - -// 准备测试数据 -$case1 = new stdClass(); -$case1->id = 1; -$case1->product = 1; -$case1->branch = 0; -$case1->module = 1; -$case1->story = 1; -$case1->scene = 0; -$case1->pri = 1; -$case1->type = 'feature'; -$case1->status = 'normal'; -$case1->openedBy = 'admin'; -$case1->openedDate = '2024-01-01 10:00:00'; -$case1->lastEditedBy = 'admin'; -$case1->lastEditedDate = '2024-01-15 15:30:00'; -$case1->lastRunner = 'admin'; -$case1->lastRunDate = '2024-02-01 09:00:00'; -$case1->lastRunResult = 'pass'; -$case1->stage = 'unittest,feature'; -$case1->bugs = 1; -$case1->results = 2; -$case1->stepNumber = 3; -$case1->caseFails = 0; -$case1->linkCase = ''; - -$case2 = clone $case1; -$case2->id = 2; -$case2->product = 2; -$case2->branch = 1; -$case2->module = 2; - -$case3 = clone $case1; -$case3->id = 3; -$case3->product = 3; -$case3->scene = 1; -$case3->module = 3; - -// 5. 🔴 强制要求:必须包含至少5个测试步骤 -r(count($testcaseTest->processCasesForExportTest(array(), 1, 0))) && p() && e('0'); // 步骤1:测试导出空用例数组 -r(count($testcaseTest->processCasesForExportTest(array(1 => clone $case1), 1, 0))) && p() && e('1'); // 步骤2:测试导出单个用例,检查返回数量 -r($testcaseTest->processCasesForExportTest(array(1 => clone $case1), 1, 0)) && p('1:product') && e('产品A(#1)'); // 步骤3:测试导出单个用例,检查产品字段格式化 -r($testcaseTest->processCasesForExportTest(array(1 => clone $case1), 1, 0)) && p('1:openedDate') && e('2024-01-01'); // 步骤4:测试导出单个用例,检查日期格式化 -r(count($testcaseTest->processCasesForExportTest(array(1 => clone $case1, 2 => clone $case2, 3 => clone $case3), 1, 0))) && p() && e('3'); // 步骤5:测试导出多个用例,检查返回数量 -r($testcaseTest->processCasesForExportTest(array(1 => clone $case1, 2 => clone $case2, 3 => clone $case3), 1, 0)) && p('2:product') && e('产品B(#2)'); // 步骤6:测试导出多个用例,检查第二个用例的产品字段 \ No newline at end of file diff --git a/module/testcase/test/zen/responseafterbatchcreate.php b/module/testcase/test/zen/responseafterbatchcreate.php deleted file mode 100755 index 7a0570cc3e..0000000000 --- a/module/testcase/test/zen/responseafterbatchcreate.php +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env php - array('Database error occurred')); -r($testcaseTest->responseAfterBatchCreateTest(1, 0, $mockData1)) && p('result,message') && e('fail,Database error occurred'); - -// 测试步骤2:测试 Ajax 模态框请求时的响应 -$mockData2 = array( - 'request' => array('HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest'), - 'app' => array('rawParams' => array('modal')) -); -r($testcaseTest->responseAfterBatchCreateTest(1, 0, $mockData2)) && p('result,closeModal,load') && e('success,1,1'); - -// 测试步骤3:测试 JSON 视图类型时的响应 -$mockData3 = array('viewType' => 'json'); -r($testcaseTest->responseAfterBatchCreateTest(1, 0, $mockData3)) && p('result') && e('success'); - -// 测试步骤4:测试在 QA tab 下的默认响应 -$mockData4 = array('app' => array('tab' => 'qa')); -r($testcaseTest->responseAfterBatchCreateTest(1, 0, $mockData4)) && p('result,load') && e('success,/testcase-browse-productID=1&branch=0.html'); - -// 测试步骤5:测试在 project tab 下的默认响应 -$mockData5 = array( - 'app' => array('tab' => 'project'), - 'session' => array('project' => 10) -); -r($testcaseTest->responseAfterBatchCreateTest(2, 1, $mockData5)) && p('result,load') && e('success,/project-testcase-projectID=10&productID=2&branch=1.html'); - -// 测试步骤6:测试在 execution tab 下的默认响应 -$mockData6 = array( - 'app' => array('tab' => 'execution'), - 'session' => array('execution' => 20) -); -r($testcaseTest->responseAfterBatchCreateTest(3, 2, $mockData6)) && p('result,load') && e('success,/execution-testcase-executionID=20&productID=3&branch=2.html'); \ No newline at end of file diff --git a/module/testcase/test/zen/responseaftershowimport.php b/module/testcase/test/zen/responseaftershowimport.php deleted file mode 100755 index aafd34a9ce..0000000000 --- a/module/testcase/test/zen/responseaftershowimport.php +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env php - array('Database error occurred')); -r($testcaseTest->responseAfterBatchCreateTest(1, 0, $mockData1)) && p('result,message') && e('fail,Database error occurred'); - -// 测试步骤2:测试 Ajax 模态框请求时的响应 -$mockData2 = array( - 'request' => array('HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest'), - 'app' => array('rawParams' => array('modal')) -); -r($testcaseTest->responseAfterBatchCreateTest(1, 0, $mockData2)) && p('result,closeModal,load') && e('success,1,1'); - -// 测试步骤3:测试 JSON 视图类型时的响应 -$mockData3 = array('viewType' => 'json'); -r($testcaseTest->responseAfterBatchCreateTest(1, 0, $mockData3)) && p('result') && e('success'); - -// 测试步骤4:测试在 QA tab 下的默认响应 -$mockData4 = array('app' => array('tab' => 'qa')); -r($testcaseTest->responseAfterBatchCreateTest(1, 0, $mockData4)) && p('result,load') && e('success,/testcase-browse-productID=1&branch=0.html'); - -// 测试步骤5:测试在 project tab 下的默认响应 -$mockData5 = array( - 'app' => array('tab' => 'project'), - 'session' => array('project' => 10) -); -r($testcaseTest->responseAfterBatchCreateTest(2, 1, $mockData5)) && p('result,load') && e('success,/project-testcase-projectID=10&productID=2&branch=1.html'); - -// 测试步骤6:测试在 execution tab 下的默认响应 -$mockData6 = array( - 'app' => array('tab' => 'execution'), - 'session' => array('execution' => 20) -); -r($testcaseTest->responseAfterBatchCreateTest(3, 2, $mockData6)) && p('result,load') && e('success,/execution-testcase-executionID=20&productID=3&branch=2.html'); \ No newline at end of file diff --git a/module/testreport/test/zen/commonaction.php b/module/testreport/test/zen/commonaction.php deleted file mode 100755 index f894ff2bc6..0000000000 --- a/module/testreport/test/zen/commonaction.php +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env php -commonActionTest(1, 'product')) && p() && e('1'); // 步骤1:objectType为product且objectID为1的正常情况 -r($testreportTest->commonActionTest(2, 'execution')) && p() && e('2'); // 步骤2:objectType为execution且objectID为2的正常情况 -r($testreportTest->commonActionTest(3, 'project')) && p() && e('3'); // 步骤3:objectType为project且objectID为3的正常情况 -r($testreportTest->commonActionTest(0, 'product')) && p() && e('1'); // 步骤4:objectType为product且objectID为0时返回默认产品ID -r($testreportTest->commonActionTest(0, 'execution')) && p() && e('0'); // 步骤5:objectType为execution且objectID为0时返回默认执行ID \ No newline at end of file diff --git a/module/testtask/test/zen/responseafterruncase.php b/module/testtask/test/zen/responseafterruncase.php deleted file mode 100755 index 7800031502..0000000000 --- a/module/testtask/test/zen/responseafterruncase.php +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env php -id = 1; -$run1->task = 1; - -$preAndNext1 = new stdclass(); -$preAndNext1->pre = null; -$preAndNext1->next = null; - -r($testtaskTest->responseAfterRunCaseTest('fail', $preAndNext1, $run1, 1, 1)) && p() && e('error: '); - -$run2 = new stdclass(); -$run2->id = 2; -$run2->task = 2; - -$preAndNext2 = new stdclass(); -$preAndNext2->pre = null; -$preAndNext2->next = null; - -r($testtaskTest->responseAfterRunCaseTest('pass', $preAndNext2, $run2, 2, 1)) && p() && e('success'); - -$run3 = new stdclass(); -$run3->id = 3; -$run3->task = 3; - -$nextCase = new stdclass(); -$nextCase->id = 4; -$nextCase->case = 4; -$nextCase->version = 1; - -$preAndNext3 = new stdclass(); -$preAndNext3->pre = null; -$preAndNext3->next = $nextCase; - -r($testtaskTest->responseAfterRunCaseTest('pass', $preAndNext3, $run3, 3, 1)) && p() && e('success'); - -$run4 = new stdclass(); -$run4->id = 5; -$run4->task = 4; - -$preAndNext4 = new stdclass(); -$preAndNext4->pre = null; -$preAndNext4->next = $nextCase; - -r($testtaskTest->responseAfterRunCaseTest('blocked', $preAndNext4, $run4, 5, 1)) && p() && e('success'); - -$run5 = new stdclass(); -$run5->id = 6; - -$preAndNext5 = new stdclass(); -$preAndNext5->pre = null; -$preAndNext5->next = null; - -r($testtaskTest->responseAfterRunCaseTest('pass', $preAndNext5, $run5, 6, 1)) && p() && e('success'); \ No newline at end of file diff --git a/module/zanode/test/zen/handlenode.php b/module/zanode/test/zen/handlenode.php deleted file mode 100755 index b5504f1c9f..0000000000 --- a/module/zanode/test/zen/handlenode.php +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env php -rawModule)) $app->rawModule = 'zanode'; -if(!isset($app->rawMethod)) $app->rawMethod = 'test'; - -zenData('host')->gen(0); - -su('admin'); - -$zanodeTest = new zanodeTest(); - -// 准备测试数据: 创建不同状态的节点 -$host = zenData('host'); -$host->id->range('1-10'); -$host->name->range('node1,node2,node3,node4,node5,node6,node7'); -$host->extranet->range('192.168.1.1,192.168.1.2,192.168.1.3,192.168.1.4,192.168.1.5,192.168.1.6,192.168.1.7'); -$host->zap->range('8086'); -$host->tokenSN->range('token1,token2,token3,token4,token5,token6,token7'); -$host->status->range('running,running,running,restoring,creating_img,creating_snap,suspend'); -$host->type->range('node'); -$host->gen(7); - -r($zanodeTest->handleNodeTest(1, 'boot')) && p('result,message') && e('success,操作成功'); // 测试步骤1: 正常执行boot操作 -r($zanodeTest->handleNodeTest(2, 'destroy')) && p('result,message') && e('success,操作成功'); // 测试步骤2: 正常执行destroy操作 -r($zanodeTest->handleNodeTest(3, 'suspend')) && p('result,message') && e('success,操作成功'); // 测试步骤3: 正常执行suspend操作 -r($zanodeTest->handleNodeTest(4, 'boot')) && p('result') && e('fail'); // 测试步骤4: 节点状态为restoring时执行操作 -r($zanodeTest->handleNodeTest(5, 'boot')) && p('result') && e('fail'); // 测试步骤5: 节点状态为creating_img时执行操作 -r($zanodeTest->handleNodeTest(6, 'boot')) && p('result') && e('fail'); // 测试步骤6: 节点状态为creating_snap时执行操作 -r($zanodeTest->handleNodeTest(7, 'resume')) && p('result,message') && e('success,操作成功'); // 测试步骤7: 正常执行resume操作 \ No newline at end of file diff --git a/module/zanode/test/zen/preparecreatesnapshotextras.php b/module/zanode/test/zen/preparecreatesnapshotextras.php deleted file mode 100755 index 6aabdc96f1..0000000000 --- a/module/zanode/test/zen/preparecreatesnapshotextras.php +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/env php -rawModule)) $app->rawModule = 'zanode'; -if(!isset($app->rawMethod)) $app->rawMethod = 'test'; - -zenData('host')->gen(0); - -su('admin'); - -$zanodeTest = new zanodeTest(); - -// 准备测试节点数据 -$node1 = new stdClass(); -$node1->id = 1; -$node1->name = 'test-node-1'; -$node1->osName = 'Ubuntu 20.04'; -$node1->status = 'running'; - -$node2 = new stdClass(); -$node2->id = 2; -$node2->name = 'test-node-2'; -$node2->osName = 'CentOS 7'; -$node2->status = 'running'; - -$node3 = new stdClass(); -$node3->id = 3; -$node3->name = 'test-node-3'; -$node3->osName = 'Debian 11'; -$node3->status = 'running'; - -// 测试步骤1: 正常创建快照,使用英文字母名称 -$app->post = new stdClass(); -$app->post->name = 'test_snapshot'; -$app->post->desc = 'Test snapshot description'; -r($zanodeTest->prepareCreateSnapshotExtrasTest($node1)) && p('host,name,status,from') && e('1,test_snapshot,creating,snapshot'); - -// 测试步骤2: 正常创建快照,名称包含字母和数字 -$app->post = new stdClass(); -$app->post->name = 'snapshot_v1'; -$app->post->desc = 'Version 1 snapshot'; -r($zanodeTest->prepareCreateSnapshotExtrasTest($node2)) && p('name,desc,osName') && e('snapshot_v1,Version 1 snapshot,CentOS 7'); - -// 测试步骤3: 异常场景,快照名称为纯数字 -$app->post = new stdClass(); -$app->post->name = '12345'; -$app->post->desc = 'Numeric name test'; -r($zanodeTest->prepareCreateSnapshotExtrasTest($node1)) && p('name') && e('Name validation error'); - -// 测试步骤4: 正常创建快照,验证所有字段初始化 -$app->post = new stdClass(); -$app->post->name = 'full_snapshot'; -$app->post->desc = 'Full test'; -r($zanodeTest->prepareCreateSnapshotExtrasTest($node3)) && p('status,memory,disk,fileSize') && e('creating,0,0,0'); - -// 测试步骤5: 正常创建快照,包含完整描述信息 -$app->post = new stdClass(); -$app->post->name = 'detailed_snapshot'; -$app->post->desc = 'This is a detailed snapshot with full description'; -r($zanodeTest->prepareCreateSnapshotExtrasTest($node1)) && p('desc,from,osName') && e('This is a detailed snapshot with full description,snapshot,Ubuntu 20.04'); \ No newline at end of file