From b53f2029de0b3aea57db75fb009a7e7f954aa4e8 Mon Sep 17 00:00:00 2001 From: liugang Date: Sat, 20 Sep 2025 09:52:01 +0800 Subject: [PATCH] * [misc] Enhance unit tests for fileModel::saveAsTempFile() method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- module/file/test/lib/file.unittest.class.php | 15 +++++++ module/file/test/model/saveastempfile.php | 45 ++++++++++++++------ 2 files changed, 47 insertions(+), 13 deletions(-) mode change 100644 => 100755 module/file/test/model/saveastempfile.php diff --git a/module/file/test/lib/file.unittest.class.php b/module/file/test/lib/file.unittest.class.php index 5c4105e58f..5f812acf1c 100755 --- a/module/file/test/lib/file.unittest.class.php +++ b/module/file/test/lib/file.unittest.class.php @@ -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. * diff --git a/module/file/test/model/saveastempfile.php b/module/file/test/model/saveastempfile.php old mode 100644 new mode 100755 index de4863a9f8..74eb30770c --- a/module/file/test/model/saveastempfile.php +++ b/module/file/test/model/saveastempfile.php @@ -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(''); // 测试其他存储类型下的文件处理 \ No newline at end of file