#!/usr/bin/env php
getTmpRoot() . 'jirafile/';
if(!is_dir($jiraPath)) mkdir($jiraPath, 0755, true);
// 清理之前的测试文件
$testFiles = array('action.xml', 'project.xml', 'status.xml', 'resolution.xml', 'user.xml', 'issue.xml', 'changegroup.xml', 'changeitem.xml', 'issuelink.xml', 'issuelinktype.xml', 'fileattachment.xml', 'version.xml', 'issuetype.xml', 'nodeassociation.xml');
foreach($testFiles as $file)
{
if(file_exists($jiraPath . $file)) @unlink($jiraPath . $file);
}
// 创建测试用的entities.xml文件
$testXMLContent = '
';
file_put_contents($jiraPath . 'entities.xml', $testXMLContent);
// 测试步骤1:测试有效的entities.xml文件分割
r($convertTest->splitFileTest()) && p() && e('success');
// 测试步骤2:测试空的entities.xml文件处理
foreach($testFiles as $file)
{
if(file_exists($jiraPath . $file)) @unlink($jiraPath . $file);
}
file_put_contents($jiraPath . 'entities.xml', '');
r($convertTest->splitFileTest()) && p() && e('no_files');
// 测试步骤3:测试不存在entities.xml文件的处理
if(file_exists($jiraPath . 'entities.xml')) @unlink($jiraPath . 'entities.xml');
r($convertTest->splitFileTest()) && p() && e('no_source_file');
// 测试步骤4:测试包含特殊字符的XML内容处理
foreach($testFiles as $file)
{
if(file_exists($jiraPath . $file)) @unlink($jiraPath . $file);
}
$xmlWithSpecialChars = '
';
file_put_contents($jiraPath . 'entities.xml', $xmlWithSpecialChars);
r($convertTest->splitFileTest()) && p() && e('success');
// 测试步骤5:检查分割后的文件完整性
$actionFile = $jiraPath . 'action.xml';
$hasValidXMLHeader = false;
$hasValidXMLFooter = false;
if(file_exists($actionFile))
{
$content = file_get_contents($actionFile);
$hasValidXMLHeader = strpos($content, "") !== false;
$hasValidXMLFooter = strpos($content, '') !== false;
}
r($hasValidXMLHeader && $hasValidXMLFooter) && p() && e('1');