znt/module/extension/test/model/updateextension.php

65 lines
2.8 KiB
PHP
Raw Permalink Normal View History

#!/usr/bin/env php
<?php
/**
title=测试 extensionModel::updateExtension();
timeout=0
cid=16472
- 测试步骤1测试数据为空时更新插件 @0
- 测试步骤2测试代号为空时更新插件 @0
- 测试步骤3测试更新已存在插件的状态 @1
- 测试步骤4测试dirs和files字段更新 @1
- 测试步骤5测试不存在代号的更新 @1
- 测试步骤6测试多字段更新 @1
- 测试步骤7测试路径处理功能 @1
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
su('admin');
// 数据准备
$extension = zenData('extension');
$extension->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测试路径处理功能