znt/module/extension/test/zen/checkdepends.php

89 lines
3.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=测试 extensionZen::checkDepends();
timeout=0
cid=16476
- 执行extensionTest模块的checkDependsTest方法参数是$condition1, $installedExts1 @1
- 执行extensionTest模块的checkDependsTest方法参数是$condition2, $installedExts2 @1
- 执行extensionTest模块的checkDependsTest方法参数是$condition3, $installedExts3 @0
- 执行extensionTest模块的checkDependsTest方法参数是$condition4, $installedExts4 @1
- 执行extensionTest模块的checkDependsTest方法参数是$condition5, $installedExts5 @0
- 执行extensionTest模块的checkDependsTest方法参数是$condition6, $installedExts6 @0
- 执行extensionTest模块的checkDependsTest方法参数是$condition7, $installedExts7 @1
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/zen.class.php';
su('admin');
global $tester;
$extensionTest = new extensionZenTest();
// 准备测试数据:已安装的插件列表
$installedExt1 = new stdclass();
$installedExt1->code = 'plugin_a';
$installedExt1->name = 'Plugin A';
$installedExt1->version = '1.5.0';
$installedExt2 = new stdclass();
$installedExt2->code = 'plugin_b';
$installedExt2->name = 'Plugin B';
$installedExt2->version = '2.0.0';
$installedExt3 = new stdclass();
$installedExt3->code = 'plugin_c';
$installedExt3->name = 'Plugin C';
$installedExt3->version = '1.0.0';
$installedExt4 = new stdclass();
$installedExt4->code = 'plugin_d';
$installedExt4->name = 'Plugin D';
$installedExt4->version = '5.0.0';
// 测试步骤1:没有依赖配置(depends为空)
$condition1 = new stdclass();
$condition1->depends = array();
$installedExts1 = array('plugin_a' => $installedExt1, 'plugin_b' => $installedExt2);
r($extensionTest->checkDependsTest($condition1, $installedExts1)) && p() && e('1');
// 测试步骤2:有依赖配置且所有依赖插件都已安装且版本满足要求
$condition2 = new stdclass();
$condition2->depends = array('plugin_a' => array('min' => '1.0.0', 'max' => '2.0.0'));
$installedExts2 = array('plugin_a' => $installedExt1, 'plugin_b' => $installedExt2);
r($extensionTest->checkDependsTest($condition2, $installedExts2)) && p() && e('1');
// 测试步骤3:有依赖配置但依赖的插件未安装
$condition3 = new stdclass();
$condition3->depends = array('plugin_x' => array('min' => '1.0.0', 'max' => '2.0.0'));
$installedExts3 = array('plugin_a' => $installedExt1, 'plugin_b' => $installedExt2);
r($extensionTest->checkDependsTest($condition3, $installedExts3)) && p() && e('0');
// 测试步骤4:有依赖配置且插件已安装但版本低于min范围
$condition4 = new stdclass();
$condition4->depends = array('plugin_c' => array('min' => '2.0.0', 'max' => '3.0.0'));
$installedExts4 = array('plugin_c' => $installedExt3);
r($extensionTest->checkDependsTest($condition4, $installedExts4)) && p() && e('1');
// 测试步骤5:有依赖配置且插件已安装但版本高于max范围
$condition5 = new stdclass();
$condition5->depends = array('plugin_d' => array('min' => '1.0.0', 'max' => '3.0.0'));
$installedExts5 = array('plugin_d' => $installedExt4);
r($extensionTest->checkDependsTest($condition5, $installedExts5)) && p() && e('0');
// 测试步骤6:多个依赖插件其中一个未安装
$condition6 = new stdclass();
$condition6->depends = array('plugin_a' => array('min' => '1.0.0', 'max' => '2.0.0'), 'plugin_x' => array('min' => '1.0.0', 'max' => '2.0.0'));
$installedExts6 = array('plugin_a' => $installedExt1);
r($extensionTest->checkDependsTest($condition6, $installedExts6)) && p() && e('0');
// 测试步骤7:depends配置为空数组
$condition7 = new stdclass();
$condition7->depends = array();
$installedExts7 = array('plugin_a' => $installedExt1);
r($extensionTest->checkDependsTest($condition7, $installedExts7)) && p() && e('1');