Kaynağa Gözat

[Form] Initialize on iterator access.

Benjamin Eberlei 14 yıl önce
ebeveyn
işleme
f882a511a0

+ 2 - 0
src/Symfony/Component/Form/Renderer/ThemeRenderer.php

@@ -240,6 +240,8 @@ class ThemeRenderer implements FormRendererInterface, \ArrayAccess, \IteratorAgg
 
     public function getIterator()
     {
+        $this->initialize();
+
         if (isset($this->vars['fields'])) {
             $this->rendered = true;
             return new \ArrayIterator($this->vars['fields']);

+ 4 - 0
tests/Symfony/Tests/Component/Form/Renderer/ThemeRendererTest.php

@@ -42,8 +42,12 @@ class ThemeRendererTest extends \PHPUnit_Framework_TestCase
         $renderer = new ThemeRenderer($themeFactory);
         $renderer->setVar('fields', array('foo' => 'baz', 'bar' => 'baz'));
 
+        $this->assertFalse($renderer->isRendered());
+
         foreach ($renderer AS $child) {
             $this->assertEquals('baz', $child);
         }
+
+        $this->assertTrue($renderer->isRendered());
     }
 }