N°8772 - dynamic form

This commit is contained in:
Benjamin Dalsass
2025-11-17 14:51:11 +01:00
parent 51ebbc4274
commit 753d0acce4
9 changed files with 146 additions and 16 deletions

View File

@@ -4,12 +4,10 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
namespace Forms;
namespace Forms\Block;
use Combodo\iTop\Forms\Block\AbstractFormBlock;
use Combodo\iTop\Forms\Block\AbstractTypeFormBlock;
use Combodo\iTop\Forms\Block\Base\CheckboxFormBlock;
use Combodo\iTop\Forms\Block\Base\ChoiceFormBlock;
use Combodo\iTop\Forms\Block\Base\FormBlock;
use Combodo\iTop\Forms\Block\Base\TextFormBlock;
use Combodo\iTop\Forms\Block\FormBlockException;
@@ -26,7 +24,7 @@ use Symfony\Component\Form\Extension\Core\Type\TextType;
* Test forms block.
*
*/
class Block extends ItopDataTestCase
class BlockTest extends ItopDataTestCase
{
/**
@@ -34,7 +32,7 @@ class Block extends ItopDataTestCase
*
* @throws ReflectionException
*/
public function testFormBlockProvideSymfonyFormType(): void
public function testGetFormTypeReturnSymfonyType(): void
{
$aFormBlocks = InterfaceDiscovery::GetInstance()->FindItopClasses(iFormBlock::class);
foreach ($aFormBlocks as $sFormBlock) {
@@ -51,7 +49,7 @@ class Block extends ItopDataTestCase
*
* @throws ReflectionException
*/
public function testAddBlockFromSymfonyType(): void
public function testAddChildBlockClass(): void
{
$oFormBlock = new FormBlock('formBlock');
$this->expectException(FormBlockException::class);

View File

@@ -0,0 +1,53 @@
<?php
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
namespace Forms\Register;
use Combodo\iTop\Forms\Register\OptionsRegister;
use Combodo\iTop\Forms\Register\RegisterException;
use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
class OptionsRegisterTest extends ItopDataTestCase
{
private OptionsRegister $oOptionsRegister;
protected function setUp(): void
{
parent::setUp();
$this->oOptionsRegister = new OptionsRegister();
}
public function testSetOptionWithInvalidName(): void
{
$this->oOptionsRegister->SetOption('valid_option_name', 'value');
$this->expectException(RegisterException::class);
$this->oOptionsRegister->SetOption('not valid option name', 'value');
}
public function testSetNonTypeOption(): void
{
$this->oOptionsRegister->SetOption('not_a_type_option', 'value', false);
$this->assertArrayNotHasKey('not_a_type_option', $this->oOptionsRegister->GetOptions());
}
public function testSetOptionArrayValue(): void
{
$this->oOptionsRegister->SetOptionArrayValue('att', 'class', 'ibo-class');
$this->assertEquals('ibo-class', $this->oOptionsRegister->GetOption('att')['class']);
}
public function testHasOption(): void
{
$this->oOptionsRegister->SetOption('option', true);
$this->assertTrue($this->oOptionsRegister->HasOption('option'));
}
}