From d18a6613e8dade6a05e4cb8fa1497f7625d95409 Mon Sep 17 00:00:00 2001 From: liugang Date: Mon, 22 Sep 2025 16:08:46 +0800 Subject: [PATCH] * [misc] Enhance unit tests for gitModel::printLog() 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/git/test/lib/git.unittest.class.php | 17 ++++++++++ module/git/test/model/printlog.php | 36 ++++++++++++++++------ 2 files changed, 44 insertions(+), 9 deletions(-) diff --git a/module/git/test/lib/git.unittest.class.php b/module/git/test/lib/git.unittest.class.php index fc78c63173..40f9383d7d 100755 --- a/module/git/test/lib/git.unittest.class.php +++ b/module/git/test/lib/git.unittest.class.php @@ -172,4 +172,21 @@ class gitTest return false; } } + + /** + * Test printLog method. + * + * @param string $log + * @access public + * @return string + */ + public function printLogTest(string $log): string + { + ob_start(); + $this->gitModel->printLog($log); + $result = trim(ob_get_clean()); + if(dao::isError()) return dao::getError(); + + return $result; + } } diff --git a/module/git/test/model/printlog.php b/module/git/test/model/printlog.php index 2b9fec66c3..8e4e3dd8a3 100755 --- a/module/git/test/model/printlog.php +++ b/module/git/test/model/printlog.php @@ -3,22 +3,40 @@ /** -title=gitModel->printLog(); +title=测试 gitModel::printLog(); timeout=0 -cid=1 +cid=0 -- 输出日志信息 @abc +- 测试步骤1:正常字符串日志输出 @1 +- 测试步骤2:空字符串日志输出 @1 +- 测试步骤3:包含特殊字符的日志输出 @1 +- 测试步骤4:长字符串日志输出 @1 +- 测试步骤5:包含换行符的日志输出 @1 +- 测试步骤6:数字字符串日志输出 @1 */ include dirname(__FILE__, 5) . '/test/lib/init.php'; +include dirname(__FILE__, 2) . '/lib/git.unittest.class.php'; su('admin'); -global $tester; -$git = $tester->loadModel('git'); +$gitTest = new gitTest(); -ob_start(); -$git->printLog('Log: abc'); -$result = trim(ob_get_clean()); -r(substr($result, -3)) && p() && e('abc'); // 输出日志信息 \ No newline at end of file +$result1 = $gitTest->printLogTest('test log message'); +r(strpos($result1, 'test log message') !== false) && p() && e(1); // 测试步骤1:正常字符串日志输出 + +$result2 = $gitTest->printLogTest(''); +r(preg_match('/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/', $result2)) && p() && e(1); // 测试步骤2:空字符串日志输出 + +$result3 = $gitTest->printLogTest('log with @#$%^&*()_+ special chars'); +r(strpos($result3, 'log with @#$%^&*()_+ special chars') !== false) && p() && e(1); // 测试步骤3:包含特殊字符的日志输出 + +$result4 = $gitTest->printLogTest(str_repeat('A', 100)); +r(strpos($result4, str_repeat('A', 100)) !== false) && p() && e(1); // 测试步骤4:长字符串日志输出 + +$result5 = $gitTest->printLogTest("line1\nline2"); +r(strpos($result5, "line1\nline2") !== false) && p() && e(1); // 测试步骤5:包含换行符的日志输出 + +$result6 = $gitTest->printLogTest('12345'); +r(strpos($result6, '12345') !== false) && p() && e(1); // 测试步骤6:数字字符串日志输出 \ No newline at end of file