ChoiceFormField of type "select" could be "disabled"

This commit is contained in:
Simon Bouland 2016-01-26 10:26:29 +01:00 committed by Fabien Potencier
parent be30748bc9
commit 576c4b9b42
2 changed files with 12 additions and 0 deletions

View File

@ -55,6 +55,10 @@ class ChoiceFormField extends FormField
*/
public function isDisabled()
{
if (parent::isDisabled() && 'select' === $this->type) {
return true;
}
foreach ($this->options as $option) {
if ($option['value'] == $this->value && $option['disabled']) {
return true;

View File

@ -120,6 +120,14 @@ class ChoiceFormFieldTest extends FormFieldTestCase
$this->assertEquals('bar', $field->getValue());
}
public function testSelectIsDisabled()
{
$node = $this->createSelectNode(array('foo' => false, 'bar' => true), array('disabled' => 'disabled'));
$field = new ChoiceFormField($node);
$this->assertTrue($field->isDisabled(), '->isDisabled() returns true for selects with a disabled attribute');
}
public function testMultipleSelects()
{
$node = $this->createSelectNode(array('foo' => false, 'bar' => false), array('multiple' => 'multiple'));