* [misc] Enhance unit tests for fileModel::saveAsTempFile() 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:15:58 +08:00
co-authored by Claude
parent 50bb0dd5de
commit b53f2029de
2 changed files with 47 additions and 13 deletions
@@ -46,6 +46,21 @@ class fileTest
return $object;
}
/**
* Test saveAsTempFile method.
*
* @param object $file
* @access public
* @return mixed
*/
public function saveAsTempFileTest($file)
{
$result = $this->objectModel->saveAsTempFile($file);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test get info of uploaded files.
*
+32 -13
View File
@@ -4,27 +4,46 @@
/**
title=测试 fileModel->saveAsTempFile();
timeout=0
cid=0
- 传入空对象。 @0
- 检查文件路径。 @1
- 文件储存类型为s3。 @0
- 测试传入空realPath的文件对象 @
- 测试fs存储类型下的有效文件路径 @/tmp/test.txt
- 测试s3存储类型下的文件处理 @
- 测试空字符串realPath的处理 @
- 测试其他存储类型下的文件处理 @
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/file.unittest.class.php';
su('admin');
$downloadFile = dirname(__FILE__) . '/download.txt';
$fileTest = new fileTest();
$file = new stdclass();
$file->realPath = $downloadFile;
// 创建测试文件对象
$validFile = new stdclass();
$validFile->realPath = '/tmp/test.txt';
global $tester;
$fileModel = $tester->loadModel('file');
$fileModel->config->file->storageType = 'fs';
$emptyFile = new stdclass();
r($fileModel->saveAsTempFile(new stdclass())) && p() && e('0'); //传入空对象。
r($fileModel->saveAsTempFile($file) == $downloadFile) && p() && e('1'); //检查文件路径。
$nullPathFile = new stdclass();
$nullPathFile->realPath = '';
$fileModel->config->file->storageType = 's3';
r($fileModel->saveAsTempFile($file)) && p() && e('0'); //文件储存类型为s3。
// 设置文件存储类型为fs
$fileTest->objectModel->config->file->storageType = 'fs';
r($fileTest->saveAsTempFileTest($emptyFile)) && p() && e(''); // 测试传入空realPath的文件对象
r($fileTest->saveAsTempFileTest($validFile)) && p() && e('/tmp/test.txt'); // 测试fs存储类型下的有效文件路径
// 设置文件存储类型为s3
$fileTest->objectModel->config->file->storageType = 's3';
r($fileTest->saveAsTempFileTest($validFile)) && p() && e(''); // 测试s3存储类型下的文件处理
// 重新设置为fs进行更多测试
$fileTest->objectModel->config->file->storageType = 'fs';
r($fileTest->saveAsTempFileTest($nullPathFile)) && p() && e(''); // 测试空字符串realPath的处理
// 测试其他存储类型
$fileTest->objectModel->config->file->storageType = 'oss';
r($fileTest->saveAsTempFileTest($validFile)) && p() && e(''); // 测试其他存储类型下的文件处理