From dbf04a6ae5fe48528da8de496ffeca05eb761e6c Mon Sep 17 00:00:00 2001 From: huairong Date: Thu, 24 Apr 2025 15:03:27 +0800 Subject: [PATCH] + [task#142429,doing,0.1h,1.5h] Add xpath of element on lite. --- .../test/lib/createprojectlite.ui.class.php | 64 +++++++++++++++++++ module/project/test/ui/createprojectlite.php | 39 +++++++++++ module/project/test/ui/page/browse.php | 4 +- 3 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 module/project/test/lib/createprojectlite.ui.class.php create mode 100755 module/project/test/ui/createprojectlite.php diff --git a/module/project/test/lib/createprojectlite.ui.class.php b/module/project/test/lib/createprojectlite.ui.class.php new file mode 100644 index 0000000000..eb462b9856 --- /dev/null +++ b/module/project/test/lib/createprojectlite.ui.class.php @@ -0,0 +1,64 @@ +loadPage('project', 'browse'); + $this->switchVision('lite'); + $form = $this->initForm('project', 'create', array('model' => 'kanban')); + if(isset($project['name'])) $form->dom->name->setValue($project['name']); + 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(5); + return $this->checkResult($project); + } + + /** + * 创建项目后结果检查。 + * Check the result after creating the project. + * + * @param string $project + * @access public + * @return object + */ + public function checkresult($project = 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("项目名称,包含, {$project['name']}")); + $browsepage->wait(2); + + /* 断言检查名称是否正确 */ + if($browsepage->dom->projectnamelite->gettext() != $project['name']) return $this->failed('名称错误'); + return $this->success('创建项目成功'); + } + } +} diff --git a/module/project/test/ui/createprojectlite.php b/module/project/test/ui/createprojectlite.php new file mode 100755 index 0000000000..4dcf92b3a8 --- /dev/null +++ b/module/project/test/ui/createprojectlite.php @@ -0,0 +1,39 @@ +#!/usr/bin/env php +gen(0); +$tester = new createProjectLiteTester(); +$tester->login(); + +//设置项目数据 +$project = array( + array('name' => '', 'end' => date('Y-m-d', strtotime('+30 days'))), + array('name' => '运营看板项目'.time(), 'end' => ''), + array('name' => '运营看板项目'.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'); // 创建项目 + +$tester->closeBrowser(); diff --git a/module/project/test/ui/page/browse.php b/module/project/test/ui/page/browse.php index 3f18427203..445b67ae84 100644 --- a/module/project/test/ui/page/browse.php +++ b/module/project/test/ui/page/browse.php @@ -52,7 +52,9 @@ class browsePage extends page 'num' => "//*[@id='table-project-browse']/div[3]/div[2]/strong", 'delayedNum' => "//*[@id='featureBar']/menu/li[5]/a/span[2]", /*创建看板项目*/ - 'kanbanName' => "//*[@id='mainContent']/div[2]/div/div/div[2]/div[1]/div/div[2]/div/a" + 'kanbanName' => "//*[@id='mainContent']/div[2]/div/div/div[2]/div[1]/div/div[2]/div/a", + /*运营界面项目列表*/ + 'projectNameLite' => "//*[@id='table-project-browse']/div[2]/div[1]/div/div[2]/div/a", ); $this->dom->xpath = array_merge($this->dom->xpath, $xpath); }