diff --git a/module/upgrade/model.php b/module/upgrade/model.php index e7a9779bec..8c88bc912f 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -2162,18 +2162,19 @@ class upgradeModel extends model } /** + * 检查流程。 * Check weither process or not. * * @access public * @return array */ - public function checkProcess() + public function checkProcess(): array { $fromVersion = $this->config->installedVersion; $needProcess = array(); if(strpos($fromVersion, 'ipd') !== false) return $needProcess; - if(strpos($fromVersion, 'max') === false and strpos($fromVersion, 'biz') === false and (strpos($fromVersion, 'pro') === false ? version_compare($fromVersion, '8.3', '<') : version_compare($fromVersion, 'pro5.4', '<'))) $needProcess['updateFile'] = 'process'; - if(strpos($fromVersion, 'max') === false and $this->config->systemMode == 'new') + if(strpos($fromVersion, 'max') === false && strpos($fromVersion, 'biz') === false && (strpos($fromVersion, 'pro') === false ? version_compare($fromVersion, '8.3', '<') : version_compare($fromVersion, 'pro5.4', '<'))) $needProcess['updateFile'] = 'process'; + if(strpos($fromVersion, 'max') === false && $this->config->systemMode == 'new') { if(strpos($fromVersion, 'pro') !== false) { diff --git a/module/upgrade/test/model/checkprocess.php b/module/upgrade/test/model/checkprocess.php new file mode 100644 index 0000000000..9166d965f0 --- /dev/null +++ b/module/upgrade/test/model/checkprocess.php @@ -0,0 +1,54 @@ +#!/usr/bin/env php +checkProcess(); +cid=1 + +- 测试版本 18.1 管理模式 new 的流程 @0 +- 测试版本 18.1 管理模式 classic 的流程 @0 +- 测试版本 pro10.1 管理模式 new 的流程 @changeEngine:notice +- 测试版本 pro10.1 管理模式 classic 的流程 @changeEngine:notice +- 测试版本 pro3.1 管理模式 new 的流程 @updateFile:process;search:notice;changeEngine:notice +- 测试版本 pro3.1 管理模式 classic 的流程 @updateFile:process;changeEngine:notice +- 测试版本 biz4.1 管理模式 new 的流程 @search:notice;changeEngine:notice +- 测试版本 biz4.1 管理模式 classic 的流程 @changeEngine:notice +- 测试版本 biz6.1 管理模式 new 的流程 @changeEngine:notice +- 测试版本 biz6.1 管理模式 classic 的流程 @changeEngine:notice +- 测试版本 max4.3 管理模式 new 的流程 @0 +- 测试版本 max4.3 管理模式 classic 的流程 @0 +- 测试版本 ipd1.1 管理模式 new 的流程 @0 +- 测试版本 ipd1.1 管理模式 classic 的流程 @0 + +**/ + +include dirname(__FILE__, 5) . '/test/lib/init.php'; +include dirname(__FILE__, 2) . '/upgrade.class.php'; + +zdTable('user')->config('user')->gen(5); + +su('admin'); + +$upgrade = new upgradeTest(); + +$emptyErrors = array(); + +$versions = array('18.1', 'pro10.1', 'pro3.1', 'biz4.1', 'biz6.1', 'max4.3', 'ipd1.1'); +$systemMode = array('new', 'classic'); + +r($upgrade->checkProcessTest($versions[0], $systemMode[0])) && p() && e('0'); // 测试版本 18.1 管理模式 new 的流程 +r($upgrade->checkProcessTest($versions[0], $systemMode[1])) && p() && e('0'); // 测试版本 18.1 管理模式 classic 的流程 +r($upgrade->checkProcessTest($versions[1], $systemMode[0])) && p() && e('changeEngine:notice'); // 测试版本 pro10.1 管理模式 new 的流程 +r($upgrade->checkProcessTest($versions[1], $systemMode[1])) && p() && e('changeEngine:notice'); // 测试版本 pro10.1 管理模式 classic 的流程 +r($upgrade->checkProcessTest($versions[2], $systemMode[0])) && p() && e('updateFile:process;search:notice;changeEngine:notice'); // 测试版本 pro3.1 管理模式 new 的流程 +r($upgrade->checkProcessTest($versions[2], $systemMode[1])) && p() && e('updateFile:process;changeEngine:notice'); // 测试版本 pro3.1 管理模式 classic 的流程 +r($upgrade->checkProcessTest($versions[3], $systemMode[0])) && p() && e('search:notice;changeEngine:notice'); // 测试版本 biz4.1 管理模式 new 的流程 +r($upgrade->checkProcessTest($versions[3], $systemMode[1])) && p() && e('changeEngine:notice'); // 测试版本 biz4.1 管理模式 classic 的流程 +r($upgrade->checkProcessTest($versions[4], $systemMode[0])) && p() && e('changeEngine:notice'); // 测试版本 biz6.1 管理模式 new 的流程 +r($upgrade->checkProcessTest($versions[4], $systemMode[1])) && p() && e('changeEngine:notice'); // 测试版本 biz6.1 管理模式 classic 的流程 +r($upgrade->checkProcessTest($versions[5], $systemMode[0])) && p() && e('0'); // 测试版本 max4.3 管理模式 new 的流程 +r($upgrade->checkProcessTest($versions[5], $systemMode[1])) && p() && e('0'); // 测试版本 max4.3 管理模式 classic 的流程 +r($upgrade->checkProcessTest($versions[6], $systemMode[0])) && p() && e('0'); // 测试版本 ipd1.1 管理模式 new 的流程 +r($upgrade->checkProcessTest($versions[6], $systemMode[1])) && p() && e('0'); // 测试版本 ipd1.1 管理模式 classic 的流程 diff --git a/module/upgrade/test/upgrade.class.php b/module/upgrade/test/upgrade.class.php index 358f1206e9..223bcf2ea0 100644 --- a/module/upgrade/test/upgrade.class.php +++ b/module/upgrade/test/upgrade.class.php @@ -220,4 +220,24 @@ class upgradeTest $return = $this->objectModel->getError(); return implode(',', $return); } + + /** + * 测试检查流程。 + * Test check weither process or not. + * + * @param string $installedVersion + * @param string $systemMode + * @access public + * @return string + */ + public function checkProcessTest(string $installedVersion, string $systemMode): string + { + global $tester; + $tester->config->installedVersion = $installedVersion; + $tester->config->systemMode = $systemMode; + $process = $this->objectModel->checkProcess(); + $return = ''; + foreach($process as $key => $value) $return .= "{$key}:{$value};"; + return trim($return, ';'); + } }