/** * {@inheritdoc} */ public function finishView(FormView $view, FormInterface $form, array $options) { parent::finishView($view, $form, $options); $children = $view->children; $view->children = array(); foreach ($this->orderer->order($form) as $name) { $view->children[$name] = $children[$name]; unset($children[$name]); } foreach ($children as $name => $child) { $view->children[$name] = $child; } }
public function testFinishView() { $options = array('a' => '1', 'b' => '2'); $form = $this->getMockBuilder('Symfony\Component\Form\Test\FormInterface')->getMock(); $view = $this->getMockBuilder('Symfony\Component\Form\FormView')->getMock(); $i = 0; $assertIndex = function ($index) use (&$i) { return function () use (&$i, $index) { $this->assertEquals($index, $i, 'Executed at index '.$index); ++$i; }; }; // First the super type $this->parentType->expects($this->once()) ->method('finishView') ->with($view, $form, $options) ->will($this->returnCallback($assertIndex(0))); // Then the type itself $this->type->expects($this->once()) ->method('finishView') ->with($view, $form, $options) ->will($this->returnCallback($assertIndex(1))); // Then its extensions $this->extension1->expects($this->once()) ->method('finishView') ->with($view, $form, $options) ->will($this->returnCallback($assertIndex(2))); $this->extension2->expects($this->once()) ->method('finishView') ->with($view, $form, $options) ->will($this->returnCallback($assertIndex(3))); $this->resolvedType->finishView($view, $form, $options); }