]> source.dussan.org Git - nextcloud-server.git/commitdiff
Do not check for updates if we have no internet 18037/head
authorRoeland Jago Douma <roeland@famdouma.nl>
Tue, 19 Nov 2019 10:01:00 +0000 (11:01 +0100)
committerBackportbot <backportbot-noreply@rullzer.com>
Wed, 20 Nov 2019 19:56:06 +0000 (19:56 +0000)
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
lib/private/Updater/VersionCheck.php
tests/lib/Updater/VersionCheckTest.php

index 3cbd7061fe0c7f148fdb8885ce105265d92e4a05..446e04dc5ed9c98600bd02cb3592ef008f8eba9c 100644 (file)
@@ -33,7 +33,7 @@ class VersionCheck {
 
        /** @var IClientService */
        private $clientService;
-       
+
        /** @var IConfig */
        private $config;
 
@@ -54,6 +54,11 @@ class VersionCheck {
         * @return array|bool
         */
        public function check() {
+               // If this server is set to have no internet connection this is all not needed
+               if (!$this->config->getSystemValueBool('has_internet_connection', true)) {
+                       return false;
+               }
+
                // 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);
index 6da4fd2c3b2d1eb316acf72e96e0d6f9e5613f7f..eef16eeb520374b3fb5ad4221dfb1027d59d25f4 100644 (file)
@@ -67,11 +67,16 @@ class VersionCheckTest extends \Test\TestCase {
 
                $this->config
                        ->expects($this->at(0))
+                       ->method('getSystemValueBool')
+                       ->with('has_internet_connection', true)
+                       ->willReturn(true);
+               $this->config
+                       ->expects($this->at(1))
                        ->method('getAppValue')
                        ->with('core', 'lastupdatedat')
                        ->will($this->returnValue(time()));
                $this->config
-                       ->expects($this->at(1))
+                       ->expects($this->at(2))
                        ->method('getAppValue')
                        ->with('core', 'lastupdateResult')
                        ->will($this->returnValue(json_encode($expectedResult)));
@@ -92,30 +97,35 @@ class VersionCheckTest extends \Test\TestCase {
 
                $this->config
                        ->expects($this->at(0))
+                       ->method('getSystemValueBool')
+                       ->with('has_internet_connection', true)
+                       ->willReturn(true);
+               $this->config
+                       ->expects($this->at(1))
                        ->method('getAppValue')
                        ->with('core', 'lastupdatedat')
                        ->will($this->returnValue(0));
                $this->config
-                       ->expects($this->at(1))
+                       ->expects($this->at(2))
                        ->method('getSystemValue')
                        ->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
                        ->willReturnArgument(1);
                $this->config
-                       ->expects($this->at(2))
+                       ->expects($this->at(3))
                        ->method('setAppValue')
                        ->with('core', 'lastupdatedat', $this->isType('integer'));
                $this->config
-                       ->expects($this->at(4))
+                       ->expects($this->at(5))
                        ->method('getAppValue')
                        ->with('core', 'installedat')
                        ->will($this->returnValue('installedat'));
                $this->config
-                       ->expects($this->at(5))
+                       ->expects($this->at(6))
                        ->method('getAppValue')
                        ->with('core', 'lastupdatedat')
                        ->will($this->returnValue('lastupdatedat'));
                $this->config
-                       ->expects($this->at(6))
+                       ->expects($this->at(7))
                        ->method('setAppValue')
                        ->with('core', 'lastupdateResult', json_encode($expectedResult));
 
@@ -140,30 +150,35 @@ class VersionCheckTest extends \Test\TestCase {
        public function testCheckWithInvalidXml() {
                $this->config
                        ->expects($this->at(0))
+                       ->method('getSystemValueBool')
+                       ->with('has_internet_connection', true)
+                       ->willReturn(true);
+               $this->config
+                       ->expects($this->at(1))
                        ->method('getAppValue')
                        ->with('core', 'lastupdatedat')
                        ->will($this->returnValue(0));
                $this->config
-                       ->expects($this->at(1))
+                       ->expects($this->at(2))
                        ->method('getSystemValue')
                        ->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
                        ->willReturnArgument(1);
                $this->config
-                       ->expects($this->at(2))
+                       ->expects($this->at(3))
                        ->method('setAppValue')
                        ->with('core', 'lastupdatedat', $this->isType('integer'));
                $this->config
-                       ->expects($this->at(4))
+                       ->expects($this->at(5))
                        ->method('getAppValue')
                        ->with('core', 'installedat')
                        ->will($this->returnValue('installedat'));
                $this->config
-                       ->expects($this->at(5))
+                       ->expects($this->at(6))
                        ->method('getAppValue')
                        ->with('core', 'lastupdatedat')
                        ->will($this->returnValue('lastupdatedat'));
                $this->config
-                       ->expects($this->at(6))
+                       ->expects($this->at(7))
                        ->method('setAppValue')
                        ->with('core', 'lastupdateResult', '[]');
 
@@ -190,25 +205,30 @@ class VersionCheckTest extends \Test\TestCase {
 
                $this->config
                        ->expects($this->at(0))
+                       ->method('getSystemValueBool')
+                       ->with('has_internet_connection', true)
+                       ->willReturn(true);
+               $this->config
+                       ->expects($this->at(1))
                        ->method('getAppValue')
                        ->with('core', 'lastupdatedat')
                        ->will($this->returnValue(0));
                $this->config
-                       ->expects($this->at(1))
+                       ->expects($this->at(2))
                        ->method('getSystemValue')
                        ->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
                        ->willReturnArgument(1);
                $this->config
-                       ->expects($this->at(2))
+                       ->expects($this->at(3))
                        ->method('setAppValue')
                        ->with('core', 'lastupdatedat', $this->isType('integer'));
                $this->config
-                       ->expects($this->at(4))
+                       ->expects($this->at(5))
                        ->method('getAppValue')
                        ->with('core', 'installedat')
                        ->will($this->returnValue('installedat'));
                $this->config
-                       ->expects($this->at(5))
+                       ->expects($this->at(6))
                        ->method('getAppValue')
                        ->with('core', 'lastupdatedat')
                        ->will($this->returnValue('lastupdatedat'));
@@ -235,30 +255,35 @@ class VersionCheckTest extends \Test\TestCase {
 
                $this->config
                        ->expects($this->at(0))
+                       ->method('getSystemValueBool')
+                       ->with('has_internet_connection', true)
+                       ->willReturn(true);
+               $this->config
+                       ->expects($this->at(1))
                        ->method('getAppValue')
                        ->with('core', 'lastupdatedat')
                        ->will($this->returnValue(0));
                $this->config
-                       ->expects($this->at(1))
+                       ->expects($this->at(2))
                        ->method('getSystemValue')
                        ->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
                        ->willReturnArgument(1);
                $this->config
-                       ->expects($this->at(2))
+                       ->expects($this->at(3))
                        ->method('setAppValue')
                        ->with('core', 'lastupdatedat', $this->isType('integer'));
                $this->config
-                       ->expects($this->at(4))
+                       ->expects($this->at(5))
                        ->method('getAppValue')
                        ->with('core', 'installedat')
                        ->will($this->returnValue('installedat'));
                $this->config
-                       ->expects($this->at(5))
+                       ->expects($this->at(6))
                        ->method('getAppValue')
                        ->with('core', 'lastupdatedat')
                        ->will($this->returnValue('lastupdatedat'));
                $this->config
-                       ->expects($this->at(6))
+                       ->expects($this->at(7))
                        ->method('setAppValue')
                        ->with('core', 'lastupdateResult', json_encode($expectedResult));
 
@@ -285,25 +310,30 @@ class VersionCheckTest extends \Test\TestCase {
 
                $this->config
                        ->expects($this->at(0))
+                       ->method('getSystemValueBool')
+                       ->with('has_internet_connection', true)
+                       ->willReturn(true);
+               $this->config
+                       ->expects($this->at(1))
                        ->method('getAppValue')
                        ->with('core', 'lastupdatedat')
                        ->will($this->returnValue(0));
                $this->config
-                       ->expects($this->at(1))
+                       ->expects($this->at(2))
                        ->method('getSystemValue')
                        ->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
                        ->willReturnArgument(1);
                $this->config
-                       ->expects($this->at(2))
+                       ->expects($this->at(3))
                        ->method('setAppValue')
                        ->with('core', 'lastupdatedat', $this->isType('integer'));
                $this->config
-                       ->expects($this->at(4))
+                       ->expects($this->at(5))
                        ->method('getAppValue')
                        ->with('core', 'installedat')
                        ->will($this->returnValue('installedat'));
                $this->config
-                       ->expects($this->at(5))
+                       ->expects($this->at(6))
                        ->method('getAppValue')
                        ->with('core', 'lastupdatedat')
                        ->will($this->returnValue('lastupdatedat'));
@@ -324,4 +354,14 @@ class VersionCheckTest extends \Test\TestCase {
 
                $this->assertSame($expectedResult, $this->updater->check());
        }
+
+       public function testNoInternet() {
+               $this->config
+                       ->expects($this->at(0))
+                       ->method('getSystemValueBool')
+                       ->with('has_internet_connection', true)
+                       ->willReturn(false);
+
+               $this->assertFalse($this->updater->check());
+       }
 }