public function testProvidesInputSpecificationThatIncludesValidatorsBasedOnAttributes() { $element = new NumberElement(); $element->setAttributes(array('inclusive' => true, 'min' => 5, 'max' => 10, 'step' => 1)); $inputSpec = $element->getInputSpecification(); $this->assertArrayHasKey('validators', $inputSpec); $this->assertInternalType('array', $inputSpec['validators']); $expectedClasses = array('Zend\\I18n\\Validator\\Float', 'Zend\\Validator\\GreaterThan', 'Zend\\Validator\\LessThan', 'Zend\\Validator\\Step'); foreach ($inputSpec['validators'] as $validator) { $class = get_class($validator); $this->assertTrue(in_array($class, $expectedClasses), $class); switch ($class) { case 'Zend\\Validator\\GreaterThan': $this->assertTrue($validator->getInclusive()); $this->assertEquals(5, $validator->getMin()); break; case 'Zend\\Validator\\LessThan': $this->assertTrue($validator->getInclusive()); $this->assertEquals(10, $validator->getMax()); break; case 'Zend\\Validator\\Step': $this->assertEquals(1, $validator->getStep()); break; default: break; } } }
/** * Add Currency formatted number filter * @see Zend\Form\Element\Number * @return array */ public function getInputSpecification() { $inputSpec = parent::getInputSpecification(); //FILTHY HACK //CLEAN THIS UP $inputSpec['filters'][] = array('name' => 'Callback', 'options' => array('callback' => function ($value) { $value = str_replace(',', '', $value); return floatval($value); })); $inputSpec['filters'][] = array('name' => 'NumberFormat', 'style' => NumberFormatter::CURRENCY, 'type' => NumberFormatter::TYPE_CURRENCY); return $inputSpec; }
/** * {@inheritDoc} */ public function getInputSpecification() { $inputSpec = parent::getInputSpecification(); $inputSpec['allow_empty'] = true; return $inputSpec; }
public function testDefaultInclusiveTrueatValidatorWhenInclusiveIsNotSetOnAttributes() { $element = new NumberElement(); $element->setAttributes(array('min' => 5)); $inputSpec = $element->getInputSpecification(); foreach ($inputSpec['validators'] as $validator) { if (get_class($validator) == 'Zend\\Validator\\GreaterThan') { $this->assertTrue($validator->getInclusive()); break; } } }