Merge pull request #55177 from nextcloud/fix/systemtags-admin-initial-state

fix(systemtags): Provide initial state for admin restriction setting
pull/55247/head
Ferdinand Thiessen 2 weeks ago committed by GitHub
commit 47ced2b6a7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 12
      apps/systemtags/lib/Settings/Admin.php
  2. 37
      apps/systemtags/tests/Settings/AdminTest.php

@ -6,16 +6,28 @@
*/
namespace OCA\SystemTags\Settings;
use OCA\SystemTags\AppInfo\Application;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\AppFramework\Services\IInitialState;
use OCP\IAppConfig;
use OCP\Settings\ISettings;
use OCP\Util;
class Admin implements ISettings {
public function __construct(
private IAppConfig $appConfig,
private IInitialState $initialStateService,
) {
}
/**
* @return TemplateResponse
*/
public function getForm() {
$restrictSystemTagsCreationToAdmin = $this->appConfig->getValueBool(Application::APP_ID, 'restrict_creation_to_admin', false);
$this->initialStateService->provideInitialState('restrictSystemTagsCreationToAdmin', $restrictSystemTagsCreationToAdmin);
Util::addScript('systemtags', 'admin');
return new TemplateResponse('systemtags', 'admin', [], '');
}

@ -8,19 +8,54 @@ namespace OCA\SystemTags\Tests\Settings;
use OCA\SystemTags\Settings\Admin;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\AppFramework\Services\IInitialState;
use OCP\IAppConfig;
use Test\TestCase;
class AdminTest extends TestCase {
/** @var Admin */
private $admin;
/** @var IAppConfig|\PHPUnit\Framework\MockObject\MockObject */
private $appConfig;
/** @var IInitialState|\PHPUnit\Framework\MockObject\MockObject */
private $initialState;
protected function setUp(): void {
parent::setUp();
$this->admin = new Admin();
$this->appConfig = $this->createMock(IAppConfig::class);
$this->initialState = $this->createMock(IInitialState::class);
$this->admin = new Admin(
$this->appConfig,
$this->initialState
);
}
public function testGetForm(): void {
$this->appConfig->expects($this->once())
->method('getValueBool')
->with('systemtags', 'restrict_creation_to_admin', false)
->willReturn(false);
$this->initialState->expects($this->once())
->method('provideInitialState')
->with('restrictSystemTagsCreationToAdmin', false);
$expected = new TemplateResponse('systemtags', 'admin', [], '');
$this->assertEquals($expected, $this->admin->getForm());
}
public function testGetFormWithRestrictedCreation(): void {
$this->appConfig->expects($this->once())
->method('getValueBool')
->with('systemtags', 'restrict_creation_to_admin', false)
->willReturn(true);
$this->initialState->expects($this->once())
->method('provideInitialState')
->with('restrictSystemTagsCreationToAdmin', true);
$expected = new TemplateResponse('systemtags', 'admin', [], '');
$this->assertEquals($expected, $this->admin->getForm());
}

Loading…
Cancel
Save