Kaynağa Gözat

ZF-5891: added optional parameter patch provided by Mikko Koppanen and added test

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@19088 44c647ce-9c0f-0410-b52a-842ac1e357ba
bate 16 yıl önce
ebeveyn
işleme
abe03a0aeb
2 değiştirilmiş dosya ile 20 ekleme ve 4 silme
  1. 6 3
      library/Zend/Layout.php
  2. 14 1
      tests/Zend/Layout/LayoutTest.php

+ 6 - 3
library/Zend/Layout.php

@@ -326,15 +326,18 @@ class Zend_Layout
     /**
      * Set layout script to use
      *
-     * Note: enables layout.
+     * Note: enables layout by default, can be disabled
      *
      * @param  string $name
+     * @param  boolean $enabled
      * @return Zend_Layout
      */
-    public function setLayout($name)
+    public function setLayout($name, $enabled = true)
     {
         $this->_layout = (string) $name;
-        $this->enableLayout();
+        if ($enabled) {
+            $this->enableLayout();
+        }
         return $this;
     }
 

+ 14 - 1
tests/Zend/Layout/LayoutTest.php

@@ -537,7 +537,9 @@ class Zend_Layout_LayoutTest extends PHPUnit_Framework_TestCase
         $layout->render();
     }
 
-    // #ZF-5152
+    /**
+     * @group ZF-5152
+     */
     public function testCallingStartMvcTwiceDoesntGenerateAnyUnexpectedBehavior()
     {
         Zend_Layout::startMvc('/some/path');
@@ -547,6 +549,17 @@ class Zend_Layout_LayoutTest extends PHPUnit_Framework_TestCase
         $this->assertTrue(Zend_Layout::getMvcInstance()->isEnabled());
     }
 
+    /**
+     * @group ZF-5891
+     */
+    public function testSetLayoutWithDisabledFlag()
+    {
+        $layout = new Zend_Layout();
+        $layout->disableLayout();
+        $layout->setLayout('foo', false);
+        $this->assertEquals('foo', $layout->getLayout());
+        $this->assertFalse($layout->isEnabled());
+    }
 }
 
 /**