summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Reschke <lukas@owncloud.com>2016-05-09 11:25:58 +0200
committerLukas Reschke <lukas@owncloud.com>2016-05-09 11:25:58 +0200
commit8b428d84c0666d3ded46c20965784b2f5f5369fb (patch)
treebdbe06e79f1f0f1337b7025147430cb723250e76
parenta502de0d28c6c4d7ddd23f40ef0ab49f4782988a (diff)
downloadnextcloud-server-8b428d84c0666d3ded46c20965784b2f5f5369fb.tar.gz
nextcloud-server-8b428d84c0666d3ded46c20965784b2f5f5369fb.zip
Make update server URL configurable
Currently testing the updates is a big problem and not really super easy possible. Since we now have a new updater server we should also make this configurable so that people can properly test updates.
-rw-r--r--config/config.sample.php5
-rw-r--r--lib/private/Updater/VersionCheck.php8
-rw-r--r--tests/lib/updater/versioncheck.php90
3 files changed, 38 insertions, 65 deletions
diff --git a/config/config.sample.php b/config/config.sample.php
index db662cfd74f..0027a533368 100644
--- a/config/config.sample.php
+++ b/config/config.sample.php
@@ -472,6 +472,11 @@ $CONFIG = array(
'updatechecker' => true,
/**
+ * URL that ownCloud should use to look for updates
+ */
+'updater.server.url' => 'https://updates.owncloud.com/server/',
+
+/**
* Is ownCloud connected to the Internet or running in a closed network?
*/
'has_internet_connection' => true,
diff --git a/lib/private/Updater/VersionCheck.php b/lib/private/Updater/VersionCheck.php
index e42a1e2a40c..7b330b53686 100644
--- a/lib/private/Updater/VersionCheck.php
+++ b/lib/private/Updater/VersionCheck.php
@@ -61,19 +61,15 @@ class VersionCheck {
/**
* Check if a new version is available
*
- * @param string $updaterUrl the url to check, i.e. 'http://apps.owncloud.com/updater.php'
* @return array|bool
*/
- public function check($updaterUrl = null) {
-
+ public function check() {
// Look up the cache - it is invalidated all 30 minutes
if (((int)$this->config->getAppValue('core', 'lastupdatedat') + 1800) > time()) {
return json_decode($this->config->getAppValue('core', 'lastupdateResult'), true);
}
- if (is_null($updaterUrl)) {
- $updaterUrl = 'https://updates.owncloud.com/server/';
- }
+ $updaterUrl = $this->config->getSystemValue('updater.server.url', 'https://updates.owncloud.com/server/');
$this->config->setAppValue('core', 'lastupdatedat', time());
diff --git a/tests/lib/updater/versioncheck.php b/tests/lib/updater/versioncheck.php
index 4613581a75f..2122ca28800 100644
--- a/tests/lib/updater/versioncheck.php
+++ b/tests/lib/updater/versioncheck.php
@@ -90,20 +90,25 @@ class VersionCheckTest extends \Test\TestCase {
->will($this->returnValue(0));
$this->config
->expects($this->at(1))
+ ->method('getSystemValue')
+ ->with('updater.server.url', 'https://updates.owncloud.com/server/')
+ ->willReturn('https://updates.owncloud.com/server/');
+ $this->config
+ ->expects($this->at(2))
->method('setAppValue')
->with('core', 'lastupdatedat', $this->isType('integer'));
$this->config
- ->expects($this->at(3))
+ ->expects($this->at(4))
->method('getAppValue')
->with('core', 'installedat')
->will($this->returnValue('installedat'));
$this->config
- ->expects($this->at(4))
+ ->expects($this->at(5))
->method('getAppValue')
->with('core', 'lastupdatedat')
->will($this->returnValue('lastupdatedat'));
$this->config
- ->expects($this->at(5))
+ ->expects($this->at(6))
->method('setAppValue')
->with('core', 'lastupdateResult', json_encode($expectedResult));
@@ -131,20 +136,25 @@ class VersionCheckTest extends \Test\TestCase {
->will($this->returnValue(0));
$this->config
->expects($this->at(1))
+ ->method('getSystemValue')
+ ->with('updater.server.url', 'https://updates.owncloud.com/server/')
+ ->willReturn('https://updates.owncloud.com/server/');
+ $this->config
+ ->expects($this->at(2))
->method('setAppValue')
->with('core', 'lastupdatedat', $this->isType('integer'));
$this->config
- ->expects($this->at(3))
+ ->expects($this->at(4))
->method('getAppValue')
->with('core', 'installedat')
->will($this->returnValue('installedat'));
$this->config
- ->expects($this->at(4))
+ ->expects($this->at(5))
->method('getAppValue')
->with('core', 'lastupdatedat')
->will($this->returnValue('lastupdatedat'));
$this->config
- ->expects($this->at(5))
+ ->expects($this->at(6))
->method('setAppValue')
->with('core', 'lastupdateResult', 'false');
@@ -158,54 +168,6 @@ class VersionCheckTest extends \Test\TestCase {
$this->assertSame([], $this->updater->check());
}
- public function testCheckWithUpdateUrl() {
- $expectedResult = [
- 'version' => '8.0.4.2',
- 'versionstring' => 'ownCloud 8.0.4',
- 'url' => 'https://download.owncloud.org/community/owncloud-8.0.4.zip',
- 'web' => 'http://doc.owncloud.org/server/8.0/admin_manual/maintenance/upgrade.html',
- ];
-
- $this->config
- ->expects($this->at(0))
- ->method('getAppValue')
- ->with('core', 'lastupdatedat')
- ->will($this->returnValue(0));
- $this->config
- ->expects($this->at(1))
- ->method('setAppValue')
- ->with('core', 'lastupdatedat', $this->isType('integer'));
- $this->config
- ->expects($this->at(3))
- ->method('getAppValue')
- ->with('core', 'installedat')
- ->will($this->returnValue('installedat'));
- $this->config
- ->expects($this->at(4))
- ->method('getAppValue')
- ->with('core', 'lastupdatedat')
- ->will($this->returnValue('lastupdatedat'));
- $this->config
- ->expects($this->at(5))
- ->method('setAppValue')
- ->with('core', 'lastupdateResult', json_encode($expectedResult));
-
- $updateXml = '<?xml version="1.0"?>
-<owncloud>
- <version>8.0.4.2</version>
- <versionstring>ownCloud 8.0.4</versionstring>
- <url>https://download.owncloud.org/community/owncloud-8.0.4.zip</url>
- <web>http://doc.owncloud.org/server/8.0/admin_manual/maintenance/upgrade.html</web>
-</owncloud>';
- $this->updater
- ->expects($this->once())
- ->method('getUrlContent')
- ->with($this->buildUpdateUrl('https://myupdater.com/'))
- ->will($this->returnValue($updateXml));
-
- $this->assertSame($expectedResult, $this->updater->check('https://myupdater.com/'));
- }
-
public function testCheckWithEmptyValidXmlResponse() {
$expectedResult = [
'version' => '',
@@ -221,15 +183,20 @@ class VersionCheckTest extends \Test\TestCase {
->will($this->returnValue(0));
$this->config
->expects($this->at(1))
+ ->method('getSystemValue')
+ ->with('updater.server.url', 'https://updates.owncloud.com/server/')
+ ->willReturn('https://updates.owncloud.com/server/');
+ $this->config
+ ->expects($this->at(2))
->method('setAppValue')
->with('core', 'lastupdatedat', $this->isType('integer'));
$this->config
- ->expects($this->at(3))
+ ->expects($this->at(4))
->method('getAppValue')
->with('core', 'installedat')
->will($this->returnValue('installedat'));
$this->config
- ->expects($this->at(4))
+ ->expects($this->at(5))
->method('getAppValue')
->with('core', 'lastupdatedat')
->will($this->returnValue('lastupdatedat'));
@@ -260,20 +227,25 @@ class VersionCheckTest extends \Test\TestCase {
->will($this->returnValue(0));
$this->config
->expects($this->at(1))
+ ->method('getSystemValue')
+ ->with('updater.server.url', 'https://updates.owncloud.com/server/')
+ ->willReturn('https://updates.owncloud.com/server/');
+ $this->config
+ ->expects($this->at(2))
->method('setAppValue')
->with('core', 'lastupdatedat', $this->isType('integer'));
$this->config
- ->expects($this->at(3))
+ ->expects($this->at(4))
->method('getAppValue')
->with('core', 'installedat')
->will($this->returnValue('installedat'));
$this->config
- ->expects($this->at(4))
+ ->expects($this->at(5))
->method('getAppValue')
->with('core', 'lastupdatedat')
->will($this->returnValue('lastupdatedat'));
$this->config
- ->expects($this->at(5))
+ ->expects($this->at(6))
->method('setAppValue')
->with('core', 'lastupdateResult', json_encode($expectedResult));