Skip to content

Commit

Permalink
Merge pull request nextcloud#556 from nextcloud/nextcloud-version-check
Browse files Browse the repository at this point in the history
Allow apps to check for a given nextcloud version
  • Loading branch information
MorrisJobke authored Jul 29, 2016
2 parents 085861f + 428dc91 commit 8a27e32
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 3 deletions.
26 changes: 24 additions & 2 deletions lib/private/App/DependencyAnalyzer.php
Original file line number Diff line number Diff line change
Expand Up @@ -304,17 +304,39 @@ private function analyzeOC(array $dependencies, array $appInfo) {

if (!is_null($minVersion)) {
if ($this->compareSmaller($this->platform->getOcVersion(), $minVersion)) {
$missing[] = (string)$this->l->t('Server version %s or higher is required.', $minVersion);
$missing[] = (string)$this->l->t('Server version %s or higher is required.', $this->toVisibleVersion($minVersion));
}
}
if (!is_null($maxVersion)) {
if ($this->compareBigger($this->platform->getOcVersion(), $maxVersion)) {
$missing[] = (string)$this->l->t('Server version %s or lower is required.', $maxVersion);
$missing[] = (string)$this->l->t('Server version %s or lower is required.', $this->toVisibleVersion($maxVersion));
}
}
return $missing;
}

/**
* Map the internal version number to the Nextcloud version
*
* @param string $version
* @return string
*/
protected function toVisibleVersion($version) {
switch ($version) {
case '9.1':
return '10';
case '9.2':
return '11';
default:
if (strpos($version, '9.1.') === 0) {
$version = '10.0.' . substr($version, 4);
} else if (strpos($version, '9.2.') === 0) {
$version = '11.0.' . substr($version, 4);
}
return $version;
}
}

/**
* @param $element
* @return mixed
Expand Down
4 changes: 3 additions & 1 deletion tests/lib/App/DependencyAnalyzerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

class DependencyAnalyzerTest extends TestCase {

/** @var Platform */
/** @var Platform|\PHPUnit_Framework_MockObject_MockObject */
private $platformMock;

/** @var IL10N */
Expand Down Expand Up @@ -206,6 +206,8 @@ function providesOC() {
array(array(), array('@attributes' => array('min-version' => '8.0.2', 'max-version' => '8.0.2'))),
array(array('Server version 8.0.3 or higher is required.'), array('@attributes' => array('min-version' => '8.0.3'))),
array(array('Server version 9 or higher is required.'), array('@attributes' => array('min-version' => '9'))),
array(array('Server version 10 or higher is required.'), array('@attributes' => array('min-version' => '9.1'))),
array(array('Server version 11 or higher is required.'), array('@attributes' => array('min-version' => '9.2'))),
[['Server version 8.0.1 or lower is required.'], ['@attributes' => ['max-version' => '8.0.1']]],
);
}
Expand Down

0 comments on commit 8a27e32

Please sign in to comment.