Merge branch release/21.7.5 of zentao/zentaopms (#11051)

This commit is contained in:
李阳
2025-08-20 17:13:35 +08:00
committed by Gitfox
3 changed files with 192 additions and 2 deletions
@@ -0,0 +1,73 @@
<?php
include dirname(__FILE__, 5) . '/test/lib/ui.php';
class restartTaskTester extends tester
{
/**
* 继续任务。
* Restart task.
*
* @param string $id
* @param string $assignedTo
* @param string $consumed
* @param string $left
* @param string $status
* @access public
* @return object
*/
public function restart($id, $assignedTo, $consumed, $left, $status)
{
$form = $this->initForm('task', 'view', array('taskID' => $id), 'appIframe-execution');
$form->dom->xpath['taskAssignedTo'] = "//*[@title='{$this->lang->task->assignedTo}']/../div[2]";
$form->dom->xpath['taskStatus'] = "//*[@title='{$this->lang->task->status}']/..//span";
$form->dom->xpath['taskConsumed'] = "//*[@title='{$this->lang->task->consumed}']/../div[2]";
$form->dom->xpath['taskLeft'] = "//*[@title='{$this->lang->task->left}']/../div[2]";
$form->dom->xpath['restartBtn'] = "//a[@title='{$this->lang->task->restart}']";
$taskConsumed = $form->dom->taskConsumed->getText();
/* 只有已暂停的任务才显示继续任务按钮 */
if($status != 'pause')
{
if(is_object($form->dom->pauseBtn)) return $this->failed('错误的显示了继续按钮');
return $this->success('没有显示继续按钮');
}
$form->dom->restartBtn->click();
$form->wait(1);
/* 输入继续任务表单内容 */
$form->dom->assignedTo->picker($assignedTo);
$form->wait(1);
$form->dom->consumed->setValue($consumed);
$form->dom->left->setValue($left);
$form->dom->submitBtn->click();
$form->wait(1);
if((empty($consumed) || $consumed == '0') && (empty($left) || $left == '0'))
{
if(!is_object($form->dom->modalText)) return $this->failed('总计消耗和预计剩余都为空或0时没有提示');
if($form->dom->modalText->getText() != $this->lang->task->noticeTaskStart) return $this->failed('总计消耗和预计剩余都为空或0时提示错误');
return $this->success('总计消耗和预计剩余都为空或0时提示正确');
}
elseif($consumed != '0' && $taskConsumed <= $consumed && (empty($left) || $left == '0'))
{
if(!is_object($form->dom->modalText)) return $this->failed('预计剩余都为空或0时没有提示');
if($form->dom->modalText->getText() != $this->lang->task->confirmFinish) return $this->failed('预计剩余为空或0时提示错误');
$form->dom->confirmBtn->click();
$form->wait();
if($form->dom->taskStatus->getText() != $this->lang->task->statusList->done) return $this->failed('预计剩余为空或0时任务没有完成');
}
elseif($taskConsumed > $consumed)
{
if(!is_object($form->dom->consumedTip)) return $this->failed('总计消耗小于之前消耗时没有提示');
if($form->dom->consumedTip->getText() != $this->lang->task->error->consumedSmall) return $this->failed('总计消耗小于之前消耗时提示错误');
return $this->success('总计消耗小于之前消耗时提示正确');
}
else
{
if($form->dom->taskStatus->getText() != $this->lang->task->statusList->doing) return $this->failed('继续任务后状态错误');
}
if($form->dom->taskAssignedTo->getText() != $assignedTo) return $this->failed('继续任务后指派给错误');
if(intval($form->dom->taskConsumed->getText()) != $consumed) return $this->failed('继续任务后总计消耗错误');
if(intval($form->dom->taskLeft->getText()) != $left) return $this->failed('继续任务后预计剩余错误');
return $this->success('继续任务成功');
}
}
+2 -2
View File
@@ -53,13 +53,13 @@ class startTaskTester extends tester
if((empty($consumed) || $consumed == '0') && (empty($left) || $left == '0'))
{
if(!is_object($form->dom->modalText)) return $this->failed('总计消耗和预计剩余都为空或0时没有提示');
if(is_object($form->dom->modalText) and $form->dom->modalText->getText() != $this->lang->task->noticeTaskStart) return $this->failed('总计消耗和预计剩余都为空或0时提示错误');
if($form->dom->modalText->getText() != $this->lang->task->noticeTaskStart) return $this->failed('总计消耗和预计剩余都为空或0时提示错误');
return $this->success('总计消耗和预计剩余都为空或0时提示正确');
}
elseif($consumed != '0' && (empty($left) || $left == '0'))
{
if(!is_object($form->dom->modalText)) return $this->failed('预计剩余都为空或0时没有提示');
if(is_object($form->dom->modalText) and $form->dom->modalText->getText() != $this->lang->task->confirmFinish) return $this->failed('预计剩余为空或0时提示错误');
if($form->dom->modalText->getText() != $this->lang->task->confirmFinish) return $this->failed('预计剩余为空或0时提示错误');
$form->dom->confirmBtn->click();
$form->wait();
if($form->dom->taskStatus->getText() != $this->lang->task->statusList->done) return $this->failed('预计剩余为空或0时任务没有完成');
+117
View File
@@ -0,0 +1,117 @@
#!/usr/bin/env php
<?php
/**
title=继续任务
timeout=0
cid=1
- 执行tester模块的restart方法,参数是'1', '', '', '', 'wait'
- 最终测试状态 @SUCCESS
- 测试结果 @没有显示继续按钮
- 执行tester模块的restart方法,参数是'2', '', '', '', 'doing'
- 最终测试状态 @SUCCESS
- 测试结果 @没有显示继续按钮
- 执行tester模块的restart方法,参数是'3', '', '', '', 'done'
- 最终测试状态 @SUCCESS
- 测试结果 @没有显示继续按钮
- 执行tester模块的restart方法,参数是'4', '', '', '', 'pause'
- 最终测试状态 @SUCCESS
- 测试结果 @总计消耗和预计剩余都为空或0时提示正确
- 执行tester模块的restart方法,参数是'5', '', '0', '0', 'pause'
- 最终测试状态 @SUCCESS
- 测试结果 @总计消耗和预计剩余都为空或0时提示正确
- 执行tester模块的restart方法,参数是'6', 'admin', '5', '0', 'pause'
- 最终测试状态 @SUCCESS
- 测试结果 @继续任务成功
- 执行tester模块的restart方法,参数是'7', 'admin', '5', '2', 'pause'
- 最终测试状态 @SUCCESS
- 测试结果 @继续任务成功
- 执行tester模块的restart方法,参数是'8', '', '1', '1', 'pause'
- 最终测试状态 @SUCCESS
- 测试结果 @总计消耗小于之前消耗时提示正确
- 执行tester模块的restart方法,参数是'9', '', '', '', 'cancel'
- 最终测试状态 @SUCCESS
- 测试结果 @没有显示继续按钮
- 执行tester模块的restart方法,参数是'10', '', '', '', 'closed'
- 最终测试状态 @SUCCESS
- 测试结果 @没有显示继续按钮
*/
chdir(__DIR__);
include '../lib/restarttask.ui.class.php';
$user = zenData('user');
$user->id->range('1-3');
$user->account->range('admin, user1, user2');
$user->password->range($config->uitest->defaultPassword)->format('md5');
$user->realname->range('admin, USER1, USER2');
$user->gen(3);
$product = zenData('product');
$product->id->range('1');
$product->name->range('产品1');
$product->gen(1);
$project = zenData('project');
$project->id->range('1, 2');
$project->project->range('0, 1');
$project->model->range('scrum, []');
$project->type->range('project, sprint');
$project->auth->range('extend, []');
$project->parent->range('0, 1');
$project->path->range('`,1,`, `,1,2,`');
$project->name->range('项目1, 项目1执行1');
$project->gen(2);
$projectProduct = zenData('projectproduct');
$projectProduct->project->range('1, 2');
$projectProduct->product->range('1');
$projectProduct->branch->range('0');
$projectProduct->plan->range('0');
$projectProduct->gen(2);
$task = zenData('task');
$task->id->range('1-100');
$task->project->range('1');
$task->parent->range('0');
$task->path->range('`,1,`, `,2,`, `,3,`, `,4,`, `,5,`, `,6,`, `,7,`, `,8,`, `,9,`, `,10,`');
$task->execution->range('2');
$task->story->range('0');
$task->name->range('1-100');
$task->type->range('devel');
$task->consumed->range('0, 2{9}');
$task->left->range('0, 1, 0, 1{7}');
$task->deadline->range(' (-5D)-(-4D):1D, []{11}')->type('timestamp')->format('YY/MM/DD');
$task->status->range('wait, doing, done, pause{5}, cancel, closed');
$task->gen(10);
$taskSpec = zenData('taskspec');
$taskSpec->task->range('1-100');
$taskSpec->version->range('0');
$taskSpec->name->range('1-100');
$taskSpec->gen(10);
$team = zenData('team');
$team->id->range('1-100');
$team->root->range('1{2}, 2{2}');
$team->type->range('project{2}, execution{2}');
$team->account->range('admin, user1');
$team->gen('4');
$tester = new restartTaskTester();
$tester->login();
r($tester->restart('1', '', '', '', 'wait')) &&p('status,message') &&e('SUCCESS,没有显示继续按钮');
r($tester->restart('2', '', '', '', 'doing')) &&p('status,message') &&e('SUCCESS,没有显示继续按钮');
r($tester->restart('3', '', '', '', 'done')) &&p('status,message') &&e('SUCCESS,没有显示继续按钮');
r($tester->restart('4', '', '', '', 'pause')) &&p('status,message') &&e('SUCCESS,总计消耗和预计剩余都为空或0时提示正确');
r($tester->restart('5', '', '0', '0', 'pause')) &&p('status,message') &&e('SUCCESS,总计消耗和预计剩余都为空或0时提示正确');
r($tester->restart('6', 'admin', '5', '0', 'pause')) &&p('status,message') &&e('SUCCESS,继续任务成功');
r($tester->restart('7', 'admin', '5', '2', 'pause')) &&p('status,message') &&e('SUCCESS,继续任务成功');
r($tester->restart('8', '', '1', '1', 'pause')) &&p('status,message') &&e('SUCCESS,总计消耗小于之前消耗时提示正确');
r($tester->restart('9', '', '', '', 'cancel')) &&p('status,message') &&e('SUCCESS,没有显示继续按钮');
r($tester->restart('10', '', '', '', 'closed')) &&p('status,message') &&e('SUCCESS,没有显示继续按钮');
$tester->closeBrowser();