diff options
author | Joas Schilling <nickvergessen@gmx.de> | 2015-01-14 12:48:59 +0100 |
---|---|---|
committer | Joas Schilling <nickvergessen@gmx.de> | 2015-01-14 13:02:02 +0100 |
commit | 4b3a3dc0bb970c4de8ef1c4ea04f0d6f0aab8a2a (patch) | |
tree | 93d9662d5fb9ed6cea97198f01806eaf6f5c8a1b | |
parent | 9b7421972b492b287999e8644c78cb98f1d03935 (diff) | |
download | nextcloud-server-4b3a3dc0bb970c4de8ef1c4ea04f0d6f0aab8a2a.tar.gz nextcloud-server-4b3a3dc0bb970c4de8ef1c4ea04f0d6f0aab8a2a.zip |
Check new and old ways of required oC version for app compatibility
-rw-r--r-- | lib/private/app.php | 8 | ||||
-rw-r--r-- | lib/private/app/dependencyanalyzer.php | 2 | ||||
-rw-r--r-- | tests/lib/app.php | 53 |
3 files changed, 59 insertions, 4 deletions
diff --git a/lib/private/app.php b/lib/private/app.php index ecdc8ca8320..34226260689 100644 --- a/lib/private/app.php +++ b/lib/private/app.php @@ -1022,13 +1022,17 @@ class OC_App { public static function isAppCompatible($ocVersion, $appInfo){ $requireMin = ''; $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']; } else if (isset($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']; } diff --git a/lib/private/app/dependencyanalyzer.php b/lib/private/app/dependencyanalyzer.php index ae40e8523fc..e4564c4e036 100644 --- a/lib/private/app/dependencyanalyzer.php +++ b/lib/private/app/dependencyanalyzer.php @@ -182,6 +182,8 @@ class DependencyAnalyzer { $minVersion = $dependencies['owncloud']['@attributes']['min-version']; } elseif (isset($appInfo['requiremin'])) { $minVersion = $appInfo['requiremin']; + } elseif (isset($appInfo['require'])) { + $minVersion = $appInfo['require']; } $maxVersion = null; if (isset($dependencies['owncloud']['@attributes']['max-version'])) { diff --git a/tests/lib/app.php b/tests/lib/app.php index 23c1a340e03..1bd350f216a 100644 --- a/tests/lib/app.php +++ b/tests/lib/app.php @@ -112,7 +112,7 @@ class Test_App extends \Test\TestCase { ), true ), - // multiple OC number + // multiple OC number array( '4.3.1', array( @@ -120,7 +120,7 @@ class Test_App extends \Test\TestCase { ), true ), - // single app number + // single app number array( '4', array( @@ -208,6 +208,55 @@ class Test_App extends \Test\TestCase { ), 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 + ), ); } |