Add tests for update notification controller for non-default updater server URL
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
This commit is contained in:
parent
3c2dd08264
commit
773e9d0554
|
@ -95,7 +95,7 @@ class Admin implements ISettings {
|
||||||
$defaultCustomerUpdateServerURLPrefix = 'https://updates.nextcloud.com/customers/';
|
$defaultCustomerUpdateServerURLPrefix = 'https://updates.nextcloud.com/customers/';
|
||||||
|
|
||||||
$isDefaultUpdateServerURL = $updateServerURL === $defaultUpdateServerURL
|
$isDefaultUpdateServerURL = $updateServerURL === $defaultUpdateServerURL
|
||||||
|| $updateServerURL === substr($updateServerURL, 0, strlen($defaultCustomerUpdateServerURLPrefix));
|
|| strpos($updateServerURL, $defaultCustomerUpdateServerURLPrefix) === 0;
|
||||||
|
|
||||||
$hasValidSubscription = $this->subscriptionRegistry->delegateHasValidSubscription();
|
$hasValidSubscription = $this->subscriptionRegistry->delegateHasValidSubscription();
|
||||||
|
|
||||||
|
|
|
@ -158,6 +158,176 @@ class AdminTest extends TestCase {
|
||||||
$this->assertEquals($expected, $this->admin->getForm());
|
$this->assertEquals($expected, $this->admin->getForm());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testGetFormWithUpdateAndChangedUpdateServer() {
|
||||||
|
$channels = [
|
||||||
|
'daily',
|
||||||
|
'beta',
|
||||||
|
'stable',
|
||||||
|
'production',
|
||||||
|
];
|
||||||
|
$currentChannel = Util::getChannel();
|
||||||
|
if ($currentChannel === 'git') {
|
||||||
|
$channels[] = 'git';
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->config
|
||||||
|
->expects($this->exactly(2))
|
||||||
|
->method('getAppValue')
|
||||||
|
->willReturnMap([
|
||||||
|
['core', 'lastupdatedat', '', '12345'],
|
||||||
|
['updatenotification', 'notify_groups', '["admin"]', '["admin"]'],
|
||||||
|
]);
|
||||||
|
$this->config
|
||||||
|
->expects($this->once())
|
||||||
|
->method('getSystemValue')
|
||||||
|
->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
|
||||||
|
->willReturn('https://updates.nextcloud.com/updater_server_changed/');
|
||||||
|
$this->dateTimeFormatter
|
||||||
|
->expects($this->once())
|
||||||
|
->method('formatDateTime')
|
||||||
|
->with('12345')
|
||||||
|
->willReturn('LastCheckedReturnValue');
|
||||||
|
$this->updateChecker
|
||||||
|
->expects($this->once())
|
||||||
|
->method('getUpdateState')
|
||||||
|
->willReturn([
|
||||||
|
'updateAvailable' => true,
|
||||||
|
'updateVersion' => '8.1.2',
|
||||||
|
'updateVersionString' => 'Nextcloud 8.1.2',
|
||||||
|
'downloadLink' => 'https://downloads.nextcloud.org/server',
|
||||||
|
'changes' => [],
|
||||||
|
'updaterEnabled' => true,
|
||||||
|
'versionIsEol' => false,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$group = $this->createMock(IGroup::class);
|
||||||
|
$group->expects($this->any())
|
||||||
|
->method('getDisplayName')
|
||||||
|
->willReturn('Administrators');
|
||||||
|
$group->expects($this->any())
|
||||||
|
->method('getGID')
|
||||||
|
->willReturn('admin');
|
||||||
|
$this->groupManager->expects($this->once())
|
||||||
|
->method('get')
|
||||||
|
->with('admin')
|
||||||
|
->willReturn($group);
|
||||||
|
|
||||||
|
$this->subscriptionRegistry
|
||||||
|
->expects($this->once())
|
||||||
|
->method('delegateHasValidSubscription')
|
||||||
|
->willReturn(true);
|
||||||
|
|
||||||
|
$params = [
|
||||||
|
'json' => json_encode([
|
||||||
|
'isNewVersionAvailable' => true,
|
||||||
|
'isUpdateChecked' => true,
|
||||||
|
'lastChecked' => 'LastCheckedReturnValue',
|
||||||
|
'currentChannel' => Util::getChannel(),
|
||||||
|
'channels' => $channels,
|
||||||
|
'newVersion' => '8.1.2',
|
||||||
|
'newVersionString' => 'Nextcloud 8.1.2',
|
||||||
|
'downloadLink' => 'https://downloads.nextcloud.org/server',
|
||||||
|
'changes' => [],
|
||||||
|
'updaterEnabled' => true,
|
||||||
|
'versionIsEol' => false,
|
||||||
|
'isDefaultUpdateServerURL' => false,
|
||||||
|
'updateServerURL' => 'https://updates.nextcloud.com/updater_server_changed/',
|
||||||
|
'notifyGroups' => [
|
||||||
|
['value' => 'admin', 'label' => 'Administrators'],
|
||||||
|
],
|
||||||
|
'hasValidSubscription' => true,
|
||||||
|
]),
|
||||||
|
];
|
||||||
|
|
||||||
|
$expected = new TemplateResponse('updatenotification', 'admin', $params, '');
|
||||||
|
$this->assertEquals($expected, $this->admin->getForm());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testGetFormWithUpdateAndCustomersUpdateServer() {
|
||||||
|
$channels = [
|
||||||
|
'daily',
|
||||||
|
'beta',
|
||||||
|
'stable',
|
||||||
|
'production',
|
||||||
|
];
|
||||||
|
$currentChannel = Util::getChannel();
|
||||||
|
if ($currentChannel === 'git') {
|
||||||
|
$channels[] = 'git';
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->config
|
||||||
|
->expects($this->exactly(2))
|
||||||
|
->method('getAppValue')
|
||||||
|
->willReturnMap([
|
||||||
|
['core', 'lastupdatedat', '', '12345'],
|
||||||
|
['updatenotification', 'notify_groups', '["admin"]', '["admin"]'],
|
||||||
|
]);
|
||||||
|
$this->config
|
||||||
|
->expects($this->once())
|
||||||
|
->method('getSystemValue')
|
||||||
|
->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
|
||||||
|
->willReturn('https://updates.nextcloud.com/customers/ABC-DEF/');
|
||||||
|
$this->dateTimeFormatter
|
||||||
|
->expects($this->once())
|
||||||
|
->method('formatDateTime')
|
||||||
|
->with('12345')
|
||||||
|
->willReturn('LastCheckedReturnValue');
|
||||||
|
$this->updateChecker
|
||||||
|
->expects($this->once())
|
||||||
|
->method('getUpdateState')
|
||||||
|
->willReturn([
|
||||||
|
'updateAvailable' => true,
|
||||||
|
'updateVersion' => '8.1.2',
|
||||||
|
'updateVersionString' => 'Nextcloud 8.1.2',
|
||||||
|
'downloadLink' => 'https://downloads.nextcloud.org/server',
|
||||||
|
'changes' => [],
|
||||||
|
'updaterEnabled' => true,
|
||||||
|
'versionIsEol' => false,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$group = $this->createMock(IGroup::class);
|
||||||
|
$group->expects($this->any())
|
||||||
|
->method('getDisplayName')
|
||||||
|
->willReturn('Administrators');
|
||||||
|
$group->expects($this->any())
|
||||||
|
->method('getGID')
|
||||||
|
->willReturn('admin');
|
||||||
|
$this->groupManager->expects($this->once())
|
||||||
|
->method('get')
|
||||||
|
->with('admin')
|
||||||
|
->willReturn($group);
|
||||||
|
|
||||||
|
$this->subscriptionRegistry
|
||||||
|
->expects($this->once())
|
||||||
|
->method('delegateHasValidSubscription')
|
||||||
|
->willReturn(true);
|
||||||
|
|
||||||
|
$params = [
|
||||||
|
'json' => json_encode([
|
||||||
|
'isNewVersionAvailable' => true,
|
||||||
|
'isUpdateChecked' => true,
|
||||||
|
'lastChecked' => 'LastCheckedReturnValue',
|
||||||
|
'currentChannel' => Util::getChannel(),
|
||||||
|
'channels' => $channels,
|
||||||
|
'newVersion' => '8.1.2',
|
||||||
|
'newVersionString' => 'Nextcloud 8.1.2',
|
||||||
|
'downloadLink' => 'https://downloads.nextcloud.org/server',
|
||||||
|
'changes' => [],
|
||||||
|
'updaterEnabled' => true,
|
||||||
|
'versionIsEol' => false,
|
||||||
|
'isDefaultUpdateServerURL' => true,
|
||||||
|
'updateServerURL' => 'https://updates.nextcloud.com/customers/ABC-DEF/',
|
||||||
|
'notifyGroups' => [
|
||||||
|
['value' => 'admin', 'label' => 'Administrators'],
|
||||||
|
],
|
||||||
|
'hasValidSubscription' => true,
|
||||||
|
]),
|
||||||
|
];
|
||||||
|
|
||||||
|
$expected = new TemplateResponse('updatenotification', 'admin', $params, '');
|
||||||
|
$this->assertEquals($expected, $this->admin->getForm());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function testGetSection() {
|
public function testGetSection() {
|
||||||
$this->assertSame('overview', $this->admin->getSection());
|
$this->assertSame('overview', $this->admin->getSection());
|
||||||
|
|
Loading…
Reference in New Issue