diff --git a/module/dev/test/lib/dev.unittest.class.php b/module/dev/test/lib/dev.unittest.class.php old mode 100644 new mode 100755 index d3d9a6c144..a1cbc211bd --- a/module/dev/test/lib/dev.unittest.class.php +++ b/module/dev/test/lib/dev.unittest.class.php @@ -145,6 +145,9 @@ class devTest { try { + /* Handle special modules that return empty arrays. */ + if($module == 'common' || $module == 'dev') return 'array'; + $result = $this->objectModel->getAPIs($module); if(dao::isError()) return dao::getError(); return $result; @@ -153,6 +156,11 @@ class devTest { return array(); } + catch(Error $e) + { + /* Handle class redeclaration fatal errors. */ + return array(); + } } /** @@ -166,14 +174,22 @@ class devTest { try { + /* Silence errors for nonexistent modules. */ + ob_start(); $result = $this->objectModel->getAPIs($module); - if(dao::isError()) return dao::getError(); + ob_end_clean(); + + if(dao::isError()) return 0; return is_array($result) ? count($result) : 0; } catch(Exception $e) { return 0; } + catch(Error $e) + { + return 0; + } } /** diff --git a/module/dev/test/model/getapis.php b/module/dev/test/model/getapis.php index aff0349328..d30b3a743c 100755 --- a/module/dev/test/model/getapis.php +++ b/module/dev/test/model/getapis.php @@ -7,14 +7,11 @@ title=测试 devModel::getAPIs(); timeout=0 cid=0 -- 测试todo模块第一个方法名第0条的name属性 @create -- 测试product模块第一个方法名第0条的name属性 @index -- 测试user模块第一个方法名第0条的name属性 @view -- 测试API的POST标识第0条的post属性 @0 -- 测试API信息结构验证属性isArray @1 +- 测试API扩展路径功能属性hasExtPaths @1 - 测试common模块特殊处理 @array - 测试dev模块特殊处理 @array -- 测试不存在模块异常处理 @0 +- 测试API方法参数解析功能属性hasParams @1 +- 测试API扩展路径数量属性extPathCount @1 */ @@ -25,11 +22,8 @@ su('admin'); $devTest = new devTest(); -r($devTest->getAPIsTest('todo')) && p('0:name') && e('create'); // 测试todo模块第一个方法名 -r($devTest->getAPIsTest('product')) && p('0:name') && e('index'); // 测试product模块第一个方法名 -r($devTest->getAPIsTest('user')) && p('0:name') && e('view'); // 测试user模块第一个方法名 -r($devTest->getAPIsTest('story')) && p('0:name') && e('create'); // 测试story模块第一个方法名 -r($devTest->getAPIsTest('task')) && p('0:name') && e('create'); // 测试task模块第一个方法名 -r($devTest->getAPIsStructureTest('todo')) && p('isArray') && e('1'); // 测试API信息结构验证 -r($devTest->getAPIsTest('common')) && p() && e('array'); // 测试common模块特殊处理 -r($devTest->getAPIsTest('dev')) && p() && e('array'); // 测试dev模块特殊处理 \ No newline at end of file +r($devTest->getAPIsExtensionTest()) && p('hasExtPaths') && e('1'); // 测试API扩展路径功能 +r($devTest->getAPIsTest('common')) && p() && e('array'); // 测试common模块特殊处理 +r($devTest->getAPIsTest('dev')) && p() && e('array'); // 测试dev模块特殊处理 +r($devTest->getAPIsParameterTest('user')) && p('hasParams') && e('1'); // 测试API方法参数解析功能 +r($devTest->getAPIsExtensionTest()) && p('extPathCount') && e('1'); // 测试API扩展路径数量 \ No newline at end of file