From 557e2dca04dfb93aa531072534af54b1d4a7d7b8 Mon Sep 17 00:00:00 2001 From: liugang Date: Fri, 19 Sep 2025 21:44:41 +0800 Subject: [PATCH] * [misc] Enhance unit tests for commonModel::isOpenMethod() 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 --- .../common/test/lib/common.unittest.class.php | 16 +++++++ module/common/test/model/isopenmethod.php | 43 +++++++++++-------- 2 files changed, 41 insertions(+), 18 deletions(-) diff --git a/module/common/test/lib/common.unittest.class.php b/module/common/test/lib/common.unittest.class.php index cbf7ef85c7..673f50c36e 100644 --- a/module/common/test/lib/common.unittest.class.php +++ b/module/common/test/lib/common.unittest.class.php @@ -2714,4 +2714,20 @@ class commonTest return $result; } + + /** + * Test isOpenMethod method. + * + * @param string $module + * @param string $method + * @access public + * @return bool + */ + public function isOpenMethodTest($module, $method) + { + $result = $this->objectModel->isOpenMethod($module, $method); + if(dao::isError()) return dao::getError(); + + return $result; + } } diff --git a/module/common/test/model/isopenmethod.php b/module/common/test/model/isopenmethod.php index 78fc3f6e53..641f0e7fc4 100755 --- a/module/common/test/model/isopenmethod.php +++ b/module/common/test/model/isopenmethod.php @@ -1,30 +1,37 @@ #!/usr/bin/env php isOpenMethod(); +title=测试 commonModel::isOpenMethod(); timeout=0 -cid=1 +cid=0 -- 执行$priv1 @1 -- 执行$priv2 @1 -- 执行$priv3 @0 -- 执行$priv4 @1 +- 步骤1:公开方法权限验证 @1 +- 步骤2:登录后方法权限验证 @1 +- 步骤3:非公开方法权限验证 @0 +- 步骤4:特殊模块方法权限验证 @1 +- 步骤5:Ajax方法权限验证 @1 +- 步骤6:block模块特殊方法权限验证 @1 +- 步骤7:不存在方法权限验证 @0 */ -global $tester; -$tester->loadModel('common'); +// 1. 导入依赖(路径固定,不可修改) +include dirname(__FILE__, 5) . '/test/lib/init.php'; +include dirname(__FILE__, 2) . '/lib/common.unittest.class.php'; -$priv1 = $tester->common->isOpenMethod('misc', 'changelog'); -$priv2 = $tester->common->isOpenMethod('tutorial', 'quit'); -$priv3 = $tester->common->isOpenMethod('my', 'task'); -$priv4 = $tester->common->isOpenMethod('product', 'showerrornone'); +// 2. 用户登录(已登录状态进行测试) +su('admin'); -r($priv1) && p() && e('1'); -r($priv2) && p() && e('1'); -r($priv3) && p() && e('0'); -r($priv4) && p() && e('1'); \ No newline at end of file +// 3. 创建测试实例 +$commonTest = new commonTest(); + +// 4. 测试步骤:必须包含至少5个测试步骤 +r($commonTest->isOpenMethodTest('misc', 'changelog')) && p() && e('1'); // 步骤1:公开方法权限验证 +r($commonTest->isOpenMethodTest('tutorial', 'quit')) && p() && e('1'); // 步骤2:登录后方法权限验证 +r($commonTest->isOpenMethodTest('my', 'task')) && p() && e('0'); // 步骤3:非公开方法权限验证 +r($commonTest->isOpenMethodTest('product', 'showerrornone')) && p() && e('1'); // 步骤4:特殊模块方法权限验证 +r($commonTest->isOpenMethodTest('user', 'ajaxGetList')) && p() && e('1'); // 步骤5:Ajax方法权限验证 +r($commonTest->isOpenMethodTest('block', 'dashboard')) && p() && e('1'); // 步骤6:block模块特殊方法权限验证 +r($commonTest->isOpenMethodTest('unknown', 'invalidmethod')) && p() && e('0'); // 步骤7:不存在方法权限验证 \ No newline at end of file