znt/module/project/test/lib/ui/createscrum.ui.class.php

102 lines
4.4 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
include dirname(__FILE__, 6) . '/test/lib/ui.php';
class createScrumTester extends tester
{
/**
* Check the page input when creating the scrum project.
* 创建敏捷项目时检查页面输入
*
* @param array $scrum
* @access public
*/
public function checkInput($scrum = array())
{
$form = $this->initForm('project', 'create', array('model' => 'scrum'));
if(isset($scrum['parent'])) $form->dom->parent->picker($scrum['parent']);
$categoryLang = (array)$this->lang->project->projectTypeList;
if(isset($scrum['type'])) $form->dom->btn($categoryLang[$scrum['type']])->click();
if(isset($scrum['name'])) $form->dom->name->setValue($scrum['name']);
if(isset($scrum['end'])) $form->dom->end->datepicker($scrum['end']);
else $form->dom->longTime->click(); //如果设置了end时间就选择没有设置就选择长期
if(isset($scrum['PM'])) $form->dom->PM->picker($scrum['PM']);
$form->dom->btn($this->lang->save)->click();
$form->wait(5);
return $this->checkResult($scrum);
}
/**
* Check the result after creating the scrum project.
*
* @param string $scrum
* @access public
* @return object
*/
public function checkResult($scrum = array())
{
//检查创建页面时的提示信息
$form = $this->loadPage('project', 'create');
if(!is_object($form->dom->tip))
{
if($this->checkFormTips('project')) return $this->success('创建敏捷项目表单页提示信息正确');
if($form->dom->endTip)
{
//检查结束日期不能为空
$endTiptext = $form->dom->endTip->getText();
$endTip = sprintf($this->lang->copyProject->endTip,'');
return ($endTiptext == $endTip) ? $this->success('创建敏捷项目表单页提示信息正确') : $this->failed('创建敏捷项目表单页提示信息不正确');
form->wait(1);
}
return $this->failed('创建敏捷项目表单页提示信息不正确');
}
//检查创建成功后的提示信息
if(is_object($form->dom->tip))
{
/* 跳转到项目列表页面,按照项目名称进行搜索 */
$browsePage = $this->initForm('project', 'browse');
$browsePage->dom->search($searchList = array("项目名称,包含, {$scrum['name']}"));
$browsePage->wait(2);
$browsePage->dom->scrumName->click();
//进入项目概况页面
$browsePage->dom->settings->click();
$viewPage = $this->loadPage('project', 'view');
$viewPage->wait(2);
//断言检查名称、项目类型是否正确
if($viewPage->dom->projectName->getText() != $scrum['name']) return $this->failed('名称错误');
$categoryLang = (array)$this->lang->project->projectTypeList;
if($viewPage->dom->category->getText() != $categoryLang[$scrum['type']]) return $this->failed('类型错误');
//检查日期是否正确如果是产品型项目就使用hasprojectend元素因为产品型项目比项目型项目多了一个关联产品区块所以“计划完成”的元素不能通用
if($categoryLang[$scrum['type']] == '产品型')
{
if(isset($scrum['end']))
{
$endtext = $viewPage->dom->hasproductend->getText();
if($endtext != $scrum['end']) return $this->failed('日期错误');
}
else
{
$endtext = trim($viewPage->dom->hasproductend->getText());
if($endtext != '长期') return $this->failed('日期错误');
}
}
//如果是项目型项目就使用noproductend元素
else
{
if(isset($scrum['end']))
{
$endtext = $viewPage->dom->noproductend->getText();
if($endtext != $scrum['end']) return $this->failed('日期错误');
}
else
{
$endtext = trim($viewPage->dom->noproductend->getText());
if($endtext != '长期') return $this->failed('日期错误');
}
}
return $this->success('创建敏捷项目成功');
}
}
}