Merge branch 'tanghucheng_autotest' into 'master'

* Finish mail test.

See merge request easycorp/zentaopms!3291
This commit is contained in:
王怡栋
2022-05-10 05:00:57 +00:00
18 changed files with 637 additions and 2 deletions
+299
View File
@@ -0,0 +1,299 @@
<?php
class mailTest
{
/**
* __construct.
*
* @access public
* @return void
*/
public function __construct()
{
global $tester;
global $dao;
$this->dao = $dao;
$this->tester = $tester;
$this->objectModel = $tester->loadModel('mail');
}
/**
* AutoDetect.
*
* @param int $email
* @access public
* @return object
*/
public function autoDetectTest($email)
{
$objects = $this->objectModel->autoDetect($email);
if(dao::isError()) return dao::getError();
if(!$objects->host) return '没有检测到相关信息';
return $objects;
}
/**
* Get config from provider.
*
* @param int $domain
* @param int $username
* @access public
* @return object
*/
public function getConfigFromProviderTest($domain, $username)
{
$object = $this->objectModel->getConfigFromProvider($domain, $username);
if(dao::isError()) return dao::getError();
return $object;
}
/**
* Get config by MXRR.
*
* @param int $domain
* @param int $username
* @access public
* @return object
*/
public function getConfigByMXRRTest($domain, $username)
{
$object = $this->objectModel->getConfigByMXRR($domain, $username);
if(dao::isError()) return dao::getError();
return $object;
}
/**
* Get config by detecting SMTP.
*
* @param int $domain
* @param int $username
* @param int $port
* @access public
* @return object
*/
public function getConfigByDetectingSMTPTest($domain, $username, $port)
{
$object = $this->objectModel->getConfigByDetectingSMTP($domain, $username, $port);
if(dao::isError()) return dao::getError();
return $object;
}
/**
* Set MTA.
*
* @access public
* @return object
*/
public function setMTATest()
{
$object = $this->objectModel->setMTA();
if(dao::isError()) return dao::getError();
return $object;
}
/**
* Set sendmail.
*
* @access public
* @return object
*/
public function setSendMailTest()
{
$object = $this->objectModel->setSendMail();
if(dao::isError()) return dao::getError();
return $object;
}
/**
* Send.
*
* @param int $toList
* @param int $subject
* @param string $body
* @param string $ccList
* @param int $includeMe
* @param array $emails
* @access public
* @return object
*/
public function sendTest($toList, $subject, $body = '', $ccList = '', $includeMe = false, $emails = array())
{
$object = $this->objectModel->send($toList, $subject, $body, $ccList, $includeMe, $emails);
if(dao::isError()) return dao::getError();
return $object;
}
/**
* Set CC.
*
* @param int $ccList
* @param int $emails
* @access public
* @return object
*/
public function setCCTest($ccList, $emails)
{
$this->objectModel->setCC($ccList, $emails);
return $this->setMTATest();
}
/**
* Set subject.
*
* @param int $subject
* @access public
* @return object
*/
public function setSubjectTest($subject)
{
$this->objectModel->setSubject($subject);
return $this->setMTATest();
}
/**
* Set body.
*
* @param int $body
* @access public
* @return object
*/
public function setBodyTest($body)
{
$this->objectModel->setBody($body);
return $this->setMTATest();
}
/**
* Mail exist.
*
* @access public
* @return object
*/
public function mailExistTest()
{
$object = $this->objectModel->mailExist();
if(dao::isError()) return dao::getError();
return $object;
}
/**
* Add queue.
*
* @param int $toList
* @param int $subject
* @param string $body
* @param string $ccList
* @param int $includeMe
* @access public
* @return object
*/
public function addQueueTest($toList, $subject, $body = '', $ccList = '', $includeMe = false)
{
$this->objectModel->addQueue($toList, $subject, $body, $ccList, $includeMe);
if($toList and $subject)
{
$id = $this->dao->lastInsertID();
$object = $this->dao->select('*')->from(TABLE_NOTIFY)->where('id')->eq($id)->fetch();
}
if(!$object) return '没有数据提交';
if(dao::isError()) return dao::getError();
return $object;
}
/**
* Get queue.
*
* @param string $status
* @param string $orderBy
* @param int $pager
* @access public
* @return object
*/
public function getQueueTest($status = '', $orderBy = 'id_desc', $pager = null)
{
$objects = $this->objectModel->getQueue($status = '', $orderBy = 'id_desc', $pager = null);
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Get queue by id.
*
* @param int $queueID
* @access public
* @return object
*/
public function getQueueByIdTest($queueID)
{
$object = $this->objectModel->getQueueById($queueID);
if(dao::isError()) return dao::getError();
return $object;
}
/**
* Merge mails.
*
* @param int $user
* @access public
* @return object
*/
public function mergeMailsTest($user)
{
$mails = $this->dao->select('*')->from(TABLE_NOTIFY)
->where('objectType')->eq('mail')
->andWhere('toList')->eq($user)
->fetchAll();
$object = $this->objectModel->mergeMails($mails);
if(dao::isError()) return dao::getError();
return $object;
}
/**
* Get subject.
*
* @param int $objectType
* @param int $object
* @param int $title
* @param int $actionType
* @access public
* @return object
*/
public function getSubjectTest($objectType, $object, $title, $actionType)
{
$object = $this->tester->loadModel($objectType)->getByID($object);
$object = $this->objectModel->getSubject($objectType, $object, $title, $actionType);
if(dao::isError()) return dao::getError();
return $object;
}
}
+2 -2
View File
@@ -80,9 +80,9 @@ fields:
note: "邮箱"
fields:
- field: email1
range: 100-999:R
range: 1000-9999:2
- field: email2
range: 100-999:R
range: 1000-9999:2
- field: email3
range: [@qq.com,@163.com,@gmail.com]
- field: skype
+25
View File
@@ -0,0 +1,25 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->addQueue();
cid=1
pid=1
*/
$mail = new mailTest();
$result1 = $mail->addQueueTest('','');
$result2 = $mail->addQueueTest('user3', '测试提交队列', '测试发信内容');
$result3 = $mail->addQueueTest('user3,admin', '测试提交队列', '测试发信内容');
$result4 = $mail->addQueueTest('user3,admin', '测试提交队列', '测试发信内容', '', true);
r($result1) && p() && e('没有数据提交'); //提交数据为空时
r($result2) && p('subject') && e('测试提交队列'); //获取添加的邮件主题
r($result3) && p('toList') && e('user3'); //获取收件人列表不包含自己
r($result4) && p('toList') && e('user3,admin'); //获取收件人列表包含自己
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->autoDetect();
cid=1
pid=1
*/
$mail = new mailTest();
$data = array('test@qq.com', 'test@163.com', 'test@sohu.com', 'test@vip.sohu.com', 'testm');
r($mail->autoDetectTest($data[0])) && p('host') && e('smtp.qq.com'); //检测qq邮箱信息
r($mail->autoDetectTest($data[1])) && p('host') && e('smtp.163.com'); //检测163邮箱信息
r($mail->autoDetectTest($data[2])) && p('host') && e('smtp.sohu.com'); //检测搜狐邮箱信息
r($mail->autoDetectTest($data[3])) && p('host') && e('smtp.vip.sohu.com'); //检测搜狐vip邮箱信息
r($mail->autoDetectTest($data[4])) && p() && e('没有检测到相关信息'); //检测不存在的邮箱服务商信息
@@ -0,0 +1,25 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->getConfigByDetectingSMTP();
cid=1
pid=1
*/
$mail = new mailTest();
$result1 = $mail->getConfigByDetectingSMTPTest('qq.com','122@qq.com',465);
$result2 = $mail->getConfigByDetectingSMTPTest('qq.com','122@qq.com',465);
$result3 = $mail->getConfigByDetectingSMTPTest('qq.com','122@qq.com',22);
$result4 = $mail->getConfigByDetectingSMTPTest('testqq.com','122@qq.com',22);
r($result1) && p('host') && e('smtp.qq.com'); //根据域名获取smtp
r($result2) && p('secure') && e('ssl'); //根据域名获取secure
r($result3) && p('secure') && e('0'); //当端口号不为465时获取secure
r($result4) && p() && e('0'); //当域名不存在时
+21
View File
@@ -0,0 +1,21 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->getConfigByMXRR();
cid=1
pid=1
*/
$mail = new mailTest();
$result1 = $mail->getConfigByMXRRTest('qq.com','test');
$result2 = $mail->getConfigByMXRRTest('sohu.com','test');
r($result1) && p('host') && e('smtp.qq.com'); //获取qq相关信息
r($result2) && p('host') && e('smtp.sohu.com'); //获取sohu相关信息
+21
View File
@@ -0,0 +1,21 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->getConfigFromProvider();
cid=1
pid=1
*/
$mail = new mailTest();
$result1 = $mail->getConfigFromProviderTest('qq.com','123');
$result2 = $mail->getConfigFromProviderTest('sohu.com','123');
r($result1) && p('host') && e('smtp.qq.com'); //获取qq相关信息
r($result2) && p('host') && e('smtp.sohu.com'); //获取sohu相关信息
+25
View File
@@ -0,0 +1,25 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->getQueue();
cid=1
pid=1
*/
$mail = new mailTest();
$result1 = count($mail->getQueueTest());
$result2 = count($mail->getQueueTest('fail'));
$result3 = count($mail->getQueueTest('wait'));
$result4 = $mail->getQueueTest('wait');
r($result1) && p() && e('7'); //按照收件人分组获取邮件列表个数
r($result2) && p() && e('7'); //按照收件人分组获取发送失败的邮件数量
r($result3) && p() && e('7'); //按照收件人分组获取待发送的邮件数量
r($result4) && p('0:data') && e('测试发信内容'); //按照收件人分组获取第一条待发送的邮件内容
+21
View File
@@ -0,0 +1,21 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->getQueueById();
cid=1
pid=1
*/
$mail = new mailTest();
$queueID = array(1,10,0);
r($mail->getQueueByIdTest($queueID[0])) && p('subject') && e('主题1'); //获取id为1的邮件主题
r($mail->getQueueByIdTest($queueID[1])) && p('toList') && e('top10'); //获取id为10的收件人
r($mail->getQueueByIdTest($queueID[2])) && p() && e('0'); //获取id不存在的邮件信息
+27
View File
@@ -0,0 +1,27 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->getSubject();
cid=1
pid=1
*/
$mail = new mailTest();
$result1 = $mail->getSubjectTest('testtask', 1, '123', 'closed');
$result2 = $mail->getSubjectTest('doc', 1, 'test', 'created');
$result3 = $mail->getSubjectTest('story', 1, 'test', 'created');
$result4 = $mail->getSubjectTest('task', 1, 'test', 'created');
$result5 = $mail->getSubjectTest('bug', 1, 'test', 'created');
r($result1) && p() && e('admin关闭了测试单 #1:测试单1'); //获取关闭测试单时邮件主题
r($result2) && p() && e('admin创建了文档 #1:文档标题901'); //获取创建文档时的邮件主题
r($result3) && p() && e('STORY #1 test - 正常产品1'); //获取操作需求时的邮件主题
r($result4) && p() && e('TASK #1 test - 迭代1'); //获取操作任务时的邮件主题
r($result5) && p() && e('BUG #1 test - 正常产品1'); //获取操作BUG时的邮件主题
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->mailExist();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->mailExistTest()) && p('email') && e('10001000@qq.com'); //检查系统是否至少存在邮件
+18
View File
@@ -0,0 +1,18 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->mergeMails();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->mergeMailsTest('admin')) && p('id') && e('6,1'); //获取邮件合并后的id
r($mail->mergeMailsTest('admin')) && p('subject') && e('主题6|主题1'); //获取邮件合并后的主题
+41
View File
@@ -0,0 +1,41 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->send();
cid=1
pid=1
*/
$mail = new mailTest();
/* If you don't set SMTP Please input you SMTP setting. */
$mailConfig = new stdclass();
$mailConfig->smtp = new stdclass();
$mailConfig->turnon = 1;
$mailConfig->mta = 'smtp';
$mailConfig->async = 0;
$mailConfig->fromAddress = '';
$mailConfig->fromName = '';
$mailConfig->domain = '';
$mailConfig->smtp->host = '';
$mailConfig->smtp->port = '';
$mailConfig->smtp->auth = '1';
$mailConfig->smtp->username = '';
$mailConfig->smtp->password = '';
$mailConfig->smtp->secure = '';
$mailConfig->smtp->debug = 1;
$mailConfig->smtp->charset = 'utf-8';
global $tester;
if(!isset($tester->config->mail->turnon)) $tester->loadModel('setting')->setItems('system.mail', $mailConfig);
$result1 = $mail->sendTest('admin','test','test','',true);
r($result1) && p() && e('0');
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->sendmail();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->sendmailTest(48,48)) && p() && e('0'); //测试为dev4用户发送邮件通知
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->setCC();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->setBodyTest('test body')) && p('Body') && e('test body'); //测试设置内容
+18
View File
@@ -0,0 +1,18 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->setCC();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->setMTATest()) && p('Host') && e('localhost'); //获取MTA主机
r($mail->setMTATest()) && p('SMTPDebug') && e('0'); //获取MTAdebug设置
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->setCC();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->setSubjectTest('test subject')) && p('Subject') && e('test subject'); //测试设置主题
+3
View File
@@ -153,6 +153,9 @@ switch($argv[1])
case 'tutorial':
ztfRun('model/tutorial');
break;
case 'mail':
ztfRun('model/mail');
break;
case 'tree':
ztfRun('model/tree');
break;