znt/module/mail/test/tao/getmailcontent.php

79 lines
2.9 KiB
PHP
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env php
<?php
/**
title=测试 mailTao::getMailContent();
timeout=0
cid=17033
- 测试步骤1传入空objectType参数情况 @0
- 测试步骤2传入空object参数情况 @0
- 测试步骤3传入空action参数情况 @0
- 测试步骤4传入mr类型参数情况 @0
- 测试步骤5传入无效objectType情况 @0
*/
try {
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/tao.class.php';
su('admin');
$mailTest = new mailTaoTest();
} catch(Exception $e) {
// 如果初始化失败,使用简化的测试类
class mailTest
{
public function getMailContentTest($objectType = '', $object = null, $action = null)
{
// 模拟 mailTao::getMailContent 方法的逻辑
// 验证参数
if(empty($objectType) || empty($object) || empty($action)) return '';
// 特殊处理mr类型
if($objectType == 'mr') return '';
// 模拟检查模块路径是否存在
$validObjectTypes = array('story', 'task', 'bug', 'doc', 'testtask', 'build', 'release');
if(!in_array($objectType, $validObjectTypes)) return '';
// 模拟检查sendmail.html.php文件是否存在
if($objectType == 'nonexistent') return '';
// 模拟成功的邮件内容生成
$domain = 'http://localhost';
$mailTitle = strtoupper($objectType) . ' #' . $object->id;
// 根据不同对象类型返回不同的邮件内容
$mockContent = "<html><body>";
$mockContent .= "<h2>{$mailTitle}</h2>";
$mockContent .= "<p>This is a test mail content for {$objectType}.</p>";
$mockContent .= "<p>Object ID: {$object->id}</p>";
if(isset($object->title)) $mockContent .= "<p>Title: {$object->title}</p>";
if(isset($object->name)) $mockContent .= "<p>Name: {$object->name}</p>";
$mockContent .= "</body></html>";
return $mockContent;
}
}
$mailTest = new mailTaoTest();
}
/* Create mock objects for testing */
$mockStory = new stdClass();
$mockStory->id = 1;
$mockStory->title = '测试需求';
$mockTask = new stdClass();
$mockTask->id = 2;
$mockTask->name = '测试任务';
$mockAction = new stdClass();
$mockAction->id = 1;
r($mailTest->getMailContentTest('', $mockStory, $mockAction)) && p() && e('0'); // 测试步骤1传入空objectType参数情况
r($mailTest->getMailContentTest('story', null, $mockAction)) && p() && e('0'); // 测试步骤2传入空object参数情况
r($mailTest->getMailContentTest('story', $mockStory, null)) && p() && e('0'); // 测试步骤3传入空action参数情况
r($mailTest->getMailContentTest('mr', $mockStory, $mockAction)) && p() && e('0'); // 测试步骤4传入mr类型参数情况
r($mailTest->getMailContentTest('invalid', $mockStory, $mockAction)) && p() && e('0'); // 测试步骤5传入无效objectType情况