From 79d0729ead9cb5d7aad99ac41cfa29e0bcecd03f Mon Sep 17 00:00:00 2001 From: liugang Date: Sat, 8 Nov 2025 19:06:27 +0800 Subject: [PATCH] + [misc] Add unit tests for hostModel::processTreemap() 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/host/test/model/processtreeMap.php | 48 +++++++++++------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/module/host/test/model/processtreeMap.php b/module/host/test/model/processtreeMap.php index d59b0f9ecf..e93e78f874 100755 --- a/module/host/test/model/processtreeMap.php +++ b/module/host/test/model/processtreeMap.php @@ -7,21 +7,21 @@ title=测试 hostModel::processTreemap(); timeout=0 cid=0 -- 步骤1:空数组输入 @0 -- 步骤2:单个简单对象第0条的text属性 @简单主机 -- 步骤3:带roomName的对象第0条的text属性 @主机名称 -- 步骤4:带hostID的对象第0条的hostid属性 @123 -- 步骤5:嵌套数组结构第0条的text属性 @北京机房1 -- 步骤6:带children属性对象第0条的text属性 @子对象1 -- 步骤7:HTML特殊字符转义第0条的text属性 @<script>alert("test")</script> +- 步骤1:空数组输入 @0 +- 步骤2:单个简单对象第0条的text属性 @简单主机 +- 步骤3:带roomName的对象第0条的text属性 @主机名称 +- 步骤4:带hostID的对象第0条的hostid属性 @123 +- 步骤5:嵌套数组结构第0条的text属性 @北京机房1 +- 步骤6:带children属性对象第0条的text属性 @子对象1 +- 步骤7:HTML特殊字符转义第0条的text属性 @<script>alert("test")</script> */ -// 1. 导入依赖(路径固定,不可修改) +// 1. 导入依赖(路径固定,不可修改) include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/lib/host.unittest.class.php'; -// 2. 用户登录(选择合适角色) +// 2. 用户登录(选择合适角色) su('admin'); // 3. 加载语言包 @@ -33,24 +33,24 @@ $hostTest = new hostTest(); // 5. 测试数据准备 -// 步骤1:测试空数组 +// 步骤1:测试空数组 $emptyData = array(); -// 步骤2:测试简单对象(只有name,会用作text) +// 步骤2:测试简单对象(只有name,会用作text) $simpleObject = new stdClass(); $simpleObject->name = '简单主机'; -// 步骤3:测试有roomName的对象(优先使用roomName作为text) +// 步骤3:测试有roomName的对象(优先使用roomName作为text) $roomObject = new stdClass(); $roomObject->roomName = '主机房名称'; $roomObject->name = '主机名称'; -// 步骤4:测试有hostID的对象(会生成hostid属性) +// 步骤4:测试有hostID的对象(会生成hostid属性) $hostWithId = new stdClass(); $hostWithId->name = '带ID主机'; $hostWithId->hostID = 123; -// 步骤5:测试嵌套数组结构(会递归处理) +// 步骤5:测试嵌套数组结构(会递归处理) $arrayData = array( 'beijing' => array( (object)array('roomName' => '北京机房1', 'name' => '北京主机1'), @@ -58,7 +58,7 @@ $arrayData = array( ) ); -// 步骤6:测试有children属性的对象(会递归处理children) +// 步骤6:测试有children属性的对象(会递归处理children) $objectWithChildren = new stdClass(); $objectWithChildren->name = '父级对象'; $objectWithChildren->children = array( @@ -66,15 +66,15 @@ $objectWithChildren->children = array( (object)array('name' => '子对象2') ); -// 步骤7:测试含有HTML特殊字符的文本(会被htmlspecialchars转义) +// 步骤7:测试含有HTML特殊字符的文本(会被htmlspecialchars转义) $htmlObject = new stdClass(); $htmlObject->name = ''; -// 6. 执行测试(必须包含至少5个测试步骤) -r(count($hostTest->processTreemapTest($emptyData))) && p() && e('0'); // 步骤1:空数组输入 -r($hostTest->processTreemapTest(array($simpleObject))) && p('0:text') && e('简单主机'); // 步骤2:单个简单对象 -r($hostTest->processTreemapTest(array($roomObject))) && p('0:text') && e('主机名称'); // 步骤3:带roomName的对象 -r($hostTest->processTreemapTest(array($hostWithId))) && p('0:hostid') && e('123'); // 步骤4:带hostID的对象 -r($hostTest->processTreemapTest($arrayData)) && p('0:text') && e('北京机房1'); // 步骤5:嵌套数组结构 -r($hostTest->processTreemapTest(array($objectWithChildren))[0]['children']) && p('0:text') && e('子对象1'); // 步骤6:带children属性对象 -r($hostTest->processTreemapTest(array($htmlObject))) && p('0:text') && e('<script>alert("test")</script>'); // 步骤7:HTML特殊字符转义 +// 6. 执行测试(必须包含至少5个测试步骤) +r(count($hostTest->processTreemapTest($emptyData))) && p() && e('0'); // 步骤1:空数组输入 +r($hostTest->processTreemapTest(array($simpleObject))) && p('0:text') && e('简单主机'); // 步骤2:单个简单对象 +r($hostTest->processTreemapTest(array($roomObject))) && p('0:text') && e('主机名称'); // 步骤3:带roomName的对象 +r($hostTest->processTreemapTest(array($hostWithId))) && p('0:hostid') && e('123'); // 步骤4:带hostID的对象 +r($hostTest->processTreemapTest($arrayData)) && p('0:text') && e('北京机房1'); // 步骤5:嵌套数组结构 +r($hostTest->processTreemapTest(array($objectWithChildren))[0]['children']) && p('0:text') && e('子对象1'); // 步骤6:带children属性对象 +r($hostTest->processTreemapTest(array($htmlObject))) && p('0:text') && e('<script>alert("test")</script>'); // 步骤7:HTML特殊字符转义 \ No newline at end of file