allow the TextAreaFormField to be used with valid/invalid HTML

This commit is contained in:
Daniel Wehner 2014-01-26 17:20:56 +01:00 committed by Fabien Potencier
parent bacedeab2a
commit 3db1b10efd
2 changed files with 15 additions and 1 deletions

View File

@ -33,7 +33,7 @@ class TextareaFormField extends FormField
$this->value = null;
foreach ($this->node->childNodes as $node) {
$this->value .= $this->document->saveXML($node);
$this->value .= $node->wholeText;
}
}
}

View File

@ -29,5 +29,19 @@ class TextareaFormFieldTest extends FormFieldTestCase
} catch (\LogicException $e) {
$this->assertTrue(true, '->initialize() throws a \LogicException if the node is not a textarea');
}
// Ensure that valid HTML can be used on a textarea.
$node = $this->createNode('textarea', 'foo bar <h1>Baz</h1>');
$field = new TextareaFormField($node);
$this->assertEquals('foo bar <h1>Baz</h1>', $field->getValue(), '->initialize() sets the value of the field to the textarea node value');
// Ensure that we don't do any DOM manipulation/validation by passing in
// "invalid" HTML.
$node = $this->createNode('textarea', 'foo bar <h1>Baz</h2>');
$field = new TextareaFormField($node);
$this->assertEquals('foo bar <h1>Baz</h2>', $field->getValue(), '->initialize() sets the value of the field to the textarea node value');
}
}