diff --git a/module/admin/test/lib/admin.unittest.class.php b/module/admin/test/lib/admin.unittest.class.php index 608b71ec27..58a1dcf3aa 100644 --- a/module/admin/test/lib/admin.unittest.class.php +++ b/module/admin/test/lib/admin.unittest.class.php @@ -96,4 +96,50 @@ class adminTest return $result; } + + /** + * 测试设置后台二级导航。 + * Test set menu. + * + * @param string $moduleName + * @param string $methodName + * @param array $params + * @access public + * @return mixed + */ + public function setMenuTest(string $moduleName = 'admin', string $methodName = 'index', array $params = array()) + { + global $app, $lang; + + // 保存原始值 + $originalModule = isset($app->rawModule) ? $app->rawModule : ''; + $originalMethod = isset($app->rawMethod) ? $app->rawMethod : ''; + $originalParams = isset($app->rawParams) ? $app->rawParams : array(); + + // 设置测试值 + $app->rawModule = $moduleName; + $app->rawMethod = $methodName; + $app->rawParams = $params; + + // 执行setMenu方法 + $this->objectModel->setMenu(); + + // 检查是否有错误 + if(dao::isError()) return dao::getError(); + + // 恢复原始值 + $app->rawModule = $originalModule; + $app->rawMethod = $originalMethod; + $app->rawParams = $originalParams; + + // 返回设置结果的标识 + $result = array(); + if(isset($lang->admin->menu)) $result['hasMenu'] = true; + if(isset($lang->admin->menuOrder)) $result['hasMenuOrder'] = true; + if(isset($lang->admin->dividerMenu)) $result['hasDividerMenu'] = true; + if(isset($lang->admin->tabMenu)) $result['hasTabMenu'] = true; + if(isset($lang->switcherMenu)) $result['hasSwitcherMenu'] = true; + + return $result; + } } diff --git a/module/admin/test/model/setmenu.php b/module/admin/test/model/setmenu.php new file mode 100755 index 0000000000..9e4f9d6e2d --- /dev/null +++ b/module/admin/test/model/setmenu.php @@ -0,0 +1,33 @@ +#!/usr/bin/env php +setMenuTest('admin', 'index', array())) && p('hasSwitcherMenu') && e('1'); // 步骤1:正常admin模块菜单设置 +r($adminTest->setMenuTest('user', 'browse', array())) && p('hasSwitcherMenu') && e('1'); // 步骤2:user模块菜单设置 +r($adminTest->setMenuTest('custom', 'required', array('product'))) && p('hasSwitcherMenu') && e('1'); // 步骤3:custom模块特殊方法测试 +r($adminTest->setMenuTest('project', 'browse', array())) && p('hasSwitcherMenu') && e('1'); // 步骤4:project模块菜单设置 +r($adminTest->setMenuTest('nonexistent', 'test', array())) && p('hasSwitcherMenu') && e('~~'); // 步骤5:不存在模块的处理 \ No newline at end of file