#!/usr/bin/env php code->range('code1,code2,code3,code4,code5'); $extension->name->range('Extension1,Extension2,Extension3,Extension4,Extension5'); $extension->version->range('1.0,1.1,1.2,1.3,1.4'); $extension->status->range('available,installed,disabled'); $extension->type->range('extension{3},patch{2}'); $extension->dirs->range('["dir1","dir2"]{2},null{3}'); $extension->files->range('{"file1.php":"md5hash1"}{2},null{3}'); $extension->gen(5); global $tester; $tester->loadModel('extension'); // 测试步骤1:测试数据为空时更新插件返回的结果 $result1 = $tester->extension->updateExtension(array()); // 测试步骤2:测试代号为空时更新插件返回的结果 $result2 = $tester->extension->updateExtension(array('code' => '', 'status' => 'installed')); // 测试步骤3:测试更新已存在插件的状态为installed $result3 = $tester->extension->updateExtension(array('code' => 'code1', 'status' => 'installed')); // 测试步骤4:测试更新插件的dirs和files字段JSON编码 $result4 = $tester->extension->updateExtension(array('code' => 'code2', 'dirs' => array('dir3', 'dir4'), 'files' => array('file2.php' => 'hash2'))); // 测试步骤5:测试更新不存在插件代号时的处理 $result5 = $tester->extension->updateExtension(array('code' => 'newcode', 'status' => 'disabled')); // 测试步骤6:测试更新插件的多个字段组合 $result6 = $tester->extension->updateExtension(array('code' => 'code3', 'name' => 'Updated Extension', 'version' => '2.0', 'status' => 'disabled')); // 测试步骤7:测试插件目录路径处理功能 $result7 = $tester->extension->updateExtension(array('code' => 'code4', 'dirs' => array('/app/module/test'), 'files' => array('/app/test.php' => 'newhash'))); // 断言验证 r($result1) && p() && e('0'); // 测试步骤1:测试数据为空时更新插件 r($result2) && p() && e('0'); // 测试步骤2:测试代号为空时更新插件 r($result3) && p() && e('1'); // 测试步骤3:测试更新已存在插件的状态 r($result4) && p() && e('1'); // 测试步骤4:测试dirs和files字段更新 r($result5) && p() && e('1'); // 测试步骤5:测试不存在代号的更新 r($result6) && p() && e('1'); // 测试步骤6:测试多字段更新 r($result7) && p() && e('1'); // 测试步骤7:测试路径处理功能