Pārlūkot izejas kodu

Revert #371 - Zend_Form: array conversion in setDefaults

Change in method signature is BC break.
Frank Brückner 11 gadi atpakaļ
vecāks
revīzija
73eebf8d21
2 mainītis faili ar 2 papildinājumiem un 47 dzēšanām
  1. 2 7
      library/Zend/Form.php
  2. 0 40
      tests/Zend/Form/FormTest.php

+ 2 - 7
library/Zend/Form.php

@@ -1278,16 +1278,11 @@ class Zend_Form implements Iterator, Countable, Zend_Validate_Interface
      *
      * Sets values for all elements specified in the array of $defaults.
      *
-     * @param  array|Traversable $defaults
-     * @throws Zend_Form_Exception When invalid type is passed
+     * @param  array $defaults
      * @return Zend_Form
      */
-    public function setDefaults($defaults)
+    public function setDefaults(array $defaults)
     {
-        if (!is_array($defaults) && !$defaults instanceof Traversable) {
-            throw new Zend_Form_Exception('Argument passed to setDefaults() must be of type array or Traversable.');
-        }
-
         $eBelongTo = null;
 
         if ($this->isArray()) {

+ 0 - 40
tests/Zend/Form/FormTest.php

@@ -4859,46 +4859,6 @@ class Zend_Form_FormTest extends PHPUnit_Framework_TestCase
         $this->assertTrue($element->hasErrors());
         $this->assertFalse($element->isValid(1));
     }
-
-    public function testSetDefaultsAllowOverridingWithNonArrayParameter()
-    {
-        //this would throw a strict warning if the setDefaults() method requires param to be array
-        $form = new Zend_Form_FormTest_SetDefaults();
-    }
-
-    public function testCanSetElementDefaultValuesFromTraversable()
-    {
-        $this->testCanAddAndRetrieveMultipleElements();
-        $values = array(
-            'foo' => 'foovalue',
-            'bar' => 'barvalue',
-            'baz' => 'bazvalue',
-            'bat' => 'batvalue',
-        );
-        $traversable = new ArrayIterator($values);
-        $this->form->setDefaults($traversable);
-        $elements = $this->form->getElements();
-        foreach (array_keys($values) as $name) {
-            $this->assertEquals($name . 'value', $elements[$name]->getValue());
-        }
-    }
-
-    /**
-     * @expectedException Zend_Form_Exception
-     * @expectedExceptionMessage Argument passed to setDefaults() must be of type array or Traversable.
-     */
-    public function testSetDefaultsWithInvalidTypeThrowsException()
-    {
-        $this->form->setDefaults(new stdClass());
-    }
-}
-
-class Zend_Form_FormTest_SetDefaults extends Zend_Form
-{
-    public function setDefaults($defaults)
-    {
-        return parent::setDefaults($defaults);
-    }
 }
 
 class Zend_Form_FormTest_DisplayGroup extends Zend_Form_DisplayGroup