resolve deprecated form stuff
This commit is contained in:
parent
58b80628dd
commit
8b4cd94db8
|
@ -19,9 +19,7 @@ use Symfony\Component\OptionsResolver\OptionsResolverInterface;
|
||||||
*/
|
*/
|
||||||
abstract class BaseAbstractType extends AbstractType
|
abstract class BaseAbstractType extends AbstractType
|
||||||
{
|
{
|
||||||
protected $options = array(
|
protected $options = array();
|
||||||
'name' => '',
|
|
||||||
);
|
|
||||||
|
|
||||||
public function __construct($mergeOptions = null)
|
public function __construct($mergeOptions = null)
|
||||||
{
|
{
|
||||||
|
@ -63,17 +61,11 @@ abstract class BaseAbstractType extends AbstractType
|
||||||
$resolver->setDefaults($this->options);
|
$resolver->setDefaults($this->options);
|
||||||
}
|
}
|
||||||
|
|
||||||
// BC for SF < 2.7
|
|
||||||
public function setDefaultOptions(OptionsResolverInterface $resolver)
|
|
||||||
{
|
|
||||||
$this->configureOptions($resolver);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function getName()
|
public function getName()
|
||||||
{
|
{
|
||||||
return $this->getOption('name');
|
return get_class($this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Propel\Bundle\PropelBundle\Form\Type;
|
||||||
use Propel\Bundle\PropelBundle\Form\ChoiceList\ModelChoiceList;
|
use Propel\Bundle\PropelBundle\Form\ChoiceList\ModelChoiceList;
|
||||||
use Propel\Bundle\PropelBundle\Form\DataTransformer\CollectionToArrayTransformer;
|
use Propel\Bundle\PropelBundle\Form\DataTransformer\CollectionToArrayTransformer;
|
||||||
use Symfony\Component\Form\AbstractType;
|
use Symfony\Component\Form\AbstractType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||||
use Symfony\Component\Form\FormBuilderInterface;
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
use Symfony\Component\OptionsResolver\Options;
|
use Symfony\Component\OptionsResolver\Options;
|
||||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||||
|
@ -101,19 +102,24 @@ class ModelType extends AbstractType
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
// BC for SF < 2.7
|
/**
|
||||||
public function setDefaultOptions(OptionsResolverInterface $resolver)
|
* {@inheritdoc}
|
||||||
{
|
*/
|
||||||
$this->configureOptions($resolver);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getParent()
|
public function getParent()
|
||||||
{
|
{
|
||||||
return 'choice';
|
return ChoiceType::class;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function getBlockPrefix()
|
||||||
|
{
|
||||||
|
return 'model';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName()
|
public function getName()
|
||||||
{
|
{
|
||||||
return 'model';
|
return $this->getBlockPrefix();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,11 +12,11 @@
|
||||||
namespace Propel\Bundle\PropelBundle\Form\Type;
|
namespace Propel\Bundle\PropelBundle\Form\Type;
|
||||||
|
|
||||||
use Symfony\Component\Form\AbstractType;
|
use Symfony\Component\Form\AbstractType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
|
||||||
use Symfony\Component\OptionsResolver\Exception\MissingOptionsException;
|
use Symfony\Component\OptionsResolver\Exception\MissingOptionsException;
|
||||||
use Symfony\Component\Form\FormBuilderInterface;
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||||
use Propel\Bundle\PropelBundle\Form\EventListener\TranslationCollectionFormListener;
|
use Propel\Bundle\PropelBundle\Form\EventListener\TranslationCollectionFormListener;
|
||||||
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* form type for i18n-columns in propel
|
* form type for i18n-columns in propel
|
||||||
|
@ -30,30 +30,17 @@ class TranslationCollectionType extends AbstractType
|
||||||
*/
|
*/
|
||||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||||
{
|
{
|
||||||
if (!isset($options['options']['data_class']) || null === $options['options']['data_class']) {
|
if (!isset($options['entry_options']['data_class']) || null === $options['entry_options']['data_class']) {
|
||||||
throw new MissingOptionsException('data_class must be set');
|
throw new MissingOptionsException('data_class must be set');
|
||||||
}
|
}
|
||||||
if (!isset($options['options']['columns']) || null === $options['options']['columns']) {
|
if (!isset($options['entry_options']['columns']) || null === $options['entry_options']['columns']) {
|
||||||
throw new MissingOptionsException('columns must be set');
|
throw new MissingOptionsException('columns must be set');
|
||||||
}
|
}
|
||||||
|
|
||||||
$listener = new TranslationCollectionFormListener($options['languages'], $options['options']['data_class']);
|
$listener = new TranslationCollectionFormListener($options['languages'], $options['entry_options']['data_class']);
|
||||||
$builder->addEventSubscriber($listener);
|
$builder->addEventSubscriber($listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getParent()
|
|
||||||
{
|
|
||||||
return 'collection';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function getName()
|
|
||||||
{
|
|
||||||
return 'propel_translation_collection';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
|
@ -64,19 +51,34 @@ class TranslationCollectionType extends AbstractType
|
||||||
));
|
));
|
||||||
|
|
||||||
$resolver->setDefaults(array(
|
$resolver->setDefaults(array(
|
||||||
'type' => 'propel_translation',
|
'entry_type' => TranslationType::class,
|
||||||
'allow_add' => false,
|
'allow_add' => false,
|
||||||
'allow_delete' => false,
|
'allow_delete' => false,
|
||||||
'options' => array(
|
'entry_options' => array(
|
||||||
'data_class' => null,
|
'data_class' => null,
|
||||||
'columns' => null
|
'columns' => null
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
// BC for SF < 2.7
|
/**
|
||||||
public function setDefaultOptions(OptionsResolverInterface $resolver)
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function getParent()
|
||||||
{
|
{
|
||||||
$this->configureOptions($resolver);
|
return CollectionType::class;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function getBlockPrefix()
|
||||||
|
{
|
||||||
|
return 'propel_translation_collection';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getName()
|
||||||
|
{
|
||||||
|
return $this->getBlockPrefix();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,14 +34,6 @@ class TranslationType extends AbstractType
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function getName()
|
|
||||||
{
|
|
||||||
return 'propel_translation';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
|
@ -53,9 +45,16 @@ class TranslationType extends AbstractType
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
// BC for SF < 2.7
|
/**
|
||||||
public function setDefaultOptions(OptionsResolverInterface $resolver)
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function getBlockPrefix()
|
||||||
{
|
{
|
||||||
$this->configureOptions($resolver);
|
return 'propel_translation';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getName()
|
||||||
|
{
|
||||||
|
return $this->getBlockPrefix();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,8 +11,18 @@
|
||||||
|
|
||||||
namespace Propel\Bundle\PropelBundle\Form;
|
namespace Propel\Bundle\PropelBundle\Form;
|
||||||
|
|
||||||
|
use Propel\Bundle\PropelBundle\Form\Type\ModelType;
|
||||||
use Propel\Runtime\Map\RelationMap;
|
use Propel\Runtime\Map\RelationMap;
|
||||||
use Propel\Generator\Model\PropelTypes;
|
use Propel\Generator\Model\PropelTypes;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\DateType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\NumberType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\TimeType;
|
||||||
use Symfony\Component\Form\FormTypeGuesserInterface;
|
use Symfony\Component\Form\FormTypeGuesserInterface;
|
||||||
use Symfony\Component\Form\Guess\Guess;
|
use Symfony\Component\Form\Guess\Guess;
|
||||||
use Symfony\Component\Form\Guess\TypeGuess;
|
use Symfony\Component\Form\Guess\TypeGuess;
|
||||||
|
@ -33,27 +43,27 @@ class TypeGuesser implements FormTypeGuesserInterface
|
||||||
public function guessType($class, $property)
|
public function guessType($class, $property)
|
||||||
{
|
{
|
||||||
if (!$table = $this->getTable($class)) {
|
if (!$table = $this->getTable($class)) {
|
||||||
return new TypeGuess('text', array(), Guess::LOW_CONFIDENCE);
|
return new TypeGuess(TextType::class, array(), Guess::LOW_CONFIDENCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($table->getRelations() as $relation) {
|
foreach ($table->getRelations() as $relation) {
|
||||||
if ($relation->getType() === RelationMap::MANY_TO_ONE) {
|
if ($relation->getType() === RelationMap::MANY_TO_ONE) {
|
||||||
if (strtolower($property) === strtolower($relation->getName())) {
|
if (strtolower($property) === strtolower($relation->getName())) {
|
||||||
return new TypeGuess('model', array(
|
return new TypeGuess(ModelType::class, array(
|
||||||
'class' => $relation->getForeignTable()->getClassName(),
|
'class' => $relation->getForeignTable()->getClassName(),
|
||||||
'multiple' => false,
|
'multiple' => false,
|
||||||
), Guess::HIGH_CONFIDENCE);
|
), Guess::HIGH_CONFIDENCE);
|
||||||
}
|
}
|
||||||
} elseif ($relation->getType() === RelationMap::ONE_TO_MANY) {
|
} elseif ($relation->getType() === RelationMap::ONE_TO_MANY) {
|
||||||
if (strtolower($property) === strtolower($relation->getPluralName())) {
|
if (strtolower($property) === strtolower($relation->getPluralName())) {
|
||||||
return new TypeGuess('model', array(
|
return new TypeGuess(ModelType::class, array(
|
||||||
'class' => $relation->getForeignTable()->getClassName(),
|
'class' => $relation->getForeignTable()->getClassName(),
|
||||||
'multiple' => true,
|
'multiple' => true,
|
||||||
), Guess::HIGH_CONFIDENCE);
|
), Guess::HIGH_CONFIDENCE);
|
||||||
}
|
}
|
||||||
} elseif ($relation->getType() === RelationMap::MANY_TO_MANY) {
|
} elseif ($relation->getType() === RelationMap::MANY_TO_MANY) {
|
||||||
if (strtolower($property) == strtolower($relation->getPluralName())) {
|
if (strtolower($property) == strtolower($relation->getPluralName())) {
|
||||||
return new TypeGuess('model', array(
|
return new TypeGuess(ModelType::class, array(
|
||||||
'class' => $relation->getLocalTable()->getClassName(),
|
'class' => $relation->getLocalTable()->getClassName(),
|
||||||
'multiple' => true,
|
'multiple' => true,
|
||||||
), Guess::HIGH_CONFIDENCE);
|
), Guess::HIGH_CONFIDENCE);
|
||||||
|
@ -62,32 +72,32 @@ class TypeGuesser implements FormTypeGuesserInterface
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$column = $this->getColumn($class, $property)) {
|
if (!$column = $this->getColumn($class, $property)) {
|
||||||
return new TypeGuess('text', array(), Guess::LOW_CONFIDENCE);
|
return new TypeGuess(TextType::class, array(), Guess::LOW_CONFIDENCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($column->getType()) {
|
switch ($column->getType()) {
|
||||||
case PropelTypes::BOOLEAN:
|
case PropelTypes::BOOLEAN:
|
||||||
case PropelTypes::BOOLEAN_EMU:
|
case PropelTypes::BOOLEAN_EMU:
|
||||||
return new TypeGuess('checkbox', array(), Guess::HIGH_CONFIDENCE);
|
return new TypeGuess(CheckboxType::class, array(), Guess::HIGH_CONFIDENCE);
|
||||||
case PropelTypes::TIMESTAMP:
|
case PropelTypes::TIMESTAMP:
|
||||||
case PropelTypes::BU_TIMESTAMP:
|
case PropelTypes::BU_TIMESTAMP:
|
||||||
return new TypeGuess('datetime', array(), Guess::HIGH_CONFIDENCE);
|
return new TypeGuess(DateTimeType::class, array(), Guess::HIGH_CONFIDENCE);
|
||||||
case PropelTypes::DATE:
|
case PropelTypes::DATE:
|
||||||
case PropelTypes::BU_DATE:
|
case PropelTypes::BU_DATE:
|
||||||
return new TypeGuess('date', array(), Guess::HIGH_CONFIDENCE);
|
return new TypeGuess(DateType::class, array(), Guess::HIGH_CONFIDENCE);
|
||||||
case PropelTypes::TIME:
|
case PropelTypes::TIME:
|
||||||
return new TypeGuess('time', array(), Guess::HIGH_CONFIDENCE);
|
return new TypeGuess(TimeType::class, array(), Guess::HIGH_CONFIDENCE);
|
||||||
case PropelTypes::FLOAT:
|
case PropelTypes::FLOAT:
|
||||||
case PropelTypes::REAL:
|
case PropelTypes::REAL:
|
||||||
case PropelTypes::DOUBLE:
|
case PropelTypes::DOUBLE:
|
||||||
case PropelTypes::DECIMAL:
|
case PropelTypes::DECIMAL:
|
||||||
return new TypeGuess('number', array(), Guess::MEDIUM_CONFIDENCE);
|
return new TypeGuess(NumberType::class, array(), Guess::MEDIUM_CONFIDENCE);
|
||||||
case PropelTypes::TINYINT:
|
case PropelTypes::TINYINT:
|
||||||
case PropelTypes::SMALLINT:
|
case PropelTypes::SMALLINT:
|
||||||
case PropelTypes::INTEGER:
|
case PropelTypes::INTEGER:
|
||||||
case PropelTypes::BIGINT:
|
case PropelTypes::BIGINT:
|
||||||
case PropelTypes::NUMERIC:
|
case PropelTypes::NUMERIC:
|
||||||
return new TypeGuess('integer', array(), Guess::MEDIUM_CONFIDENCE);
|
return new TypeGuess(IntegerType::class, array(), Guess::MEDIUM_CONFIDENCE);
|
||||||
case PropelTypes::ENUM:
|
case PropelTypes::ENUM:
|
||||||
case PropelTypes::CHAR:
|
case PropelTypes::CHAR:
|
||||||
if ($column->getValueSet()) {
|
if ($column->getValueSet()) {
|
||||||
|
@ -95,17 +105,17 @@ class TypeGuesser implements FormTypeGuesserInterface
|
||||||
$choices = $column->getValueSet();
|
$choices = $column->getValueSet();
|
||||||
$labels = array_map('ucfirst', $choices);
|
$labels = array_map('ucfirst', $choices);
|
||||||
|
|
||||||
return new TypeGuess('choice', array('choices' => array_combine($choices, $labels)), Guess::MEDIUM_CONFIDENCE);
|
return new TypeGuess(ChoiceType::class, array('choices' => array_combine($choices, $labels)), Guess::MEDIUM_CONFIDENCE);
|
||||||
}
|
}
|
||||||
case PropelTypes::VARCHAR:
|
case PropelTypes::VARCHAR:
|
||||||
return new TypeGuess('text', array(), Guess::MEDIUM_CONFIDENCE);
|
return new TypeGuess(TextType::class, array(), Guess::MEDIUM_CONFIDENCE);
|
||||||
case PropelTypes::LONGVARCHAR:
|
case PropelTypes::LONGVARCHAR:
|
||||||
case PropelTypes::BLOB:
|
case PropelTypes::BLOB:
|
||||||
case PropelTypes::CLOB:
|
case PropelTypes::CLOB:
|
||||||
case PropelTypes::CLOB_EMU:
|
case PropelTypes::CLOB_EMU:
|
||||||
return new TypeGuess('textarea', array(), Guess::MEDIUM_CONFIDENCE);
|
return new TypeGuess(TextareaType::class, array(), Guess::MEDIUM_CONFIDENCE);
|
||||||
default:
|
default:
|
||||||
return new TypeGuess('text', array(), Guess::LOW_CONFIDENCE);
|
return new TypeGuess(TextType::class, array(), Guess::LOW_CONFIDENCE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
namespace Propel\Bundle\PropelBundle\Tests\Form\Form\Type;
|
namespace Propel\Bundle\PropelBundle\Tests\Form\Form\Type;
|
||||||
|
|
||||||
|
use Propel\Bundle\PropelBundle\Form\Type\TranslationCollectionType;
|
||||||
use Propel\Bundle\PropelBundle\Tests\Fixtures\Item;
|
use Propel\Bundle\PropelBundle\Tests\Fixtures\Item;
|
||||||
use Propel\Bundle\PropelBundle\Form\PropelExtension;
|
use Propel\Bundle\PropelBundle\Form\PropelExtension;
|
||||||
use Propel\Bundle\PropelBundle\Tests\Fixtures\TranslatableItemI18n;
|
use Propel\Bundle\PropelBundle\Tests\Fixtures\TranslatableItemI18n;
|
||||||
|
@ -45,9 +46,9 @@ class TranslationCollectionTypeTest extends TypeTestCase
|
||||||
'data_class' => self::TRANSLATION_CLASS
|
'data_class' => self::TRANSLATION_CLASS
|
||||||
));
|
));
|
||||||
|
|
||||||
$builder->add('translatableItemI18ns', 'propel_translation_collection', array(
|
$builder->add('translatableItemI18ns', TranslationCollectionType::class, array(
|
||||||
'languages' => array('en', 'fr'),
|
'languages' => array('en', 'fr'),
|
||||||
'options' => array(
|
'entry_options' => array(
|
||||||
'data_class' => self::TRANSLATABLE_I18N_CLASS,
|
'data_class' => self::TRANSLATABLE_I18N_CLASS,
|
||||||
'columns' => array('value', 'value2' => array('label' => 'Label', 'type' => 'textarea'))
|
'columns' => array('value', 'value2' => array('label' => 'Label', 'type' => 'textarea'))
|
||||||
)
|
)
|
||||||
|
@ -81,9 +82,9 @@ class TranslationCollectionTypeTest extends TypeTestCase
|
||||||
$builder = $this->factory->createBuilder('form', null, array(
|
$builder = $this->factory->createBuilder('form', null, array(
|
||||||
'data_class' => self::TRANSLATION_CLASS
|
'data_class' => self::TRANSLATION_CLASS
|
||||||
));
|
));
|
||||||
$builder->add('translatableItemI18ns', 'propel_translation_collection', array(
|
$builder->add('translatableItemI18ns', TranslationCollectionType::class, array(
|
||||||
'languages' => array('en', 'fr'),
|
'languages' => array('en', 'fr'),
|
||||||
'options' => array(
|
'entry_options' => array(
|
||||||
'data_class' => self::TRANSLATABLE_I18N_CLASS,
|
'data_class' => self::TRANSLATABLE_I18N_CLASS,
|
||||||
'columns' => array('value', 'value2' => array('label' => 'Label', 'type' => 'textarea'))
|
'columns' => array('value', 'value2' => array('label' => 'Label', 'type' => 'textarea'))
|
||||||
)
|
)
|
||||||
|
@ -105,9 +106,9 @@ class TranslationCollectionTypeTest extends TypeTestCase
|
||||||
$builder = $this->factory->createBuilder('form', null, array(
|
$builder = $this->factory->createBuilder('form', null, array(
|
||||||
'data_class' => self::NON_TRANSLATION_CLASS
|
'data_class' => self::NON_TRANSLATION_CLASS
|
||||||
));
|
));
|
||||||
$builder->add('value', 'propel_translation_collection', array(
|
$builder->add('value', TranslationCollectionType::class, array(
|
||||||
'languages' => array('en', 'fr'),
|
'languages' => array('en', 'fr'),
|
||||||
'options' => array(
|
'entry_options' => array(
|
||||||
'data_class' => self::TRANSLATABLE_I18N_CLASS,
|
'data_class' => self::TRANSLATABLE_I18N_CLASS,
|
||||||
'columns' => array('value', 'value2' => array('label' => 'Label', 'type' => 'textarea'))
|
'columns' => array('value', 'value2' => array('label' => 'Label', 'type' => 'textarea'))
|
||||||
)
|
)
|
||||||
|
@ -122,9 +123,9 @@ class TranslationCollectionTypeTest extends TypeTestCase
|
||||||
*/
|
*/
|
||||||
public function testNoDataClassAdded()
|
public function testNoDataClassAdded()
|
||||||
{
|
{
|
||||||
$this->factory->createNamed('itemI18ns', 'propel_translation_collection', null, array(
|
$this->factory->createNamed('itemI18ns', TranslationCollectionType::class, null, array(
|
||||||
'languages' => array('en', 'fr'),
|
'languages' => array('en', 'fr'),
|
||||||
'options' => array(
|
'entry_options' => array(
|
||||||
'columns' => array('value', 'value2')
|
'columns' => array('value', 'value2')
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
|
@ -135,8 +136,8 @@ class TranslationCollectionTypeTest extends TypeTestCase
|
||||||
*/
|
*/
|
||||||
public function testNoLanguagesAdded()
|
public function testNoLanguagesAdded()
|
||||||
{
|
{
|
||||||
$this->factory->createNamed('itemI18ns', 'propel_translation_collection', null, array(
|
$this->factory->createNamed('itemI18ns', TranslationCollectionType::class, null, array(
|
||||||
'options' => array(
|
'entry_options' => array(
|
||||||
'data_class' => self::TRANSLATABLE_I18N_CLASS,
|
'data_class' => self::TRANSLATABLE_I18N_CLASS,
|
||||||
'columns' => array('value', 'value2')
|
'columns' => array('value', 'value2')
|
||||||
)
|
)
|
||||||
|
@ -148,9 +149,9 @@ class TranslationCollectionTypeTest extends TypeTestCase
|
||||||
*/
|
*/
|
||||||
public function testNoColumnsAdded()
|
public function testNoColumnsAdded()
|
||||||
{
|
{
|
||||||
$this->factory->createNamed('itemI18ns', 'propel_translation_collection', null, array(
|
$this->factory->createNamed('itemI18ns', TranslationCollectionType::class, null, array(
|
||||||
'languages' => array('en', 'fr'),
|
'languages' => array('en', 'fr'),
|
||||||
'options' => array(
|
'entry_options' => array(
|
||||||
'data_class' => self::TRANSLATABLE_I18N_CLASS
|
'data_class' => self::TRANSLATABLE_I18N_CLASS
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
|
|
|
@ -11,8 +11,14 @@
|
||||||
|
|
||||||
namespace Propel\Bundle\PropelBundle\Tests\Form;
|
namespace Propel\Bundle\PropelBundle\Tests\Form;
|
||||||
|
|
||||||
|
use Propel\Bundle\PropelBundle\Form\Type\ModelType;
|
||||||
use Propel\Bundle\PropelBundle\Form\TypeGuesser;
|
use Propel\Bundle\PropelBundle\Form\TypeGuesser;
|
||||||
use Propel\Bundle\PropelBundle\Tests\TestCase;
|
use Propel\Bundle\PropelBundle\Tests\TestCase;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\NumberType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||||
use Symfony\Component\Form\Guess\Guess;
|
use Symfony\Component\Form\Guess\Guess;
|
||||||
|
|
||||||
class TypeGuesserTest extends TestCase
|
class TypeGuesserTest extends TestCase
|
||||||
|
@ -80,7 +86,7 @@ class TypeGuesserTest extends TestCase
|
||||||
$value = $this->guesser->guessType(self::UNKNOWN_CLASS_NAME, 'property');
|
$value = $this->guesser->guessType(self::UNKNOWN_CLASS_NAME, 'property');
|
||||||
|
|
||||||
$this->assertNotNull($value);
|
$this->assertNotNull($value);
|
||||||
$this->assertEquals('text', $value->getType());
|
$this->assertEquals(TextType::class, $value->getType());
|
||||||
$this->assertEquals(Guess::LOW_CONFIDENCE, $value->getConfidence());
|
$this->assertEquals(Guess::LOW_CONFIDENCE, $value->getConfidence());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,7 +95,7 @@ class TypeGuesserTest extends TestCase
|
||||||
$value = $this->guesser->guessType(self::CLASS_NAME, 'property');
|
$value = $this->guesser->guessType(self::CLASS_NAME, 'property');
|
||||||
|
|
||||||
$this->assertNotNull($value);
|
$this->assertNotNull($value);
|
||||||
$this->assertEquals('text', $value->getType());
|
$this->assertEquals(TextType::class, $value->getType());
|
||||||
$this->assertEquals(Guess::LOW_CONFIDENCE, $value->getConfidence());
|
$this->assertEquals(Guess::LOW_CONFIDENCE, $value->getConfidence());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,7 +110,7 @@ class TypeGuesserTest extends TestCase
|
||||||
$this->assertEquals($type, $value->getType());
|
$this->assertEquals($type, $value->getType());
|
||||||
$this->assertEquals($confidence, $value->getConfidence());
|
$this->assertEquals($confidence, $value->getConfidence());
|
||||||
|
|
||||||
if ($type === 'model') {
|
if ($type === ModelType::class) {
|
||||||
$options = $value->getOptions();
|
$options = $value->getOptions();
|
||||||
|
|
||||||
$this->assertSame($multiple, $options['multiple']);
|
$this->assertSame($multiple, $options['multiple']);
|
||||||
|
@ -114,16 +120,16 @@ class TypeGuesserTest extends TestCase
|
||||||
public static function dataProviderForGuessType()
|
public static function dataProviderForGuessType()
|
||||||
{
|
{
|
||||||
return array(
|
return array(
|
||||||
array('is_active', 'checkbox', Guess::HIGH_CONFIDENCE),
|
array('is_active', CheckboxType::class, Guess::HIGH_CONFIDENCE),
|
||||||
array('enabled', 'checkbox', Guess::HIGH_CONFIDENCE),
|
array('enabled', CheckboxType::class, Guess::HIGH_CONFIDENCE),
|
||||||
array('id', 'integer', Guess::MEDIUM_CONFIDENCE),
|
array('id', IntegerType::class, Guess::MEDIUM_CONFIDENCE),
|
||||||
array('value', 'text', Guess::MEDIUM_CONFIDENCE),
|
array('value', TextType::class, Guess::MEDIUM_CONFIDENCE),
|
||||||
array('price', 'number', Guess::MEDIUM_CONFIDENCE),
|
array('price', NumberType::class, Guess::MEDIUM_CONFIDENCE),
|
||||||
array('updated_at', 'datetime', Guess::HIGH_CONFIDENCE),
|
array('updated_at', DateTimeType::class, Guess::HIGH_CONFIDENCE),
|
||||||
|
|
||||||
array('Authors', 'model', Guess::HIGH_CONFIDENCE, true),
|
array('Authors', ModelType::class, Guess::HIGH_CONFIDENCE, true),
|
||||||
array('Resellers', 'model', Guess::HIGH_CONFIDENCE, true),
|
array('Resellers', ModelType::class, Guess::HIGH_CONFIDENCE, true),
|
||||||
array('MainAuthor', 'model', Guess::HIGH_CONFIDENCE, false),
|
array('MainAuthor', ModelType::class, Guess::HIGH_CONFIDENCE, false),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue