[task#146964, 1.6h] move uicase to projectstory.

This commit is contained in:
lijie
2025-08-06 10:14:11 +08:00
parent 25efba6a0f
commit 5b4002e18e
4 changed files with 355 additions and 0 deletions
@@ -0,0 +1,65 @@
<?php
declare(strict_types=1);
/**
* The control file of example module of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
* @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author lijie
* @package story
* @link http://www.zentao.net
*/
include dirname(__FILE__, 5).'/test/lib/ui.php';
class changeStoryInLiteTester extends tester
{
/**
* Create a default story.
*
* @param string $storyName
* @access public
* @return object
*/
public function changeStoryInLite($storyName, $reviewer)
{
$this->switchVision('lite', 8);
if($this->page->getCookie('vision') != 'lite')
{
$this->switchVision('lite', 8);
}
$form = $this->initForm('projectstory', 'story', array('projectID' => '1'), 'appIframe-project'); //变更目标前需要进入列表页面,获取项目ID
$form = $this->initForm('story', 'change', array('storyID' => '1', 'from' => 'project'), 'appIframe-project');
$form->dom->title->setValue($storyName);
if($reviewer != NULL)
{
$form->dom->reviewer->click();
$form->dom->reviewerAdmin->click();
}
$form->dom->btn($this->lang->save)->click();
$form->wait(3);
//创建失败检查提示是否正确,名称为空和评审人为空提示
if($this->response('method') != 'view')
{
$form = $this->loadPage('story', 'change');
if($storyName == '')
{
$srCommon = $form->dom->srCommon->getText();
$nameTip = sprintf($this->lang->error->notempty, $srCommon);
if($form->dom->alertModal('text') == $nameTip) return $this->success('变更目标页面名称为空提示正确');
}
if(empty($reviewer))
{
$reviwerTip = sprintf($this->lang->error->notempty, $this->lang->story->reviewers);
if($form->dom->alertModal('text') == $reviwerTip) return $this->success('变更目标页面评审人为空提示正确');
}
return $this->failed('变更目标页面提示信息不正确');
}
$viewPage = $this->loadPage('projectstory', 'view');
if($viewPage->dom->storyName->getText() != $storyName) return $this->failed('目标名称不正确');
if($viewPage->dom->storyStatus->getText() != $this->lang->story->statusList->reviewing) return $this->failed('目标状态不正确');
return $this->success('变更目标成功');
}
}
@@ -0,0 +1,80 @@
<?php
declare(strict_types=1);
/**
* The control file of example module of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
* @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author lijie
* @package story
* @link http://www.zentao.net
*/
include dirname(__FILE__, 5).'/test/lib/ui.php';
class createStoryInLiteTester extends tester
{
/**
* Create a default story.
*
* @param string $storyName
* @access public
* @return object
*/
public function createDefault($storyName, $reviewer)
{
$createStoryParam = array(
'product' => '1',
'branch' => '',
'moduleID' => '0',
'storyID' => '0',
'projectID' => '1',
'bugID' => '0',
'planID' => '0',
'todoID' => '0',
'extra' => '',
'storyType' => 'story'
);
$this->switchVision('lite', 8);
if($this->page->getCookie('vision') != 'lite')
{
$this->switchVision('lite', 8);
}
$form = $this->initForm('projectstory', 'story', array('projectID' => '1'), 'appIframe-project'); //由于创建目标后会跳转到记录了session的页面,所以先进入一次对应目标的列表页面
$form = $this->initForm('story', 'create', $createStoryParam, 'appIframe-project'); //再进入创建目标页面
$form->dom->titleInLite->setValue($storyName);
if($reviewer != NULL)
{
$form->dom->reviewer->click();
$form->dom->reviewerAdmin->click();
}
$form->dom->saveInLite->click();
$form->wait(1);
//创建失败检查提示是否正确,名称为空和评审人为空提示
if($this->response('method') != 'story')
{
$form = $this->loadPage('story', 'create');
if($storyName == '')
{
$srCommen = $form->dom->srCommen->getText();
$nameTip = sprintf($this->lang->error->notempty, $srCommen);
if($form->dom->titleTip->getText() == $nameTip) return $this->success('创建目标页面名称为空提示正确');
}
if(empty($reviewer))
{
$reviwerTip = sprintf($this->lang->error->notempty, $this->lang->story->reviewer);
if($form->dom->reviewerTip->getText() == $reviwerTip) return $this->success('创建目标页面评审人为空提示正确');
}
return $this->failed('创建目标页面提示信息不正确');
}
$viewPage = $this->initForm('projectstory', 'view', array('storyID' => '1', 'projectID' => '1'), 'appIframe-project');
if($viewPage->dom->storyName->getText() != $storyName) return $this->failed('目标名称不正确');
if($viewPage->dom->storyStatus->getText() != $this->lang->story->statusList->reviewing) return $this->failed('目标状态不正确');
$viewPage->dom->TargetLife->click();
if(strpos($viewPage->dom->openedBy->getText() , 'admin') === false) return $this->failed('创建人不正确');
return $this->success('创建'.$storyName.'成功');
}
}
+122
View File
@@ -0,0 +1,122 @@
#!/usr/bin/env php
<?php
declare(strict_types=1);
/**
title=运营界面变更目标测试
timeout=0
cid=0
- 目标名称必填校验
- 测试结果 @目标名称必填提示信息正确
- 最终测试状态 @SUCCESS
- 评审人必填校验
- 测试结果 @评审人必填提示信息正确
- 最终测试状态 @SUCCESS
- 正常创建目标校验
- 测试结果 @批量创建目标成功
- 最终测试状态 @SUCCESS
*/
chdir(__DIR__);
include '../lib/changestoryinlite.ui.class.php';
$product = zenData('product');
$product->id->range('1');
$product->program->range('0');
$product->name->range('产品1');
$product->shadow->range('1');
$product->bind->range('0');
$product->acl->range('open');
$product->createdBy->range('admin');
$product->vision->range('lite');
$product->gen(1);
$story = zenData('story');
$story->id->range('1');
$story->vision->range('lite');
$story->root->range('1');
$story->path->range('`,1,`');
$story->grade->range('1');
$story->product->range('1');
$story->module->range('0');
$story->plan->range('0');
$story->source->range('[]');
$story->title->range('运营界面目标1');
$story->type->range('story');
$story->stage->range('wait');
$story->status->range('active');
$story->openedBy->range('admin');
$story->version->range('1');
$story->assignedTo->range('[]');
$story->reviewedBy->range('[]');
$story->closedBy->range('[]');
$story->closedReason->range('[]');
$story->gen(1);
$storyspec = zenData('storyspec');
$storyspec->story->range('1');
$storyspec->version->range('1');
$storyspec->title->range('运营界面目标1');
$storyspec->gen(1);
$storyreview = zenData('storyreview');
$storyreview->gen(0);
$project = zenData('project');
$project->id->range('1');
$project->model->range('kanban');
$project->type->range('project');
$project->path->range('`,1,`');
$project->team->range('运营项目1');
$project->acl->range('open');
$project->vision->range('lite');
$project->name->range('运营项目1');
$project->gen(1);
$projectadmin = zenData('projectadmin');
$projectadmin->group->range('1');
$projectadmin->account->range('admin');
$projectadmin->projects->range('`,`1`,`');
$projectadmin->gen(1);
$projectproduct = zenData('projectproduct');
$projectproduct->project->range('1');
$projectproduct->product->range('1');
$projectproduct->gen(1);
$action = zenData('action')->gen(0);
$projectstory = zenData('projectstory');
$projectstory->project->range('1');
$projectstory->product->range('1');
$projectstory->branch->range('0');
$projectstory->story->range('1');
$projectstory->version->range('1');
$projectstory->order->range('1');
$projectstory->gen(1);
$team = zenData('team');
$team->id->range('1');
$team->root->range('1');
$team->type->range('project');
$team->account->range('admin');
$team->limited->range('no');
$team->gen(1);
$tester = new changeStoryInLiteTester();
$tester->login();
$storys = array();
$storys['null'] = '';
$storys['default'] = '变更后目标名称';
$reviewer = array();
$reviewer['null'] = array();
$reviewer['default'] = array('admin');
r($tester->changeStoryInLite($storys['default'], $reviewer['null'])) && p('message,status') && e('变更目标页面评审人为空提示正确,SUCCESS'); // 评审人不为空校验,变更失败
r($tester->changeStoryInLite($storys['null'], $reviewer['default'])) && p('message,status') && e('变更目标页面名称为空提示正确,SUCCESS'); // 目标名称不为空校验,变更失败
r($tester->changeStoryInLite($storys['default'], $reviewer['default'])) && p('message,status') && e('变更目标成功,SUCCESS'); // 使用默认选项变更需求,详情页信息对应
$tester->closeBrowser();
+88
View File
@@ -0,0 +1,88 @@
#!/usr/bin/env php
<?php
/**
title=运营界面创建目标测试
timeout=0
cid=0
- 目标名称必填校验
- 测试结果 @目标名称必填提示信息正确
- 最终测试状态 @SUCCESS
- 评审人必填校验
- 测试结果 @评审人必填提示信息正确
- 最终测试状态 @SUCCESS
- 正常创建目标校验
- 测试结果 @创建目标成功
- 最终测试状态 @SUCCESS
*/
chdir(__DIR__);
include '../lib/createstoryinlite.ui.class.php';
$product = zenData('product');
$product->id->range('1');
$product->program->range('0');
$product->name->range('产品1');
$product->shadow->range('0');
$product->bind->range('0');
$product->acl->range('open');
$product->createdBy->range('admin');
$product->vision->range('lite');
$product->gen(1);
$story = zenData('story');
$story->gen(0);
$storyspec = zenData('storyspec');
$storyspec->gen(0);
$storyreview = zenData('storyreview');
$storyreview->gen(0);
$project = zenData('project');
$project->id->range('1');
$project->model->range('kanban');
$project->type->range('project');
$project->path->range('`,1,`');
$project->team->range('运营项目1');
$project->acl->range('open');
$project->vision->range('lite');
$project->name->range('运营项目1');
$project->gen(1);
$projectadmin = zenData('projectadmin');
$projectadmin->group->range('1');
$projectadmin->account->range('admin');
$projectadmin->projects->range('`,`1`,`');
$projectadmin->gen(1);
$projectproduct = zenData('projectproduct');
$projectproduct->project->range('1');
$projectproduct->product->range('1');
$projectproduct->gen(1);
$projectstory = zenData('projectstory')->gen(0);
$action = zenData('action');
$action->gen(0);
$tester = new createStoryInLiteTester();
$tester->login();
$storys = array(
'null' => '',
'story' => '运营界面目标'
);
$reviewers = array(
'null' => array(),
'admin' => array('admin')
);
r($tester->createDefault($storys['null'], $reviewers['admin'])) && p('message,status') && e('创建目标页面名称为空提示正确,SUCCESS'); // 名称必填校验,创建失败
r($tester->createDefault($storys['story'], $reviewers['null'])) && p('message,status') && e('创建目标页面评审人为空提示正确,SUCCESS'); // 评审人必填校验,创建失败
r($tester->createDefault($storys['story'], $reviewers['admin'])) && p('message,status') && e('创建运营界面目标成功,SUCCESS'); // 创建成功
$tester->closeBrowser();