public function testGetErrorsDeepRecursive()
{
$this->form->addError($error1 = new FormError('Error 1'));
$this->form->addError($error2 = new FormError('Error 2'));
$childForm = $this->getBuilder('Child')->getForm();
$childForm->addError($nestedError = new FormError('Nested Error'));
$this->form->add($childForm);
$errors = $this->form->getErrors(true, false);
$this->assertSame(
"ERROR: Error 1\n".
"ERROR: Error 2\n".
"Child:\n".
" ERROR: Nested Error\n",
(string) $errors
);
$errorsAsArray = iterator_to_array($errors);
$this->assertSame($error1, $errorsAsArray[0]);
$this->assertSame($error2, $errorsAsArray[1]);
$this->assertInstanceOf('Symfony\Component\Form\FormErrorIterator', $errorsAsArray[2]);
$nestedErrorsAsArray = iterator_to_array($errorsAsArray[2]);
$this->assertCount(1, $nestedErrorsAsArray);
$this->assertSame($nestedError, $nestedErrorsAsArray[0]);
}