* [misc] Enhance unit tests for repoModel::rmClientVersionFile() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -535,16 +535,93 @@ class repoTest
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function rmClientVersionFileTest()
|
||||
/**
|
||||
* Test rmClientVersionFile method.
|
||||
*
|
||||
* @param string $testType 测试类型
|
||||
* @access public
|
||||
* @return mixed
|
||||
*/
|
||||
public function rmClientVersionFileTest($testType = 'existing_file')
|
||||
{
|
||||
file_put_contents('clientFile.txt', 'rmClientVersionFileTest');
|
||||
$this->objectModel->session->set('clientVersionFile', 'clientFile.txt');
|
||||
// 清理之前的测试文件
|
||||
$testFiles = array('clientFile.txt', 'special_chars_!@#$.txt');
|
||||
foreach($testFiles as $file)
|
||||
{
|
||||
if(file_exists($file)) @unlink($file);
|
||||
}
|
||||
|
||||
$objects = $this->objectModel->rmClientVersionFile();
|
||||
$result = array('success' => false, 'sessionCleared' => false, 'fileDeleted' => true);
|
||||
|
||||
switch($testType)
|
||||
{
|
||||
case 'existing_file':
|
||||
// 测试步骤1:有文件且文件存在
|
||||
file_put_contents('clientFile.txt', 'rmClientVersionFileTest');
|
||||
$this->objectModel->session->set('clientVersionFile', 'clientFile.txt');
|
||||
$result['initialFileExists'] = file_exists('clientFile.txt');
|
||||
|
||||
$this->objectModel->rmClientVersionFile();
|
||||
|
||||
$result['sessionCleared'] = empty($this->objectModel->session->clientVersionFile);
|
||||
$result['fileDeleted'] = !file_exists('clientFile.txt');
|
||||
$result['success'] = $result['sessionCleared'] && $result['fileDeleted'];
|
||||
break;
|
||||
|
||||
case 'nonexistent_file':
|
||||
// 测试步骤2:有文件路径但文件不存在
|
||||
$this->objectModel->session->set('clientVersionFile', 'nonexistent_file.txt');
|
||||
|
||||
$this->objectModel->rmClientVersionFile();
|
||||
|
||||
$result['sessionCleared'] = empty($this->objectModel->session->clientVersionFile);
|
||||
$result['fileDeleted'] = true; // 文件本来就不存在
|
||||
$result['success'] = $result['sessionCleared'];
|
||||
break;
|
||||
|
||||
case 'empty_string':
|
||||
// 测试步骤3:session中为空字符串
|
||||
$this->objectModel->session->set('clientVersionFile', '');
|
||||
|
||||
$this->objectModel->rmClientVersionFile();
|
||||
|
||||
$result['sessionCleared'] = true; // 本来就是空
|
||||
$result['fileDeleted'] = true; // 没有文件操作
|
||||
$result['success'] = true;
|
||||
break;
|
||||
|
||||
case 'null':
|
||||
// 测试步骤4:session中没有该属性
|
||||
unset($_SESSION['clientVersionFile']);
|
||||
|
||||
$this->objectModel->rmClientVersionFile();
|
||||
|
||||
$result['sessionCleared'] = true; // 没有该属性
|
||||
$result['fileDeleted'] = true; // 没有文件操作
|
||||
$result['success'] = true;
|
||||
break;
|
||||
|
||||
case 'special_chars':
|
||||
// 测试步骤5:特殊字符文件名处理
|
||||
$specialFile = 'special_chars_!@#$.txt';
|
||||
file_put_contents($specialFile, 'special chars test');
|
||||
$this->objectModel->session->set('clientVersionFile', $specialFile);
|
||||
|
||||
$this->objectModel->rmClientVersionFile();
|
||||
|
||||
$result['sessionCleared'] = empty($this->objectModel->session->clientVersionFile);
|
||||
$result['fileDeleted'] = !file_exists($specialFile);
|
||||
$result['success'] = $result['sessionCleared'] && $result['fileDeleted'];
|
||||
break;
|
||||
|
||||
default:
|
||||
$result['success'] = false;
|
||||
break;
|
||||
}
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $this->objectModel->session->clientVersionFile == '' && !file_exists('clientFile.txt') ;
|
||||
return $result['success'] ? 1 : 0;
|
||||
}
|
||||
|
||||
public function checkConnectionTest()
|
||||
|
||||
@@ -1,19 +1,29 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/repo.unittest.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 repoModel->rmClientVersionFile();
|
||||
title=测试 repoModel::rmClientVersionFile();
|
||||
timeout=0
|
||||
cid=1
|
||||
cid=0
|
||||
|
||||
- 测试删除文件 @1
|
||||
- 测试步骤1:有文件且文件存在 @1
|
||||
- 测试步骤2:有文件路径但文件不存在 @1
|
||||
- 测试步骤3:session中为空字符串 @1
|
||||
- 测试步骤4:session中没有该属性 @1
|
||||
- 测试步骤5:特殊字符文件名处理 @1
|
||||
|
||||
*/
|
||||
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/repo.unittest.class.php';
|
||||
|
||||
su('admin');
|
||||
|
||||
$repo = new repoTest();
|
||||
|
||||
r($repo->rmClientVersionFileTest()) && p() && e('1'); //测试删除文件
|
||||
r($repo->rmClientVersionFileTest('existing_file')) && p() && e('1'); //测试步骤1:有文件且文件存在
|
||||
r($repo->rmClientVersionFileTest('nonexistent_file')) && p() && e('1'); //测试步骤2:有文件路径但文件不存在
|
||||
r($repo->rmClientVersionFileTest('empty_string')) && p() && e('1'); //测试步骤3:session中为空字符串
|
||||
r($repo->rmClientVersionFileTest('null')) && p() && e('1'); //测试步骤4:session中没有该属性
|
||||
r($repo->rmClientVersionFileTest('special_chars')) && p() && e('1'); //测试步骤5:特殊字符文件名处理
|
||||
Reference in New Issue
Block a user