Przeglądaj źródła

ZF-10331: allow float values for NumberSpinner

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@23922 44c647ce-9c0f-0410-b52a-842ac1e357ba
matthew 14 lat temu
rodzic
commit
d2ea8d6f6d

+ 4 - 4
library/Zend/Dojo/Form/Element/NumberSpinner.php

@@ -92,7 +92,7 @@ class Zend_Dojo_Form_Element_NumberSpinner extends Zend_Dojo_Form_Element_Valida
      */
     public function setLargeDelta($delta)
     {
-        $this->setDijitParam('largeDelta', (int) $delta);
+        $this->setDijitParam('largeDelta', (float) $delta);
         return $this;
     }
 
@@ -114,7 +114,7 @@ class Zend_Dojo_Form_Element_NumberSpinner extends Zend_Dojo_Form_Element_Valida
      */
     public function setSmallDelta($delta)
     {
-        $this->setDijitParam('smallDelta', (int) $delta);
+        $this->setDijitParam('smallDelta', (float) $delta);
         return $this;
     }
 
@@ -187,7 +187,7 @@ class Zend_Dojo_Form_Element_NumberSpinner extends Zend_Dojo_Form_Element_Valida
         if ($this->hasDijitParam('constraints')) {
             $constraints = $this->getDijitParam('constraints');
         }
-        $constraints['min'] = (int) $value;
+        $constraints['min'] = (float) $value;
         $this->setDijitParam('constraints', $constraints);
         return $this;
     }
@@ -221,7 +221,7 @@ class Zend_Dojo_Form_Element_NumberSpinner extends Zend_Dojo_Form_Element_Valida
         if ($this->hasDijitParam('constraints')) {
             $constraints = $this->getDijitParam('constraints');
         }
-        $constraints['max'] = (int) $value;
+        $constraints['max'] = (float) $value;
         $this->setDijitParam('constraints', $constraints);
         return $this;
     }

+ 18 - 0
tests/Zend/Dojo/Form/Element/NumberSpinnerTest.php

@@ -198,6 +198,24 @@ class Zend_Dojo_Form_Element_NumberSpinnerTest extends PHPUnit_Framework_TestCas
         $this->assertRegexp('/\'min\':\s*5/', $html, $html);
         $this->assertRegexp('/\'max\':\s*10/', $html, $html);
     }
+    
+    public function testSmallAndLargeDeltaCanBeSetAsDecimalValues()
+    {
+        $this->element->setSmallDelta(20.5);
+        $this->assertEquals(20.5, $this->element->getSmallDelta());
+        
+        $this->element->setLargeDelta(50.5);
+        $this->assertEquals(50.5, $this->element->getLargeDelta());
+    }
+    
+    public function testMinAndMaxValuesCanBeSetAsDecimalValues()
+    {
+        $this->element->setMin(20.5);
+        $this->assertEquals(20.5, $this->element->getMin());
+        
+        $this->element->setMax(50.5);
+        $this->assertEquals(50.5, $this->element->getMax());
+    }
 }
 
 // Call Zend_Dojo_Form_Element_NumberSpinnerTest::main() if this source file is executed directly.