configurable csv/xlsx export templates (#5531)
This commit is contained in:
@@ -12,6 +12,8 @@ namespace App\Tests\Form\Extension;
|
||||
use App\Form\Extension\DocumentationLinkExtension;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\Form\Extension\Core\Type\FormType;
|
||||
use Symfony\Component\Form\FormInterface;
|
||||
use Symfony\Component\Form\FormView;
|
||||
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
@@ -43,4 +45,18 @@ class DocumentationLinkExtensionTest extends TestCase
|
||||
$this->expectException(InvalidOptionsException::class);
|
||||
$resolver->resolve(['docu_chapter' => true]);
|
||||
}
|
||||
|
||||
public function testBuildView(): void
|
||||
{
|
||||
$sut = new DocumentationLinkExtension();
|
||||
$form = $this->createMock(FormInterface::class);
|
||||
|
||||
$view = new FormView();
|
||||
$sut->buildView($view, $form, ['docu_chapter' => null]);
|
||||
self::assertEquals(['attr' => [], 'value' => null, 'docu_chapter' => null], $view->vars);
|
||||
|
||||
$view = new FormView();
|
||||
$sut->buildView($view, $form, ['docu_chapter' => 'customers']);
|
||||
self::assertEquals(['attr' => [], 'value' => null, 'docu_chapter' => 'customers'], $view->vars);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ use App\Form\Extension\EnhancedChoiceTypeExtension;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\Form\FormInterface;
|
||||
use Symfony\Component\Form\FormView;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
/**
|
||||
@@ -30,15 +32,52 @@ class EnhancedChoiceTypeExtensionTest extends TestCase
|
||||
$resolver = new OptionsResolver();
|
||||
$sut = new EnhancedChoiceTypeExtension();
|
||||
$sut->configureOptions($resolver);
|
||||
self::assertEquals(['selectpicker', 'width', 'search'], $resolver->getDefinedOptions());
|
||||
self::assertEquals(['selectpicker', 'width', 'search', 'order'], $resolver->getDefinedOptions());
|
||||
self::assertTrue($resolver->hasDefault('selectpicker'));
|
||||
self::assertTrue($resolver->hasDefault('width'));
|
||||
self::assertTrue($resolver->hasDefault('search'));
|
||||
self::assertTrue($resolver->hasDefault('order'));
|
||||
self::assertFalse($resolver->isRequired('selectpicker'));
|
||||
self::assertFalse($resolver->isRequired('width'));
|
||||
self::assertFalse($resolver->isRequired('search'));
|
||||
|
||||
$result = $resolver->resolve([]);
|
||||
self::assertEquals(['selectpicker' => true, 'width' => '100%', 'search' => true], $result);
|
||||
self::assertEquals(['selectpicker' => true, 'width' => '100%', 'search' => true, 'order' => false], $result);
|
||||
}
|
||||
|
||||
public static function getTestData(): iterable
|
||||
{
|
||||
yield [
|
||||
['expanded' => true],
|
||||
['value' => null, 'attr' => []]
|
||||
];
|
||||
|
||||
yield [
|
||||
['multiple' => false, 'width' => false, 'search' => true, 'selectpicker' => true, 'order', 'required' => false],
|
||||
['value' => null, 'attr' => ['class' => 'selectpicker']]
|
||||
];
|
||||
|
||||
yield [
|
||||
['multiple' => false, 'width' => '100%', 'search' => true, 'required' => false, 'order' => true],
|
||||
['value' => null, 'attr' => ['class' => 'selectpicker', 'data-width' => '100%', 'data-order' => 1]]
|
||||
];
|
||||
|
||||
yield [
|
||||
['multiple' => true, 'width' => '50%', 'search' => false, 'required' => true, 'attr' => []],
|
||||
['value' => null, 'attr' => ['size' => 1, 'class' => 'selectpicker', 'data-width' => '50%', 'data-disable-search' => 1, 'required' => 'required', 'placeholder' => '']]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider getTestData
|
||||
*/
|
||||
public function testBuildView(array $options, array $expected): void
|
||||
{
|
||||
$sut = new EnhancedChoiceTypeExtension();
|
||||
$view = new FormView();
|
||||
$form = $this->createMock(FormInterface::class);
|
||||
|
||||
$sut->buildView($view, $form, $options);
|
||||
self::assertEquals($expected, $view->vars);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user