aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public/Settings/IDeclarativeSettingsFormWithHandlers.php
blob: 180df73d9951f0cb8a0c68eea9a99bec95693c43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php

declare(strict_types=1);

/**
 * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */

namespace OCP\Settings;

use OCP\IUser;

/**
 * @since 31.0.0
 */
interface IDeclarativeSettingsFormWithHandlers extends IDeclarativeSettingsForm {

	/**
	 * This function is called to get the current value of a specific forms field.
	 * @since 31.0.0
	 */
	public function getValue(string $fieldId, IUser $user): mixed;

	/**
	 * This function is called when a user updated a form field to persist the setting.
	 * @since 31.0.0
	 */
	public function setValue(string $fieldId, mixed $value, IUser $user): void;

}
nd@owncloud.com> * This file is licensed under the Affero General Public License version 3 or * later. * See the COPYING-README file. */ namespace Test\Cache; abstract class TestCache extends \Test\TestCase { /** * @var \OCP\ICache cache; */ protected $instance; protected function tearDown(): void { if ($this->instance) { $this->instance->clear(); } parent::tearDown(); } public function testSimple() { $this->assertNull($this->instance->get('value1')); $this->assertFalse($this->instance->hasKey('value1')); $value = 'foobar'; $this->instance->set('value1', $value); $this->assertTrue($this->instance->hasKey('value1')); $received = $this->instance->get('value1'); $this->assertEquals($value, $received, 'Value received from cache not equal to the original'); $value = 'ipsum lorum'; $this->instance->set('value1', $value); $received = $this->instance->get('value1'); $this->assertEquals($value, $received, 'Value not overwritten by second set'); $value2 = 'foobar'; $this->instance->set('value2', $value2); $received2 = $this->instance->get('value2'); $this->assertTrue($this->instance->hasKey('value1')); $this->assertTrue($this->instance->hasKey('value2')); $this->assertEquals($value, $received, 'Value changed while setting other variable'); $this->assertEquals($value2, $received2, 'Second value not equal to original'); $this->assertFalse($this->instance->hasKey('not_set')); $this->assertNull($this->instance->get('not_set'), 'Unset value not equal to null'); $this->assertTrue($this->instance->remove('value1')); $this->assertFalse($this->instance->hasKey('value1')); } public function testClear() { $value = 'ipsum lorum'; $this->instance->set('1_value1', $value . '1'); $this->instance->set('1_value2', $value . '2'); $this->instance->set('2_value1', $value . '3'); $this->instance->set('3_value1', $value . '4'); $this->assertEquals([ '1_value1' => 'ipsum lorum1', '1_value2' => 'ipsum lorum2', '2_value1' => 'ipsum lorum3', '3_value1' => 'ipsum lorum4', ], [ '1_value1' => $this->instance->get('1_value1'), '1_value2' => $this->instance->get('1_value2'), '2_value1' => $this->instance->get('2_value1'), '3_value1' => $this->instance->get('3_value1'), ]); $this->assertTrue($this->instance->clear('1_')); $this->assertEquals([ '1_value1' => null, '1_value2' => null, '2_value1' => 'ipsum lorum3', '3_value1' => 'ipsum lorum4', ], [ '1_value1' => $this->instance->get('1_value1'), '1_value2' => $this->instance->get('1_value2'), '2_value1' => $this->instance->get('2_value1'), '3_value1' => $this->instance->get('3_value1'), ]); $this->assertTrue($this->instance->clear()); $this->assertEquals([ '1_value1' => null, '1_value2' => null, '2_value1' => null, '3_value1' => null, ], [ '1_value1' => $this->instance->get('1_value1'), '1_value2' => $this->instance->get('1_value2'), '2_value1' => $this->instance->get('2_value1'), '3_value1' => $this->instance->get('3_value1'), ]); } }