From 5bae542456d2962f8ee033df831d7a1461cec6ce Mon Sep 17 00:00:00 2001 From: liugang Date: Sun, 14 Sep 2025 20:03:15 +0800 Subject: [PATCH] + [misc] Add unit tests for groupZen::appendWorkflowMenu() 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 --- .../test/lib/groupzen.unittest.class.php | 21 +++++++ module/group/test/zen/appendworkflowmenu.php | 60 +++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100755 module/group/test/zen/appendworkflowmenu.php diff --git a/module/group/test/lib/groupzen.unittest.class.php b/module/group/test/lib/groupzen.unittest.class.php index 820289d4b8..bb96cad41d 100755 --- a/module/group/test/lib/groupzen.unittest.class.php +++ b/module/group/test/lib/groupzen.unittest.class.php @@ -60,4 +60,25 @@ class groupZenTest return $result; } + + /** + * 测试appendWorkflowMenu方法。 + * Test appendWorkflowMenu method. + * + * @param string $packageCode + * @param string $module + * @param string $method + * @access public + * @return array + */ + public function appendWorkflowMenuTest(string $packageCode, string $module, string $method) + { + global $config; + $appendMethod = $this->groupZenTest->getMethod('appendWorkflowMenu'); + $groupInstance = $this->groupZenTest->newInstance(); + + $appendMethod->invoke($groupInstance, $packageCode, $module, $method); + + return isset($config->group->package->{$packageCode}->privs) ? $config->group->package->{$packageCode}->privs : array(); + } } diff --git a/module/group/test/zen/appendworkflowmenu.php b/module/group/test/zen/appendworkflowmenu.php new file mode 100755 index 0000000000..fdd2fb9496 --- /dev/null +++ b/module/group/test/zen/appendworkflowmenu.php @@ -0,0 +1,60 @@ +#!/usr/bin/env php +testworkflow)) $lang->testworkflow = new stdclass(); +if(!isset($lang->testworkflow->menus)) +{ + $lang->testworkflow->menus = new stdclass(); + $lang->testworkflow->menus->all = '全部'; + $lang->testworkflow->menus->open = '未关闭'; + $lang->testworkflow->menus->finished = '已完成'; +} + +if(!isset($lang->testmodule)) $lang->testmodule = new stdclass(); + +// 初始化配置包结构 +if(!isset($config->group->package)) $config->group->package = new stdclass(); + +// 初始化测试包结构 +$config->group->package->testworkflowbrowse = new stdclass(); +$result1 = $groupTest->appendWorkflowMenuTest('testworkflowbrowse', 'testworkflow', 'browse'); +r(isset($result1['testworkflow-browse']) ? 1 : 0) && p() && e('1'); // 步骤1:browse方法有menus + +$config->group->package->testmodulebrowse = new stdclass(); +$result2 = $groupTest->appendWorkflowMenuTest('testmodulebrowse', 'testmodule', 'browse'); +r(isset($result2['testmodule-browse']) ? 1 : 0) && p() && e('1'); // 步骤2:browse方法无menus + +$config->group->package->testworkflowcreate = new stdclass(); +$result3 = $groupTest->appendWorkflowMenuTest('testworkflowcreate', 'testworkflow', 'create'); +r(isset($result3['testworkflow-create']) ? 1 : 0) && p() && e('1'); // 步骤3:非browse方法 + +$config->group->package->testpackage = new stdclass(); +$result4 = $groupTest->appendWorkflowMenuTest('testpackage', 'testworkflow', 'browse'); +r(isset($result4['testworkflow-browse']['edition']) ? 1 : 0) && p() && e('1'); // 步骤4:权限配置结构 + +$config->group->package->testdependency = new stdclass(); +$result5 = $groupTest->appendWorkflowMenuTest('testdependency', 'testworkflow', 'browse'); +r(isset($result5['testworkflow-all']['depend'][0]) && $result5['testworkflow-all']['depend'][0] == 'testworkflow-browse' ? 1 : 0) && p() && e('1'); // 步骤5:依赖关系 \ No newline at end of file