* [misc] Enhance unit tests for mailTao::replaceImageURL() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-25 09:16:45 +08:00
co-authored by Claude
parent c8dc27e945
commit 73daa517b0
2 changed files with 38 additions and 17 deletions
@@ -728,4 +728,22 @@ class mailTest
return $result;
}
}
/**
* Test replaceImageURL method.
*
* @param string $body
* @param array $images
* @access public
* @return string
*/
public function replaceImageURLTest($body, $images = array())
{
$method = new ReflectionMethod($this->objectTao, 'replaceImageURL');
$method->setAccessible(true);
$result = $method->invoke($this->objectTao, $body, $images);
if(dao::isError()) return dao::getError();
return $result;
}
}
+20 -17
View File
@@ -3,28 +3,31 @@
/**
title=测试 mailModel->replaceImageURL();
title=测试 mailTao::replaceImageURL();
timeout=0
cid=0
- 图片链接为 {1.png} @<img src="http://pms.zentao.net/file-read-1.png" />
- 图片链接为 data/upload @<img src="http://pms.zentao.net/data/upload/1/1.png" />
- 图片链接为 /file-read-1.png @<img src="http://pms.zentao.net/file-read-1.png" />
- 步骤1:空图片数组保持原内容 @<img src="/test.jpg" />
- 步骤2:单个图片URL替换 @<img src="cid:file1.jpg" />
- 步骤3:多个图片URL替换 @<img src="cid:pic1.png" /><img src="cid:pic2.gif" />
- 步骤4:包含空文件路径 @<img src="cid:valid.jpg" /><img src="/empty.jpg" />
- 步骤5:复杂HTML内容 @<p>Text</p><img src="cid:logo.png" /><a href="/link.html">Link</a>
- 步骤6:不存在的URL保持不变 @<img src="/nonexist.jpg" />
- 步骤7:边界情况测试 @0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/mail.unittest.class.php';
su('admin');
global $tester;
$mailModel = $tester->loadModel('mail');
$mailModel->app->user->account = 'admin';
$mailModel->config->requestType = 'PATH_INFO';
$mailModel->config->webRoot = '/';
$mailModel->config->mail->domain = 'http://pms.zentao.net';
$mailTest = new mailTest();
$body1 = '<img src="{1.png}" />';
$body2 = '<img src="data/upload/1/1.png" />';
$body3 = '<img src="/file-read-1.png" />';
r($mailModel->replaceImageURL($body1, array())) && p() && e('<img src="{1.png}" />'); //图片链接为 {1.png}
r($mailModel->replaceImageURL($body2, array())) && p() && e('<img src="data/upload/1/1.png" />'); //图片链接为 data/upload
r($mailModel->replaceImageURL($body3, array())) && p() && e('<img src="/file-read-1.png" />'); //图片链接为 /file-read-1.png
r($mailTest->replaceImageURLTest('<img src="/test.jpg" />', array())) && p() && e('<img src="/test.jpg" />'); // 步骤1:空图片数组保持原内容
r($mailTest->replaceImageURLTest('<img src="/image1.jpg" />', array('/image1.jpg' => 'file1.jpg'))) && p() && e('<img src="cid:file1.jpg" />'); // 步骤2:单个图片URL替换
r($mailTest->replaceImageURLTest('<img src="/img1.png" /><img src="/img2.gif" />', array('/img1.png' => 'pic1.png', '/img2.gif' => 'pic2.gif'))) && p() && e('<img src="cid:pic1.png" /><img src="cid:pic2.gif" />'); // 步骤3:多个图片URL替换
r($mailTest->replaceImageURLTest('<img src="/valid.jpg" /><img src="/empty.jpg" />', array('/valid.jpg' => 'valid.jpg', '/empty.jpg' => ''))) && p() && e('<img src="cid:valid.jpg" /><img src="/empty.jpg" />'); // 步骤4:包含空文件路径
r($mailTest->replaceImageURLTest('<p>Text</p><img src="/logo.png" /><a href="/link.html">Link</a>', array('/logo.png' => 'logo.png'))) && p() && e('<p>Text</p><img src="cid:logo.png" /><a href="/link.html">Link</a>'); // 步骤5:复杂HTML内容
r($mailTest->replaceImageURLTest('<img src="/nonexist.jpg" />', array('/other.jpg' => 'other.jpg'))) && p() && e('<img src="/nonexist.jpg" />'); // 步骤6:不存在的URL保持不变
r($mailTest->replaceImageURLTest('', array())) && p() && e('0'); // 步骤7:边界情况测试