Check new and old ways of required oC version for app compatibility

This commit is contained in:
Joas Schilling 2015-01-14 12:48:59 +01:00
parent 9b7421972b
commit 4b3a3dc0bb
3 changed files with 59 additions and 4 deletions

View File

@ -1022,13 +1022,17 @@ class OC_App {
public static function isAppCompatible($ocVersion, $appInfo){ public static function isAppCompatible($ocVersion, $appInfo){
$requireMin = ''; $requireMin = '';
$requireMax = ''; $requireMax = '';
if (isset($appInfo['requiremin'])) { if (isset($appInfo['dependencies']['owncloud']['@attributes']['min-version'])) {
$requireMin = $appInfo['dependencies']['owncloud']['@attributes']['min-version'];
} else if (isset($appInfo['requiremin'])) {
$requireMin = $appInfo['requiremin']; $requireMin = $appInfo['requiremin'];
} else if (isset($appInfo['require'])) { } else if (isset($appInfo['require'])) {
$requireMin = $appInfo['require']; $requireMin = $appInfo['require'];
} }
if (isset($appInfo['requiremax'])) { if (isset($appInfo['dependencies']['owncloud']['@attributes']['max-version'])) {
$requireMax = $appInfo['dependencies']['owncloud']['@attributes']['max-version'];
} else if (isset($appInfo['requiremax'])) {
$requireMax = $appInfo['requiremax']; $requireMax = $appInfo['requiremax'];
} }

View File

@ -182,6 +182,8 @@ class DependencyAnalyzer {
$minVersion = $dependencies['owncloud']['@attributes']['min-version']; $minVersion = $dependencies['owncloud']['@attributes']['min-version'];
} elseif (isset($appInfo['requiremin'])) { } elseif (isset($appInfo['requiremin'])) {
$minVersion = $appInfo['requiremin']; $minVersion = $appInfo['requiremin'];
} elseif (isset($appInfo['require'])) {
$minVersion = $appInfo['require'];
} }
$maxVersion = null; $maxVersion = null;
if (isset($dependencies['owncloud']['@attributes']['max-version'])) { if (isset($dependencies['owncloud']['@attributes']['max-version'])) {

View File

@ -112,7 +112,7 @@ class Test_App extends \Test\TestCase {
), ),
true true
), ),
// multiple OC number // multiple OC number
array( array(
'4.3.1', '4.3.1',
array( array(
@ -120,7 +120,7 @@ class Test_App extends \Test\TestCase {
), ),
true true
), ),
// single app number // single app number
array( array(
'4', '4',
array( array(
@ -208,6 +208,55 @@ class Test_App extends \Test\TestCase {
), ),
true true
), ),
// dependencies versions before require*
array(
'6.0.0.0',
array(
'requiremin' => '5.0',
'requiremax' => '7.0',
'dependencies' => array(
'owncloud' => array(
'@attributes' => array(
'min-version' => '7.0',
'max-version' => '7.0',
),
),
),
),
false
),
array(
'6.0.0.0',
array(
'requiremin' => '5.0',
'requiremax' => '7.0',
'dependencies' => array(
'owncloud' => array(
'@attributes' => array(
'min-version' => '5.0',
'max-version' => '5.0',
),
),
),
),
false
),
array(
'6.0.0.0',
array(
'requiremin' => '5.0',
'requiremax' => '5.0',
'dependencies' => array(
'owncloud' => array(
'@attributes' => array(
'min-version' => '5.0',
'max-version' => '7.0',
),
),
),
),
true
),
); );
} }