Преглед на файлове

ZF-6593: bootstrap option should be stripped after set

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@15520 44c647ce-9c0f-0410-b52a-842ac1e357ba
matthew преди 16 години
родител
ревизия
44a03ed7b8
променени са 2 файла, в които са добавени 18 реда и са изтрити 0 реда
  1. 3 0
      library/Zend/Application/Resource/ResourceAbstract.php
  2. 15 0
      tests/Zend/Application/Resource/ResourceAbstractTest.php

+ 3 - 0
library/Zend/Application/Resource/ResourceAbstract.php

@@ -92,6 +92,9 @@ abstract class Zend_Application_Resource_ResourceAbstract implements Zend_Applic
             if (method_exists($this, $method)) {
                 $this->$method($value);
             }
+            if ('bootstrap' == $key) {
+                unset($options[$key]);
+            }
         }
         
         $this->_options = array_merge_recursive($this->_options, $options);

+ 15 - 0
tests/Zend/Application/Resource/ResourceAbstractTest.php

@@ -158,6 +158,21 @@ class Zend_Application_Resource_ResourceAbstractTest extends PHPUnit_Framework_T
         $resource = new Zend_Application_BootstrapTest_Resource_Foo($config);
         $this->assertEquals($options, $resource->getOptions());
     }
+
+    /**
+     * @group ZF-6593
+     */
+    public function testSetOptionsShouldRemoveBootstrapOptionWhenPassed()
+    {
+        require_once dirname(__FILE__) . '/../_files/resources/Foo.php';
+        $resource = new Zend_Application_BootstrapTest_Resource_Foo();
+        $resource->setOptions(array(
+            'bootstrap' => $this->bootstrap,
+        ));
+        $this->assertSame($this->bootstrap, $resource->getBootstrap());
+        $options = $resource->getOptions();
+        $this->assertNotContains('bootstrap', array_keys($options));
+    }
 }
 
 if (PHPUnit_MAIN_METHOD == 'Zend_Application_Resource_ResourceAbstractTest::main') {