diff --git a/module/project/test/lib/editprojectlite.ui.class.php b/module/project/test/lib/editprojectlite.ui.class.php new file mode 100644 index 0000000000..053c988046 --- /dev/null +++ b/module/project/test/lib/editprojectlite.ui.class.php @@ -0,0 +1,91 @@ +loadPage('project', 'browse'); + $this->switchVision('lite'); + $form = $this->initForm('project', 'edit', array('projecID' => 1), 'appIframe-project'); + if(isset($project['name'])) $form->dom->name->setValue($project['name']); + if(isset($project['begin'])) $form->dom->begin->datePicker($project['begin']); + if(isset($project['end'])) $form->dom->end->datePicker($project['end']); + if(isset($project['PM'])) $form->dom->PM->picker($project['PM']); + + $form->dom->btn($this->lang->save)->click(); + $form->wait(2); + return $this->checkResult($project); + } + + /** + * 编辑项目后结果检查。 + * Check the result after editing the project. + * + * @param array $project + * @access public + * @return object + */ + public function checkResult($project = array()) + { + /* 检查编辑页面提示信息 */ + $form = $this->loadPage('project', 'edit'); + if($this->response('method') != 'view') + { + /* 检查项目名称不能为空 */ + if($form->dom->nameTip && $project['name'] == '') + { + $nameTipText = $form->dom->nameTip->getText(); + $nameTip = sprintf($this->lang->error->notempty, $this->lang->project->name); + return ($nameTipText == $nameTip) ? $this->success('编辑项目表单页提示信息正确') : $this->failed('编辑项目表单页提示信息不正确'); + } + /* 检查项目名称唯一 */ + if($form->dom->nameTip && $project['name'] != '') + { + $existName = '运营界面项目2'; + $nameTipText = $form->dom->nameTip->getText(); + $nameTip = sprintf($this->lang->error->unique, $this->lang->project->name, $existName); + return ($nameTipText == $nameTip) ? $this->success('编辑项目表单页提示信息正确') : $this->failed('编辑项目表单页提示信息不正确'); + } + if($form->dom->endTip) + { + /* 检查结束日期不能为空 */ + if($project['end'] == '') + { + $endTipText = $form->dom->endTip->getText(); + $endTip = sprintf($this->lang->copyProject->endTip, ''); + return ($endTipText == $endTip) ? $this->success('编辑项目表单页提示信息正确') : $this->failed('编辑项目表单页提示信息不正确'); + } + /* 检查结束日期不能小于开始日期 */ + if($project['begin'] > $project['end']) + { + $endTipText = $form->dom->endTip->getText(); + $endTip = sprintf($this->lang->error->gt, $this->lang->project->end, $project['begin']); + return ($endTipText == $endTip) ? $this->success('编辑项目表单页提示信息正确') : $this->failed('编辑项目表单页提示信息不正确'); + } + } + } + + /* 跳转到项目列表页面,按照项目名称进行搜索 */ + $browsePage = $this->initForm('project', 'browse'); + $browsePage->dom->search($searchList = array("项目名称,包含,{$project['name']}")); + $browsePage->wait(2); + $browsePage->dom->projectNameLite->click(); + /* 进入项目概况页面 */ + $browsePage->dom->settings->click(); + $viewPage = $this->loadPage('project', 'view'); + $viewPage->wait(2); + + /* 断言检查字段信息是否正确 */ + if($viewPage->dom->projectNameLite->getText() != $project['name']) return $this->failed('名称错误'); + if($viewPage->dom->aclLite->getText() != $this->lang->project->shortAclList->open) return $this->failed('权限错误'); + return $this->success('编辑项目成功'); + } +} diff --git a/module/project/test/ui/editprojectlite.php b/module/project/test/ui/editprojectlite.php new file mode 100644 index 0000000000..59de16b2dd --- /dev/null +++ b/module/project/test/ui/editprojectlite.php @@ -0,0 +1,59 @@ +#!/usr/bin/env php +id->range('1-2'); +$project->project->range('0'); +$project->model->range('kanban'); +$project->type->range('project'); +$project->auth->range('extend'); +$project->path->range('`,1,`'); +$project->grade->range('1'); +$project->name->range('运营界面项目1, 运营界面项目2'); +$project->hasProduct->range('0'); +$project->status->range('wait'); +$project->begin->range('(-72w)-(-71w):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(+72w)-(+73w):1D')->type('timestamp')->format('YY/MM/DD'); +$project->acl->range('open'); +$project->vision->range('lite'); +$project->gen(2); + +$tester = new editProjectLiteTester(); +$tester->login(); + +$project = array( + array('name' => '', 'end' => date('Y-m-d', strtotime('+30 days'))), + array('name' => '运营界面项目'.time(), 'begin' => date('Y-m-d'), 'end' => date('Y-m-d', strtotime('-1 day'))), + array('name' => '运营界面项目2', 'end' => date('Y-m-d', strtotime('+1 month'))), + array('name' => '运营界面项目a'.time(), 'end' => date('Y-m-d', strtotime('+1 month')), 'PM' => 'admin'), +); + +r($tester->checkInput($project['0'])) && p('message,status') && e('编辑项目表单页提示信息正确,SUCCESS'); // 编辑项目缺少项目名称 +r($tester->checkInput($project['1'])) && p('message,status') && e('编辑项目表单页提示信息正确,SUCCESS'); // 编辑项目计划完成时间小于计划开始时间 +r($tester->checkInput($project['2'])) && p('message,status') && e('编辑项目表单页提示信息正确,SUCCESS'); // 编辑项目名称为已有名称 +r($tester->checkInput($project['3'])) && p('message,status') && e('编辑项目成功,SUCCESS'); // 编辑项目名称 + +$tester->closeBrowser();