Explorar o código

ZF-11579: do not create ViewRenderer manually in View resource

- Pull ViewRenderer from broker instead, and then inject view

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@24287 44c647ce-9c0f-0410-b52a-842ac1e357ba
matthew %!s(int64=14) %!d(string=hai) anos
pai
achega
dc86b458c8

+ 1 - 2
library/Zend/Application/Resource/View.php

@@ -52,9 +52,8 @@ class Zend_Application_Resource_View extends Zend_Application_Resource_ResourceA
     {
     {
         $view = $this->getView();
         $view = $this->getView();
 
 
-        $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
+        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
         $viewRenderer->setView($view);
         $viewRenderer->setView($view);
-        Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
         return $view;
         return $view;
     }
     }
 
 

+ 14 - 0
tests/Zend/Application/Resource/ViewTest.php

@@ -227,6 +227,20 @@ class Zend_Application_Resource_ViewTest extends PHPUnit_Framework_TestCase
         $this->assertEquals('barbazoo', $view->bar);
         $this->assertEquals('barbazoo', $view->bar);
     }
     }
 
 
+    /**
+     * @group ZF-11579
+     */
+    public function testViewResourceDoesNotReinjectViewRenderer()
+    {
+        require_once dirname(__FILE__) . '/TestAsset/ViewRenderer.php';
+        $viewRenderer = new Zend_Application_Resource_TestAsset_ViewRenderer();
+        Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
+
+        $resource = new Zend_Application_Resource_View(array('encoding' => 'UTF-8'));
+        $view = $resource->init();
+
+        $this->assertSame($view, $viewRenderer->view);
+    }
 }
 }