summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/app.php8
-rw-r--r--lib/private/app/dependencyanalyzer.php2
-rw-r--r--tests/lib/app.php53
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
+ ),
);
}