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

65 lines
2.8 KiB
PHP
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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测试路径处理功能