summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2017-12-18 21:40:17 +0100
committerMorris Jobke <hey@morrisjobke.de>2017-12-18 21:48:58 +0100
commit1beffa058a493a0c9f36a0280fb9e5e354e0d066 (patch)
tree84318e9a3029ec21915100dcef0f57710bd5bd7a /tests
parent3da92a9a781a4f16ef9cf14aebb47a6f44945fd8 (diff)
downloadnextcloud-server-1beffa058a493a0c9f36a0280fb9e5e354e0d066.tar.gz
nextcloud-server-1beffa058a493a0c9f36a0280fb9e5e354e0d066.zip
Cache final result of update check
If the parsed data is not a valid response we should not cache it and only cache the preprocessed result set. Fixes #7442 Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Diffstat (limited to 'tests')
-rw-r--r--tests/lib/Updater/VersionCheckTest.php53
1 files changed, 52 insertions, 1 deletions
diff --git a/tests/lib/Updater/VersionCheckTest.php b/tests/lib/Updater/VersionCheckTest.php
index ff04aa17681..89a335722d7 100644
--- a/tests/lib/Updater/VersionCheckTest.php
+++ b/tests/lib/Updater/VersionCheckTest.php
@@ -161,7 +161,7 @@ class VersionCheckTest extends \Test\TestCase {
$this->config
->expects($this->at(6))
->method('setAppValue')
- ->with('core', 'lastupdateResult', 'false');
+ ->with('core', 'lastupdateResult', '[]');
$updateXml = 'Invalid XML Response!';
$this->updater
@@ -265,4 +265,55 @@ class VersionCheckTest extends \Test\TestCase {
$this->assertSame($expectedResult, $this->updater->check());
}
+
+ public function testCheckWithMissingAttributeXmlResponse() {
+ $expectedResult = [
+ 'version' => '',
+ 'versionstring' => '',
+ 'url' => '',
+ 'web' => '',
+ 'autoupdater' => '',
+ ];
+
+ $this->config
+ ->expects($this->at(0))
+ ->method('getAppValue')
+ ->with('core', 'lastupdatedat')
+ ->will($this->returnValue(0));
+ $this->config
+ ->expects($this->at(1))
+ ->method('getSystemValue')
+ ->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
+ ->willReturnArgument(1);
+ $this->config
+ ->expects($this->at(2))
+ ->method('setAppValue')
+ ->with('core', 'lastupdatedat', $this->isType('integer'));
+ $this->config
+ ->expects($this->at(4))
+ ->method('getAppValue')
+ ->with('core', 'installedat')
+ ->will($this->returnValue('installedat'));
+ $this->config
+ ->expects($this->at(5))
+ ->method('getAppValue')
+ ->with('core', 'lastupdatedat')
+ ->will($this->returnValue('lastupdatedat'));
+
+ // missing autoupdater element should still not fail
+ $updateXml = '<?xml version="1.0"?>
+<owncloud>
+ <version></version>
+ <versionstring></versionstring>
+ <url></url>
+ <web></web>
+</owncloud>';
+ $this->updater
+ ->expects($this->once())
+ ->method('getUrlContent')
+ ->with($this->buildUpdateUrl('https://updates.nextcloud.com/updater_server/'))
+ ->will($this->returnValue($updateXml));
+
+ $this->assertSame($expectedResult, $this->updater->check());
+ }
}