Merge branch release/21.7.7 of zentao/zentaopms (#12192)
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
require_once dirname(__FILE__, 6) . '/test/lib/ui.php';
|
||||
|
||||
define('PROFILE_ITEMS', ['realname', 'gender', 'account', 'email', 'dept', 'role', 'join', 'group',
|
||||
'mobile', 'weixin', 'phone', 'qq', 'zipcode', 'address',
|
||||
'commiter', 'skype', 'visits', 'whatsapp', 'last', 'slack', 'ip', 'dingding']);
|
||||
|
||||
class profileTester extends tester
|
||||
{
|
||||
public $users;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->login();
|
||||
global $uiTester;
|
||||
$records = $uiTester->dao->select('u.*, g.name as `group`, d.name as dept')
|
||||
->from(TABLE_USER)->alias('u')
|
||||
->leftJoin(TABLE_USERGROUP)->alias('ug')->on('u.account = ug.account')
|
||||
->leftJoin(TABLE_GROUP)->alias('g')->on('ug.group = g.id')
|
||||
->leftJoin(TABLE_DEPT)->alias('d')->on('u.dept = d.id')
|
||||
->fetchAll();
|
||||
$this->users = array();
|
||||
foreach($records as $record)
|
||||
{
|
||||
$this->users[$record->account] = $record;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验user模块profile视图的基本信息展示
|
||||
* Verify user profile basic info display
|
||||
*
|
||||
* @access public
|
||||
* @return object 成功或失败对象
|
||||
*/
|
||||
public function verifyUserProfile()
|
||||
{
|
||||
if(empty($this->users) || empty($this->users['admin'])) return $this->failed('用户对象或ID不能为空');
|
||||
|
||||
$form = $this->initForm('user', 'profile', array('userID' => $this->users['admin']->id), 'appIframe-system');
|
||||
$form->wait(2);
|
||||
|
||||
foreach($this->users as $account => $user)
|
||||
{
|
||||
if($account != 'admin')
|
||||
{
|
||||
$form->dom->userPicker->picker($user->realname);
|
||||
$form->wait(2);
|
||||
if($form->dom->userPicker->getText() != $user->realname) return $this->failed("档案页面切换用户{$user->realname}显示失败");
|
||||
}
|
||||
foreach(PROFILE_ITEMS as $item)
|
||||
{
|
||||
$itemName = isset($this->lang->user->{$item}) ? $this->lang->user->{$item} : $item;
|
||||
switch($item)
|
||||
{
|
||||
case 'gender':
|
||||
$expected = $this->lang->user->genderList->{$user->gender} ?? $user->gender;
|
||||
break;
|
||||
case 'role':
|
||||
$expected = $this->lang->user->roleList->{$user->role} ?? '';
|
||||
break;
|
||||
case 'last':
|
||||
$expected = date('Y-m-d H:i:s', $user->last);
|
||||
break;
|
||||
default:
|
||||
$expected = $user->{$item};
|
||||
break;
|
||||
}
|
||||
$displayed = $form->dom->{$item}->getText();
|
||||
if($displayed != $expected) return $this->failed("档案页面'{$itemName}'显示失败,期望:{$expected},实际:{$displayed}");
|
||||
}
|
||||
}
|
||||
|
||||
return $this->success('开源版m=user&f=profile测试成功');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
class profilePage extends page
|
||||
{
|
||||
public function __construct($webdriver)
|
||||
{
|
||||
parent::__construct($webdriver);
|
||||
|
||||
$this->xpath = array(
|
||||
// 顶部用户选择器
|
||||
'userPicker' => '//div[contains(@class, "picker-select-single")]',
|
||||
//详情字段
|
||||
'realname' => '//*[@id="mainContent"]/div/table[1]/tbody/tr[1]/td[1]',
|
||||
'gender' => '//*[@id="mainContent"]/div/table[1]/tbody/tr[1]/td[2]',
|
||||
'account' => '//*[@id="mainContent"]/div/table[1]/tbody/tr[2]/td[1]',
|
||||
'email' => '//*[@id="mainContent"]/div/table[1]/tbody/tr[2]/td[2]/a',
|
||||
'dept' => '//*[@id="mainContent"]/div/table[1]/tbody/tr[3]/td[1]',
|
||||
'role' => '//*[@id="mainContent"]/div/table[1]/tbody/tr[3]/td[2]',
|
||||
'join' => '//*[@id="mainContent"]/div/table[1]/tbody/tr[4]/td[1]',
|
||||
'group' => '//*[@id="mainContent"]/div/table[1]/tbody/tr[4]/td[2]',
|
||||
'mobile' => '//*[@id="mainContent"]/div/table[2]/tbody/tr[1]/td[1]',
|
||||
'weixin' => '//*[@id="mainContent"]/div/table[2]/tbody/tr[1]/td[2]',
|
||||
'phone' => '//*[@id="mainContent"]/div/table[2]/tbody/tr[2]/td[1]',
|
||||
'qq' => '//*[@id="mainContent"]/div/table[2]/tbody/tr[2]/td[2]',
|
||||
'zipcode' => '//*[@id="mainContent"]/div/table[2]/tbody/tr[3]/td[1]',
|
||||
'address' => '//*[@id="mainContent"]/div/table[2]/tbody/tr[3]/td[2]',
|
||||
'commiter' => '//*[@id="mainContent"]/div/table[3]/tbody/tr[1]/td[1]',
|
||||
'skype' => '//*[@id="mainContent"]/div/table[3]/tbody/tr[1]/td[2]/a',
|
||||
'visits' => '//*[@id="mainContent"]/div/table[3]/tbody/tr[2]/td[1]',
|
||||
'whatsapp' => '//*[@id="mainContent"]/div/table[3]/tbody/tr[2]/td[2]',
|
||||
'last' => '//*[@id="mainContent"]/div/table[3]/tbody/tr[3]/td[1]',
|
||||
'slack' => '//*[@id="mainContent"]/div/table[3]/tbody/tr[3]/td[2]',
|
||||
'ip' => '//*[@id="mainContent"]/div/table[3]/tbody/tr[4]/td[1]',
|
||||
'dingding' => '//*[@id="mainContent"]/div/table[3]/tbody/tr[4]/td[2]'
|
||||
);
|
||||
|
||||
$this->dom->xpath = array_merge($this->dom->xpath, $this->xpath);
|
||||
}
|
||||
}
|
||||
Executable
+58
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(__FILE__, 2) . '/lib/ui/profile.ui.class.php';
|
||||
|
||||
/**
|
||||
|
||||
title=开源版m=user&f=profile测试
|
||||
timeout=0
|
||||
cid=1
|
||||
|
||||
- 开源版m=user&f=profile测试
|
||||
- 最终测试状态 @SUCCESS
|
||||
- 测试结果 @开源版m=user&f=profile测试成功
|
||||
|
||||
*/
|
||||
|
||||
$group = zenData('group');
|
||||
$group->id->range('1-3');
|
||||
$group->name->range('ADMIN,DEV,QA');
|
||||
$group->role->range('admin,dev,qa');
|
||||
$group->gen(3);
|
||||
|
||||
$userGroup = zenData('usergroup');
|
||||
$userGroup->account->range('admin,user1,user2');
|
||||
$userGroup->group->range('1-3');
|
||||
$userGroup->gen(3);
|
||||
|
||||
$dept = zenData('dept');
|
||||
$dept->id->range('1-3');
|
||||
$dept->name->range('总办,开发部,测试部');
|
||||
$dept->gen(3);
|
||||
|
||||
$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('管理员,用户1,用户2');
|
||||
$user->gender->range('f,m');
|
||||
$user->email->range('admin,user1,user2')->postfix('@chandao.com');
|
||||
$user->dept->range('1-3');
|
||||
$user->role->range('admin,dev,qa');
|
||||
$user->mobile->range('13988888888');
|
||||
$user->weixin->range('admin,user1,user2')->postfix('@chandao.com');
|
||||
$user->zipcode->range('610041');
|
||||
$user->address->range('CD/SC/CHINA');
|
||||
$user->commiter->range('admin,user1,user2')->postfix('@chandao.com');
|
||||
$user->skype->range('admin,user1,user2')->postfix('@chandao.com');
|
||||
$user->slack->range('admin,user1,user2')->postfix('@chandao.com');
|
||||
$user->whatsapp->range('admin,user1,user2')->postfix('@chandao.com');
|
||||
$user->dingding->range('admin,user1,user2')->postfix('@chandao.com');
|
||||
$user->ip->range('10.0.0.1');
|
||||
$user->gen(3);
|
||||
|
||||
$tester = new profileTester();
|
||||
|
||||
r($tester->verifyUserProfile()) && p('status,message') && e('SUCCESS,开源版m=user&f=profile测试成功'); //开源版m=user&f=profile测试
|
||||
|
||||
$tester->closeBrowser();
|
||||
Reference in New Issue
Block a user