aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/Updater
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/Updater')
-rw-r--r--tests/lib/Updater/ChangesCheckTest.php94
-rw-r--r--tests/lib/Updater/ReleaseMetadataTest.php207
-rw-r--r--tests/lib/Updater/VersionCheckTest.php277
3 files changed, 383 insertions, 195 deletions
diff --git a/tests/lib/Updater/ChangesCheckTest.php b/tests/lib/Updater/ChangesCheckTest.php
index 02da6d08401..dd0d97a9e80 100644
--- a/tests/lib/Updater/ChangesCheckTest.php
+++ b/tests/lib/Updater/ChangesCheckTest.php
@@ -3,38 +3,21 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2018 Arthur Schiwon <blizzz@arthur-schiwon.de>
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace Test\Updater;
+use OC\Updater\Changes;
use OC\Updater\ChangesCheck;
use OC\Updater\ChangesMapper;
-use OC\Updater\ChangesResult;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\Http\Client\IClient;
use OCP\Http\Client\IClientService;
use OCP\Http\Client\IResponse;
-use Test\TestCase;
use Psr\Log\LoggerInterface;
+use Test\TestCase;
class ChangesCheckTest extends TestCase {
/** @var IClientService|\PHPUnit\Framework\MockObject\MockObject */
@@ -59,7 +42,7 @@ class ChangesCheckTest extends TestCase {
$this->checker = new ChangesCheck($this->clientService, $this->mapper, $this->logger);
}
- public function statusCodeProvider():array {
+ public static function statusCodeProvider(): array {
return [
[200, ChangesCheck::RESPONSE_HAS_CONTENT],
[304, ChangesCheck::RESPONSE_USE_CACHE],
@@ -68,10 +51,8 @@ class ChangesCheckTest extends TestCase {
];
}
- /**
- * @dataProvider statusCodeProvider
- */
- public function testEvaluateResponse(int $statusCode, int $expected) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('statusCodeProvider')]
+ public function testEvaluateResponse(int $statusCode, int $expected): void {
$response = $this->createMock(IResponse::class);
$response->expects($this->atLeastOnce())
->method('getStatusCode')
@@ -86,13 +67,15 @@ class ChangesCheckTest extends TestCase {
$this->assertSame($expected, $evaluation);
}
- public function testCacheResultInsert() {
+ public function testCacheResultInsert(): void {
$version = '13.0.4';
- $entry = $this->createMock(ChangesResult::class);
+ $entry = $this->createMock(Changes::class);
$entry->expects($this->exactly(2))
->method('__call')
- ->withConsecutive(['getVersion'], ['setVersion', [$version]])
- ->willReturnOnConsecutiveCalls('', null);
+ ->willReturnMap([
+ ['getVersion', [], ''],
+ ['setVersion', [$version], null],
+ ]);
$this->mapper->expects($this->once())
->method('insert');
@@ -102,9 +85,9 @@ class ChangesCheckTest extends TestCase {
$this->invokePrivate($this->checker, 'cacheResult', [$entry, $version]);
}
- public function testCacheResultUpdate() {
+ public function testCacheResultUpdate(): void {
$version = '13.0.4';
- $entry = $this->createMock(ChangesResult::class);
+ $entry = $this->createMock(Changes::class);
$entry->expects($this->once())
->method('__call')
->willReturn($version);
@@ -117,7 +100,7 @@ class ChangesCheckTest extends TestCase {
$this->invokePrivate($this->checker, 'cacheResult', [$entry, $version]);
}
- public function changesXMLProvider(): array {
+ public static function changesXMLProvider(): array {
return [
[ # 0 - full example
'<?xml version="1.0" encoding="utf-8" ?>
@@ -286,27 +269,23 @@ class ChangesCheckTest extends TestCase {
];
}
- /**
- * @dataProvider changesXMLProvider
- */
- public function testExtractData(string $body, array $expected) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('changesXMLProvider')]
+ public function testExtractData(string $body, array $expected): void {
$actual = $this->invokePrivate($this->checker, 'extractData', [$body]);
$this->assertSame($expected, $actual);
}
- public function etagProvider() {
+ public static function etagProvider() {
return [
[''],
['a27aab83d8205d73978435076e53d143']
];
}
- /**
- * @dataProvider etagProvider
- */
- public function testQueryChangesServer(string $etag) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('etagProvider')]
+ public function testQueryChangesServer(string $etag): void {
$uri = 'https://changes.nextcloud.server/?13.0.5';
- $entry = $this->createMock(ChangesResult::class);
+ $entry = $this->createMock(Changes::class);
$entry->expects($this->any())
->method('__call')
->willReturn($etag);
@@ -327,7 +306,7 @@ class ChangesCheckTest extends TestCase {
$this->assertInstanceOf(IResponse::class, $response);
}
- public function versionProvider(): array {
+ public static function versionProvider(): array {
return [
['13.0.7', '13.0.7'],
['13.0.7.3', '13.0.7'],
@@ -338,30 +317,25 @@ class ChangesCheckTest extends TestCase {
];
}
- /**
- * @dataProvider versionProvider
- */
- public function testNormalizeVersion(string $input, string $expected) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('versionProvider')]
+ public function testNormalizeVersion(string $input, string $expected): void {
$normalized = $this->checker->normalizeVersion($input);
$this->assertSame($expected, $normalized);
}
- public function changeDataProvider():array {
- $testDataFound = $testDataNotFound = $this->versionProvider();
- array_walk($testDataFound, function (&$params) {
+ public static function changeDataProvider():array {
+ $testDataFound = $testDataNotFound = self::versionProvider();
+ array_walk($testDataFound, static function (&$params): void {
$params[] = true;
});
- array_walk($testDataNotFound, function (&$params) {
+ array_walk($testDataNotFound, static function (&$params): void {
$params[] = false;
});
return array_merge($testDataFound, $testDataNotFound);
}
- /**
- * @dataProvider changeDataProvider
- *
- */
- public function testGetChangesForVersion(string $inputVersion, string $normalizedVersion, bool $isFound) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('changeDataProvider')]
+ public function testGetChangesForVersion(string $inputVersion, string $normalizedVersion, bool $isFound): void {
$mocker = $this->mapper->expects($this->once())
->method('getChanges')
->with($normalizedVersion);
@@ -370,7 +344,7 @@ class ChangesCheckTest extends TestCase {
$this->expectException(DoesNotExistException::class);
$mocker->willThrowException(new DoesNotExistException('Changes info is not present'));
} else {
- $entry = $this->createMock(ChangesResult::class);
+ $entry = $this->createMock(Changes::class);
$entry->expects($this->once())
->method('__call')
->with('getData')
@@ -385,8 +359,8 @@ class ChangesCheckTest extends TestCase {
$this->assertTrue(isset($data['changelogURL']));
}
- public function testGetChangesForVersionEmptyData() {
- $entry = $this->createMock(ChangesResult::class);
+ public function testGetChangesForVersionEmptyData(): void {
+ $entry = $this->createMock(Changes::class);
$entry->expects($this->once())
->method('__call')
->with('getData')
diff --git a/tests/lib/Updater/ReleaseMetadataTest.php b/tests/lib/Updater/ReleaseMetadataTest.php
new file mode 100644
index 00000000000..e93d9fe64be
--- /dev/null
+++ b/tests/lib/Updater/ReleaseMetadataTest.php
@@ -0,0 +1,207 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+namespace Test\Updater;
+
+use OC\Updater\ReleaseMetadata;
+use OCP\Http\Client\IClient;
+use OCP\Http\Client\IClientService;
+use OCP\Http\Client\IResponse;
+use PHPUnit\Framework\MockObject\MockObject;
+
+class ReleaseMetadataTest extends \Test\TestCase {
+ private IClientService|MockObject $clientService;
+
+ protected function setUp(): void {
+ parent::setUp();
+ $this->clientService = $this->createMock(IClientService::class);
+ }
+
+ public function testDownloadMetadata(): void {
+ $client = $this->createMock(IClient::class);
+ $response = $this->createMock(IResponse::class);
+ $this->clientService->expects($this->once())
+ ->method('newClient')
+ ->with()
+ ->willReturn($client);
+ $client->expects($this->once())
+ ->method('get')
+ ->willReturn($response);
+ $response->expects($this->once())
+ ->method('getBody')
+ ->with()
+ ->willReturn($this->resultRequest());
+
+
+ $releaseMetadata = new ReleaseMetadata($this->clientService);
+ $this->assertSame(self::resultRequestArray(), $releaseMetadata->downloadMetadata('ouila'));
+ }
+
+ /**
+ *
+ * @param string $version
+ * @param string $url
+ */
+ #[\PHPUnit\Framework\Attributes\DataProvider('getMetadataUrlProvider')]
+ public function testGetMetadata(string $version, string $url): void {
+ $client = $this->createMock(IClient::class);
+ $response = $this->createMock(IResponse::class);
+ $this->clientService->expects($this->once())
+ ->method('newClient')
+ ->with()
+ ->willReturn($client);
+ $client->expects($this->once())
+ ->method('get')
+ ->with($url)
+ ->willReturn($response);
+
+ $response->expects($this->once())
+ ->method('getBody')
+ ->with()
+ ->willReturn('{}');
+
+ $releaseMetadata = new ReleaseMetadata($this->clientService);
+ $releaseMetadata->getMetadata($version);
+ }
+
+ /**
+ * @return array
+ */
+ public static function getMetadataUrlProvider(): array {
+ return [
+ [
+ '30.0.0',
+ 'https://download.nextcloud.com/server/releases/nextcloud-30.0.0.metadata'
+ ],
+ [
+ '30.0.0-beta1',
+ 'https://download.nextcloud.com/server/prereleases/nextcloud-30.0.0-beta1.metadata'
+ ],
+ [
+ '30',
+ 'https://download.nextcloud.com/server/releases/latest-30.metadata'
+ ]
+ ];
+ }
+
+ private static function resultRequest(): string {
+ return json_encode(self::resultRequestArray());
+ }
+
+ private static function resultRequestArray(): array {
+ return [
+ 'migrations' => [
+ 'core' => [],
+ 'apps' => [
+ 'testing' => [
+ '30000Date20240102030405' => [
+ 'class' => 'OCP\\Migration\\Attributes\\DropTable',
+ 'table' => 'old_table',
+ 'description' => '',
+ 'notes' => [],
+ 'columns' => []
+ ],
+ [
+ 'class' => 'OCP\\Migration\\Attributes\\CreateTable',
+ 'table' => 'new_table',
+ 'description' => 'Table is used to store things, but also to get more things',
+ 'notes' => [
+ 'this is a notice',
+ 'and another one, if really needed'
+ ],
+ 'columns' => []
+ ],
+ [
+ 'class' => 'OCP\\Migration\\Attributes\\AddColumn',
+ 'table' => 'my_table',
+ 'description' => '',
+ 'notes' => [],
+ 'name' => '',
+ 'type' => ''
+ ],
+ [
+ 'class' => 'OCP\\Migration\\Attributes\\AddColumn',
+ 'table' => 'my_table',
+ 'description' => '',
+ 'notes' => [],
+ 'name' => 'another_field',
+ 'type' => ''
+ ],
+ [
+ 'class' => 'OCP\\Migration\\Attributes\\AddColumn',
+ 'table' => 'other_table',
+ 'description' => '',
+ 'notes' => [],
+ 'name' => 'last_one',
+ 'type' => 'date'
+ ],
+ [
+ 'class' => 'OCP\\Migration\\Attributes\\AddIndex',
+ 'table' => 'my_table',
+ 'description' => '',
+ 'notes' => [],
+ 'type' => ''
+ ],
+ [
+ 'class' => 'OCP\\Migration\\Attributes\\AddIndex',
+ 'table' => 'my_table',
+ 'description' => '',
+ 'notes' => [],
+ 'type' => 'primary'
+ ],
+ [
+ 'class' => 'OCP\\Migration\\Attributes\\DropColumn',
+ 'table' => 'other_table',
+ 'description' => '',
+ 'notes' => [],
+ 'name' => '',
+ 'type' => ''
+ ],
+ [
+ 'class' => 'OCP\\Migration\\Attributes\\DropColumn',
+ 'table' => 'other_table',
+ 'description' => 'field is not used anymore and replaced by \'last_one\'',
+ 'notes' => [],
+ 'name' => 'old_column',
+ 'type' => ''
+ ],
+ [
+ 'class' => 'OCP\\Migration\\Attributes\\DropIndex',
+ 'table' => 'other_table',
+ 'description' => '',
+ 'notes' => [],
+ 'type' => ''
+ ],
+ [
+ 'class' => 'OCP\\Migration\\Attributes\\ModifyColumn',
+ 'table' => 'other_table',
+ 'description' => '',
+ 'notes' => [],
+ 'name' => '',
+ 'type' => ''
+ ],
+ [
+ 'class' => 'OCP\\Migration\\Attributes\\ModifyColumn',
+ 'table' => 'other_table',
+ 'description' => '',
+ 'notes' => [],
+ 'name' => 'this_field',
+ 'type' => ''
+ ],
+ [
+ 'class' => 'OCP\\Migration\\Attributes\\ModifyColumn',
+ 'table' => 'other_table',
+ 'description' => '',
+ 'notes' => [],
+ 'name' => 'this_field',
+ 'type' => 'bigint'
+ ]
+ ]
+ ]
+ ]
+ ];
+ }
+}
diff --git a/tests/lib/Updater/VersionCheckTest.php b/tests/lib/Updater/VersionCheckTest.php
index cc2b0a369aa..1936062a5d0 100644
--- a/tests/lib/Updater/VersionCheckTest.php
+++ b/tests/lib/Updater/VersionCheckTest.php
@@ -1,50 +1,62 @@
<?php
+
/**
- * @author Lukas Reschke <lukas@owncloud.com>
- * @author Victor Dubiniuk <dubiniuk@owncloud.com>
- *
- * @copyright Copyright (c) 2015, ownCloud, Inc.
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace Test\Updater;
use OC\Updater\VersionCheck;
use OCP\Http\Client\IClientService;
+use OCP\IAppConfig;
use OCP\IConfig;
-use OCP\Util;
+use OCP\IUserManager;
+use OCP\Server;
+use OCP\ServerVersion;
+use OCP\Support\Subscription\IRegistry;
+use Psr\Log\LoggerInterface;
class VersionCheckTest extends \Test\TestCase {
+ /** @var ServerVersion|\PHPUnit\Framework\MockObject\MockObject */
+ private $serverVersion;
/** @var IConfig| \PHPUnit\Framework\MockObject\MockObject */
private $config;
- /** @var VersionCheck | \PHPUnit\Framework\MockObject\MockObject*/
+ /** @var IAppConfig| \PHPUnit\Framework\MockObject\MockObject */
+ private $appConfig;
+ /** @var VersionCheck | \PHPUnit\Framework\MockObject\MockObject */
private $updater;
+ /** @var IRegistry | \PHPUnit\Framework\Mo2ckObject\MockObject */
+ private $registry;
+ /** @var LoggerInterface | \PHPUnit\Framework\Mo2ckObject\MockObject */
+ private $logger;
protected function setUp(): void {
parent::setUp();
- $this->config = $this->getMockBuilder(IConfig::class)
- ->disableOriginalConstructor()
- ->getMock();
- $clientService = $this->getMockBuilder(IClientService::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->serverVersion = $this->createMock(ServerVersion::class);
+ $this->config = $this->createMock(IConfig::class);
+ $this->appConfig = $this->createMock(IAppConfig::class);
+ $clientService = $this->createMock(IClientService::class);
+ $this->serverVersion->method('getChannel')->willReturn('git');
+
+ $this->registry = $this->createMock(IRegistry::class);
+ $this->registry
+ ->method('delegateHasValidSubscription')
+ ->willReturn(false);
+ $this->logger = $this->createMock(LoggerInterface::class);
$this->updater = $this->getMockBuilder(VersionCheck::class)
- ->setMethods(['getUrlContent'])
- ->setConstructorArgs([$clientService, $this->config])
+ ->onlyMethods(['getUrlContent'])
+ ->setConstructorArgs([
+ $this->serverVersion,
+ $clientService,
+ $this->config,
+ $this->appConfig,
+ $this->createMock(IUserManager::class),
+ $this->registry,
+ $this->logger,
+ ])
->getMock();
}
@@ -53,10 +65,11 @@ class VersionCheckTest extends \Test\TestCase {
* @return string
*/
private function buildUpdateUrl($baseUrl) {
- return $baseUrl . '?version='.implode('x', Util::getVersion()).'xinstalledatxlastupdatedatx'.\OC_Util::getChannel().'xxx'.PHP_MAJOR_VERSION.'x'.PHP_MINOR_VERSION.'x'.PHP_RELEASE_VERSION;
+ $serverVersion = Server::get(ServerVersion::class);
+ return $baseUrl . '?version=' . implode('x', $serverVersion->getVersion()) . 'xinstalledatx' . time() . 'x' . $serverVersion->getChannel() . 'xxx' . PHP_MAJOR_VERSION . 'x' . PHP_MINOR_VERSION . 'x' . PHP_RELEASE_VERSION . 'x0x0';
}
- public function testCheckInCache() {
+ public function testCheckInCache(): void {
$expectedResult = [
'version' => '8.0.4.2',
'versionstring' => 'ownCloud 8.0.4',
@@ -70,22 +83,21 @@ class VersionCheckTest extends \Test\TestCase {
->method('getSystemValueBool')
->with('has_internet_connection', true)
->willReturn(true);
+ $this->appConfig
+ ->expects($this->once())
+ ->method('getValueInt')
+ ->with('core', 'lastupdatedat')
+ ->willReturn(time());
$this->config
- ->expects($this->exactly(2))
+ ->expects($this->once())
->method('getAppValue')
- ->withConsecutive(
- ['core', 'lastupdatedat'],
- ['core', 'lastupdateResult']
- )
- ->willReturnOnConsecutiveCalls(
- time(),
- json_encode($expectedResult)
- );
+ ->with('core', 'lastupdateResult')
+ ->willReturn(json_encode($expectedResult));
$this->assertSame($expectedResult, $this->updater->check());
}
- public function testCheckWithoutUpdateUrl() {
+ public function testCheckWithoutUpdateUrl(): void {
$expectedResult = [
'version' => '8.0.4.2',
'versionstring' => 'ownCloud 8.0.4',
@@ -101,33 +113,32 @@ class VersionCheckTest extends \Test\TestCase {
->method('getSystemValueBool')
->with('has_internet_connection', true)
->willReturn(true);
- $this->config
- ->expects($this->exactly(4))
- ->method('getAppValue')
- ->withConsecutive(
- ['core', 'lastupdatedat'],
- ['core', 'installedat'],
- ['core', 'installedat'],
- ['core', 'lastupdatedat'],
- )
+ $this->appConfig
+ ->expects($this->exactly(2))
+ ->method('getValueInt')
+ ->with('core', 'lastupdatedat')
->willReturnOnConsecutiveCalls(
0,
- 'installedat',
- 'installedat',
- 'lastupdatedat'
+ time(),
);
$this->config
+ ->expects($this->exactly(2))
+ ->method('getAppValue')
+ ->with('core', 'installedat')
+ ->willReturn('installedat');
+ $this->config
->expects($this->once())
- ->method('getSystemValue')
+ ->method('getSystemValueString')
->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
->willReturnArgument(1);
+ $this->appConfig
+ ->expects($this->once())
+ ->method('setValueInt')
+ ->with('core', 'lastupdatedat', time());
$this->config
- ->expects($this->exactly(2))
+ ->expects($this->once())
->method('setAppValue')
- ->withConsecutive(
- ['core', 'lastupdatedat', $this->isType('integer')],
- ['core', 'lastupdateResult', json_encode($expectedResult)]
- );
+ ->with('core', 'lastupdateResult', json_encode($expectedResult));
$updateXml = '<?xml version="1.0"?>
<owncloud>
@@ -147,39 +158,38 @@ class VersionCheckTest extends \Test\TestCase {
$this->assertSame($expectedResult, $this->updater->check());
}
- public function testCheckWithInvalidXml() {
+ public function testCheckWithInvalidXml(): void {
$this->config
->expects($this->once())
->method('getSystemValueBool')
->with('has_internet_connection', true)
->willReturn(true);
- $this->config
- ->expects($this->exactly(4))
- ->method('getAppValue')
- ->withConsecutive(
- ['core', 'lastupdatedat'],
- ['core', 'installedat'],
- ['core', 'installedat'],
- ['core', 'lastupdatedat'],
- )
+ $this->appConfig
+ ->expects($this->exactly(2))
+ ->method('getValueInt')
+ ->with('core', 'lastupdatedat')
->willReturnOnConsecutiveCalls(
0,
- 'installedat',
- 'installedat',
- 'lastupdatedat'
+ time(),
);
$this->config
+ ->expects($this->exactly(2))
+ ->method('getAppValue')
+ ->with('core', 'installedat')
+ ->willReturn('installedat');
+ $this->config
->expects($this->once())
- ->method('getSystemValue')
+ ->method('getSystemValueString')
->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
->willReturnArgument(1);
+ $this->appConfig
+ ->expects($this->once())
+ ->method('setValueInt')
+ ->with('core', 'lastupdatedat', time());
$this->config
- ->expects($this->exactly(2))
+ ->expects($this->once())
->method('setAppValue')
- ->withConsecutive(
- ['core', 'lastupdatedat', $this->isType('integer')],
- ['core', 'lastupdateResult', '[]']
- );
+ ->with('core', 'lastupdateResult', $this->isType('string'));
$updateXml = 'Invalid XML Response!';
$this->updater
@@ -191,7 +201,7 @@ class VersionCheckTest extends \Test\TestCase {
$this->assertSame([], $this->updater->check());
}
- public function testCheckWithEmptyValidXmlResponse() {
+ public function testCheckWithEmptyValidXmlResponse(): void {
$expectedResult = [
'version' => '',
'versionstring' => '',
@@ -207,33 +217,32 @@ class VersionCheckTest extends \Test\TestCase {
->method('getSystemValueBool')
->with('has_internet_connection', true)
->willReturn(true);
- $this->config
- ->expects($this->exactly(4))
- ->method('getAppValue')
- ->withConsecutive(
- ['core', 'lastupdatedat'],
- ['core', 'installedat'],
- ['core', 'installedat'],
- ['core', 'lastupdatedat'],
- )
+ $this->appConfig
+ ->expects($this->exactly(2))
+ ->method('getValueInt')
+ ->with('core', 'lastupdatedat')
->willReturnOnConsecutiveCalls(
0,
- 'installedat',
- 'installedat',
- 'lastupdatedat'
+ time(),
);
$this->config
+ ->expects($this->exactly(2))
+ ->method('getAppValue')
+ ->with('core', 'installedat')
+ ->willReturn('installedat');
+ $this->config
->expects($this->once())
- ->method('getSystemValue')
+ ->method('getSystemValueString')
->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
->willReturnArgument(1);
+ $this->appConfig
+ ->expects($this->once())
+ ->method('setValueInt')
+ ->with('core', 'lastupdatedat', time());
$this->config
- ->expects($this->exactly(2))
+ ->expects($this->once())
->method('setAppValue')
- ->withConsecutive(
- ['core', 'lastupdatedat', $this->isType('integer')],
- ['core', 'lastupdateResult', $this->isType('string')]
- );
+ ->with('core', 'lastupdateResult', $this->isType('string'));
$updateXml = '<?xml version="1.0"?>
<owncloud>
@@ -252,7 +261,7 @@ class VersionCheckTest extends \Test\TestCase {
$this->assertSame($expectedResult, $this->updater->check());
}
- public function testCheckWithEmptyInvalidXmlResponse() {
+ public function testCheckWithEmptyInvalidXmlResponse(): void {
$expectedResult = [];
$this->config
@@ -260,33 +269,32 @@ class VersionCheckTest extends \Test\TestCase {
->method('getSystemValueBool')
->with('has_internet_connection', true)
->willReturn(true);
- $this->config
- ->expects($this->exactly(4))
- ->method('getAppValue')
- ->withConsecutive(
- ['core', 'lastupdatedat'],
- ['core', 'installedat'],
- ['core', 'installedat'],
- ['core', 'lastupdatedat'],
- )
+ $this->appConfig
+ ->expects($this->exactly(2))
+ ->method('getValueInt')
+ ->with('core', 'lastupdatedat')
->willReturnOnConsecutiveCalls(
0,
- 'installedat',
- 'installedat',
- 'lastupdatedat'
+ time(),
);
$this->config
+ ->expects($this->exactly(2))
+ ->method('getAppValue')
+ ->with('core', 'installedat')
+ ->willReturn('installedat');
+ $this->config
->expects($this->once())
- ->method('getSystemValue')
+ ->method('getSystemValueString')
->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
->willReturnArgument(1);
+ $this->appConfig
+ ->expects($this->once())
+ ->method('setValueInt')
+ ->with('core', 'lastupdatedat', time());
$this->config
- ->expects($this->exactly(2))
+ ->expects($this->once())
->method('setAppValue')
- ->withConsecutive(
- ['core', 'lastupdatedat', $this->isType('integer')],
- ['core', 'lastupdateResult', json_encode($expectedResult)]
- );
+ ->with('core', 'lastupdateResult', $this->isType('string'));
$updateXml = '';
$this->updater
@@ -298,7 +306,7 @@ class VersionCheckTest extends \Test\TestCase {
$this->assertSame($expectedResult, $this->updater->check());
}
- public function testCheckWithMissingAttributeXmlResponse() {
+ public function testCheckWithMissingAttributeXmlResponse(): void {
$expectedResult = [
'version' => '',
'versionstring' => '',
@@ -314,33 +322,32 @@ class VersionCheckTest extends \Test\TestCase {
->method('getSystemValueBool')
->with('has_internet_connection', true)
->willReturn(true);
- $this->config
- ->expects($this->exactly(4))
- ->method('getAppValue')
- ->withConsecutive(
- ['core', 'lastupdatedat'],
- ['core', 'installedat'],
- ['core', 'installedat'],
- ['core', 'lastupdatedat'],
- )
+ $this->appConfig
+ ->expects($this->exactly(2))
+ ->method('getValueInt')
+ ->with('core', 'lastupdatedat')
->willReturnOnConsecutiveCalls(
0,
- 'installedat',
- 'installedat',
- 'lastupdatedat'
+ time(),
);
$this->config
+ ->expects($this->exactly(2))
+ ->method('getAppValue')
+ ->with('core', 'installedat')
+ ->willReturn('installedat');
+ $this->config
->expects($this->once())
- ->method('getSystemValue')
+ ->method('getSystemValueString')
->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
->willReturnArgument(1);
+ $this->appConfig
+ ->expects($this->once())
+ ->method('setValueInt')
+ ->with('core', 'lastupdatedat', time());
$this->config
- ->expects($this->exactly(2))
+ ->expects($this->once())
->method('setAppValue')
- ->withConsecutive(
- ['core', 'lastupdatedat', $this->isType('integer')],
- ['core', 'lastupdateResult', $this->isType('string')]
- );
+ ->with('core', 'lastupdateResult', $this->isType('string'));
// missing autoupdater element should still not fail
$updateXml = '<?xml version="1.0"?>
@@ -359,7 +366,7 @@ class VersionCheckTest extends \Test\TestCase {
$this->assertSame($expectedResult, $this->updater->check());
}
- public function testNoInternet() {
+ public function testNoInternet(): void {
$this->config
->expects($this->once())
->method('getSystemValueBool')